Last Comment Bug 190538 - Size/Speed optimizations for OS/2
: Size/Speed optimizations for OS/2
Product: NSPR
Classification: Components
Component: NSPR (show other bugs)
: other
: x86 OS/2
P1 normal (vote)
: 4.4
Assigned To: Wan-Teh Chang
: Wan-Teh Chang
Depends on:
  Show dependency treegraph
Reported: 2003-01-24 14:55 PST by jhp (no longer active)
Modified: 2003-11-26 16:40 PST (History)
1 user (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---

patch (13.89 KB, patch)
2003-01-24 14:58 PST, jhp (no longer active)
mozilla: review+
Details | Diff | Splinter Review
patch v1.1 (12.59 KB, patch)
2003-03-28 14:38 PST, jhp (no longer active)
no flags Details | Diff | Splinter Review
patch v1.2 (12.57 KB, patch)
2003-04-08 15:46 PDT, Wan-Teh Chang
no flags Details | Diff | Splinter Review

Description User image jhp (no longer active) 2003-01-24 14:55:43 PST
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.
Comment 1 User image jhp (no longer active) 2003-01-24 14:58:39 PST
Created attachment 112557 [details] [diff] [review]

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.
Comment 2 User image jhp (no longer active) 2003-02-21 14:05:31 PST
Comment on attachment 112557 [details] [diff] [review]

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.
Comment 3 User image Mike Kaply [:mkaply] 2003-03-03 10:03:49 PST
Comment on attachment 112557 [details] [diff] [review]

I built our 1.3b with this and it works fine.
Comment 4 User image jhp (no longer active) 2003-03-28 14:38:56 PST
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.
Comment 5 User image jhp (no longer active) 2003-03-31 15:49:26 PST
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.
Comment 6 User image Andy Willis (abwillis) 2003-04-04 18:17:39 PST
This is apparently new in nspr.def:

+;+} NSPR_4.1;

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

as I had to add the + convention but I don't know if the +'s are correct.
Comment 7 User image Wan-Teh Chang 2003-04-08 15:46:31 PDT
Created attachment 119878 [details] [diff] [review]
patch v1.2

Please try this patch on the current tip of the
Comment 8 User image Wan-Teh Chang 2003-04-08 19:55:20 PDT
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 / /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
E:\OS2_2.45_Clobber\mozilla\obj\nsprpub\pr\src\nspr4.def(6) : fatal error
LNK1034: syntax error
Comment 9 User image jhp (no longer active) 2003-04-10 14:40:18 PDT
wtc rechecked in the patch, and we were able to resolve the build break. 
Marking FIXED.
Comment 10 User image Matthias Versen [:Matti] 2003-04-23 23:07:51 PDT
Comment on attachment 112557 [details] [diff] [review]

clearing obsolete review requests

Note You need to log in before you can comment on or make changes to this bug.