Size/Speed optimizations for OS/2

RESOLVED FIXED in 4.4

Status

NSPR
NSPR
P1
normal
RESOLVED FIXED
15 years ago
14 years ago

People

(Reporter: jhp (no longer active), Assigned: Wan-Teh Chang)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 2 obsolete attachments)

(Reporter)

Description

15 years ago
By tweaking how we create import libraries on OS/2, we can achieve around 25%
speedup on load of the DLLs.  Also, by taking advantage of the DEF files already
in the tree, we can make it so the DLLs export less functions, reducing size and
maybe increasing speed.
(Reporter)

Comment 1

15 years ago
Created attachment 112557 [details] [diff] [review]
patch

Had to make some changes to the DEF files in NSPR, which seem to only be used
by SunOS at the moment.  I made changes consistent with the DEF files in NSS,
so althought I don't think there will be any problems on that platform, someone
should test with this patch.
(Reporter)

Updated

15 years ago
Attachment #112557 - Flags: review?(wtc)
(Reporter)

Comment 2

15 years ago
Comment on attachment 112557 [details] [diff] [review]
patch

Kaply, could you check this out and see if the patch works for you?  If so,
then I'll ask for an sr from wtc.
Attachment #112557 - Flags: review?(wtc) → review?(mkaply)

Comment 3

15 years ago
Comment on attachment 112557 [details] [diff] [review]
patch

I built our 1.3b with this and it works fine.
Attachment #112557 - Flags: review?(mkaply) → review+
(Reporter)

Updated

15 years ago
Attachment #112557 - Flags: superreview?(wtc)
(Assignee)

Updated

15 years ago
Status: NEW → ASSIGNED
Priority: -- → P1
Target Milestone: --- → 4.3
(Reporter)

Comment 4

15 years ago
Created attachment 118807 [details] [diff] [review]
patch v1.1

Cleaned up patch based on trunk.  WTC, can you test this on Solaris?  I think
they are the only other platform that uses the NSPR def files.
Attachment #112557 - Attachment is obsolete: true
(Reporter)

Comment 5

15 years ago
Comment on attachment 118807 [details] [diff] [review]
patch v1.1

It turns out that this patch somehow fixes a crash on our GCC build that we
have been experiencing for about 2 weeks.  Can you take a look at this so we
can check it in as soon as possible?  Thanks.
Attachment #118807 - Flags: review?(wtc)
This is apparently new in nspr.def:

+;+} NSPR_4.1;

+;+}NSPR_4.4 {
+;+	global:
		PR_GetPathSeparator;
+;+} NSPR_4.3;

as I had to add the + convention but I don't know if the +'s are correct.
Andy
(Assignee)

Comment 7

15 years ago
Created attachment 119878 [details] [diff] [review]
patch v1.2

Please try this patch on the current tip of the
NSPRPUB_PRE_4_2_CLIENT_BRANCH.
Attachment #118807 - Attachment is obsolete: true
(Assignee)

Comment 8

15 years ago
Comment on attachment 119878 [details] [diff] [review]
patch v1.2

I checked in this patch, but it broke the OS2VACPP tinderbox, so
I had to back it out.  The error message is:

ilink  /O:nspr4.dll /DLL /INC:_dllentry /MAP:nspr4.map /L /NOL /OPTFUNC
/EXEPACK:2 /PACKCODE /PACKDATA	./prvrsion.obj io/./prfdcach.obj
io/./prmwait.obj io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj
io/./prlayer.obj io/./prlog.obj io/./prmmap.obj io/./prpolevt.obj
io/./prprf.obj io/./prscanf.obj io/./prstdio.obj threads/./prcmon.obj
threads/./prrwlock.obj threads/./prtpd.obj linking/./prlink.obj
malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./prshma.obj
memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr.obj
misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj
misc/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj
misc/./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./prolock.obj
misc/./prrng.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj
misc/./prtrace.obj misc/./prtime.obj io/./prdir.obj io/./prfile.obj
io/./prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj th
reads/./prdump.obj threads/./prmon.obj threads/./prsem.obj
threads/combined/./prucpu.obj threads/combined/./prucv.obj
threads/combined/./prulock.obj threads/combined/./prustack.obj
threads/combined/./pruthr.obj md/os2/./os2io.obj md/os2/./os2sock.obj
md/os2/./os2thred.obj md/os2/./os2cv.obj md/os2/./os2gc.obj
md/os2/./os2misc.obj md/os2/./os2inrval.obj md/os2/./os2sem.obj
md/os2/./os2_errors.obj md/os2/./os2poll.obj md/os2/./os2rng.obj
md/os2/./os2vacpp.obj so32dll.lib tcp32dll.lib so32dll.lib tcp32dll.lib
./nspr4.def
E:\OS2_2.45_Clobber\mozilla\obj\nsprpub\pr\src\nspr4.def(6) : fatal error
LNK1034: syntax error
(Reporter)

Comment 9

15 years ago
wtc rechecked in the patch, and we were able to resolve the build break. 
Marking FIXED.
Status: ASSIGNED → RESOLVED
Last Resolved: 15 years ago
Resolution: --- → FIXED
(Assignee)

Updated

15 years ago
Whiteboard: [4.3.1]
Comment on attachment 112557 [details] [diff] [review]
patch

clearing obsolete review requests
Attachment #112557 - Flags: superreview?(wtc)
Attachment #118807 - Flags: review?(wtc)
(Assignee)

Updated

14 years ago
Whiteboard: [4.3.1]
Target Milestone: 4.3 → 4.4
You need to log in before you can comment on or make changes to this bug.