Closed Bug 190537 Opened 22 years ago Closed 22 years ago

Size/Speed optimizations for OS/2

Categories

(NSS :: Build, enhancement, P2)

x86
OS/2
enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jhpedemonte, Assigned: wtc)

Details

Attachments

(1 file, 3 obsolete files)

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.
Attached patch patch (obsolete) — Splinter Review
Attachment #112556 - Flags: review?(wtc)
This patch doesn't work.

nss3.dll doesn't load because it is looking for softokn.dll when all we have is
softokn3.dll.

It's related to the def file used to create the DLL I think.
Attached patch patch v2 (obsolete) — Splinter Review
I was not adding the LIBRARY_VERSION to the def file.  This was causing the
internal library name not to match the actuall DLL name.
Attachment #112556 - Attachment is obsolete: true
Attached patch patch v2.1 (obsolete) — Splinter Review
Remove revision string change from nssckapi
Attachment #114899 - Attachment is obsolete: true
Attachment #114900 - Flags: review?(wtc)
Comment on attachment 114900 [details] [diff] [review]
patch v2.1

In security/coreconf/OS2.mk, could you try defining
PROCESS_MAP_FILE like this:

PROCESS_MAP_FILE = \
    echo LIBRARY $(LIBRARY_NAME)$(LIBRARY_VERSION) INITINSTANCE TERMINSTANCE >
$@;\
    echo PROTMODE >> $@;\
    echo CODE	 LOADONCALL MOVEABLE DISCARDABLE >> $@;\
    echo DATA	 PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@;\
    echo EXPORTS >> $@;\
    grep -v ';+' $(LIBRARY_NAME).def | grep -v ';-' | \
    sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' >> $@

and in security/coreconf/rules.mk, removing the following
change?

>@@ -380,6 +363,13 @@
> 
> $(MAPFILE): $(LIBRARY_NAME).def
> 	@$(MAKE_OBJDIR)
>+ifeq ($(OS_ARCH),OS2)
>+	echo LIBRARY $(LIBRARY_NAME)$(LIBRARY_VERSION) INITINSTANCE TERMINSTANCE > $@
>+	echo PROTMODE >> $@
>+	echo CODE    LOADONCALL MOVEABLE DISCARDABLE >> $@
>+	echo DATA    PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@
>+	echo EXPORTS >> $@
>+endif
> 	$(PROCESS_MAP_FILE)
Attached patch patch v2.2Splinter Review
Patch with wtc's comments.
Attachment #114900 - Attachment is obsolete: true
Attachment #115016 - Flags: review?(wtc)
Comment on attachment 115016 [details] [diff] [review]
patch v2.2

Have you tested your change to the XP_OS2_EMX part
of mozilla/security/coreconf/OS2.mk?  Does gcc understand
the same *.def file format as VACPP?

Your changes to security/coreconf/rules.mk and
security/nss/lib/ckfw/nssck.api are good.  Mike, could
you review Javier's changes to mozilla/security/coreconf/OS2.mk
too?
Attachment #115016 - Flags: superreview?(mkaply)
Attachment #115016 - Flags: review?(wtc)
Attachment #115016 - Flags: review+
Comment on attachment 115016 [details] [diff] [review]
patch v2.2

Looks good to me. I had Javier sit down and explain it all.
Attachment #115016 - Flags: superreview?(mkaply) → superreview+
Patch checked into the NSS TIP (3.8), NSS_3_7_BRANCH (3.7.2),
and NSS_CLIENT_TAG (mozilla 1.4alpha).
Severity: normal → enhancement
Status: NEW → RESOLVED
Closed: 22 years ago
Priority: -- → P2
Resolution: --- → FIXED
Target Milestone: --- → 3.7.2
Attachment #114900 - Flags: review?(wtc)
Attachment #112556 - Flags: review?(wtc)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: