Closed Bug 463678 Opened 16 years ago Closed 16 years ago

Need to add RPATH to 64-bit libraries on HP-UX

Categories

(NSS :: Libraries, defect, P2)

3.12.2
HP
HP-UX
defect

Tracking

(Not tracked)

RESOLVED FIXED
3.12.3

People

(Reporter: christophe.ravel.bugs, Assigned: christophe.ravel.bugs)

Details

Attachments

(1 file, 2 obsolete files)

We fixed libnss3.sl in bug 335454.
We need to fix the other NSS public libraries: libssl3.sl and libsmime3.sl
Do we need to set the rpath for other libraries ?
Attachment #346974 - Flags: review?(julien.pierre.boogz)
Attachment #346974 - Flags: review?(julien.pierre.boogz) → review+
Comment on attachment 346974 [details] [diff] [review]
Add RPATH to libssl3.sl and libsmime3.so for HP-UX 64 bit

Note: the fix for libssl3.sl and libsmime3.sl is identical to what has been done for libnss3.sl.
We probably need this fix in every one of our public libraries.

I think libsoftokn3 may need it, as well as libnssckbi .

We should consider NSPR as well.

For the private libraries, ie. freebl, nssdbm, etc., I'm less sure how the HP-UX  64-bit linker works. We may want to add new test programs without setting SHLIB_PATH and see what happens.
I searched all the config.mk files under nss/lib to check where we set the RPATH for Solaris as a comparison.

For Solaris, we set the RPATH in the following files:
nss/lib/ckfw/builtins/config.mk
nss/lib/ckfw/capi/config.mk
nss/lib/nss/config.mk
nss/lib/smime/config.mk
nss/lib/softoken/config.mk
nss/lib/softoken/legacydb/config.mk
nss/lib/sqlite/config.mk
nss/lib/ssl/config.mk
nss/lib/util/config.mk

For HP-UX, we currently set the RPATH in (including the proposed one in patch #1):
nss/lib/nss/config.mk
nss/lib/smime/config.mk
nss/lib/ssl/config.mk
nss/lib/util/config.mk

I'd suggest the we extend this list to match what we do for Solaris. Add:
nss/lib/ckfw/builtins/config.mk
nss/lib/ckfw/capi/config.mk
nss/lib/softoken/config.mk
nss/lib/softoken/legacydb/config.mk
nss/lib/sqlite/config.mk

Details of the search:
$ find nss/lib -name config.mk | xargs grep ORIGIN
nss/lib/ckfw/builtins/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/ckfw/builtins/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/ckfw/capi/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/ckfw/capi/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/nss/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/nss/config.mk:MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1/64:/usr/lib/mps/64'
nss/lib/nss/config.mk:MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
nss/lib/nss/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/nss/config.mk:MKSHLIB += +b '$$ORIGIN'
nss/lib/smime/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/smime/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/smime/config.mk:MKSHLIB += +b '$$ORIGIN'
nss/lib/softoken/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/softoken/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/softoken/legacydb/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/softoken/legacydb/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/sqlite/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/sqlite/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/ssl/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/ssl/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/ssl/config.mk:MKSHLIB += +b '$$ORIGIN'
nss/lib/util/config.mk:# The -R '$ORIGIN' linker option instructs this library to search for its
nss/lib/util/config.mk:MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1/64:/usr/lib/mps/64'
nss/lib/util/config.mk:MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
nss/lib/util/config.mk:MKSHLIB += -R '$$ORIGIN'
nss/lib/util/config.mk:MKSHLIB += +b '$$ORIGIN'
Attachment #348228 - Flags: review?(julien.pierre.boogz) → review+
Comment on attachment 348228 [details] [diff] [review]
Add RPATH to libssl3.sl, libsmime3.sl, libsqlite3.sl, libnssutil3.sl, libsoftokn3.sl, libnssdbm3.sl and libnssckbi.sl for HP-UX 64 bit

This is all OK except for the lib/ckfw/capi/config.mk change . That module is only built on Windows, never on HP-UX . So the change should not go in for that file.
I'll check in this patch when the tree is open again. Take's Julien comment about lib/ckfw/capi/config.mk into account.
Attachment #348228 - Attachment is obsolete: true
Patch #3 checked in.

Checking in ckfw/builtins/config.mk;
/cvsroot/mozilla/security/nss/lib/ckfw/builtins/config.mk,v  <--  config.mk
new revision: 1.12; previous revision: 1.11
done
Checking in smime/config.mk;
/cvsroot/mozilla/security/nss/lib/smime/config.mk,v  <--  config.mk
new revision: 1.26; previous revision: 1.25
done
Checking in softoken/config.mk;
/cvsroot/mozilla/security/nss/lib/softoken/config.mk,v  <--  config.mk
new revision: 1.25; previous revision: 1.24
done
Checking in softoken/legacydb/config.mk;
/cvsroot/mozilla/security/nss/lib/softoken/legacydb/config.mk,v  <--  config.mk
new revision: 1.7; previous revision: 1.6
done
Checking in sqlite/config.mk;
/cvsroot/mozilla/security/nss/lib/sqlite/config.mk,v  <--  config.mk
new revision: 1.5; previous revision: 1.4
done
Checking in ssl/config.mk;
/cvsroot/mozilla/security/nss/lib/ssl/config.mk,v  <--  config.mk
new revision: 1.26; previous revision: 1.25
done
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Priority: -- → P2
Resolution: --- → FIXED
Attachment #348635 - Attachment description: Patch as it will be checked in → Patch as checked in
I need to do a update-roots-module-only release of NSS (by tomorrow, will discuss tomorrow in the NSS call).

If I take only the portion of the patch that lives in the ckfw subdirectory for the upcoming Firefox 3.0.6 release, is that OK ? Thanks!
Do you deliver a 64 bit Firefox on HP-UX ? If the answer is no, then you don't need this patch.
But don't apply this patch partially in a tag. We need to go back to a clean situation with our tags.
I don't deliver such a Firefox.

But the effect of my proposal would be:
The official source tarball for Firefox 3.0.6 would contain only the ckfw subset from this bug and patch.

I hear you don't like that idea. Someone might try to use this official tarball to build for HP-UX 64.

I'll use a different approach for my problem, thanks.
You need to log in before you can comment on or make changes to this bug.