Closed
Bug 335454
Opened 19 years ago
Closed 18 years ago
Unable to find library 'libsoftokn3.sl' on HP-UX 64 bit
Categories
(NSS :: Libraries, defect, P2)
Tracking
(Not tracked)
RESOLVED
FIXED
3.11.4
People
(Reporter: christophe.ravel.bugs, Assigned: christophe.ravel.bugs)
References
Details
Attachments
(1 file, 2 obsolete files)
1.10 KB,
patch
|
nelson
:
review+
wtc
:
superreview+
|
Details | Diff | Splinter Review |
When running the NSS tools on HP-UX 64 bit, the loader is able to find libnss3.sl but not libsoftokn3.sl even if these 2 libraries are in the same directory.
example:
bin/64/certutil
lib/64/libnss3.sl
lib/64/libsoftokn3.sl
lib/64/libsoftokn3.chk
lib/64/<all nspr and nss libraries>
$ bin/64/certutil -h
/usr/lib/pa20_64/dld.sl: Unable to find library 'libsoftokn3.sl'.
Killed
Assignee | ||
Comment 1•19 years ago
|
||
More information:
The 64 bit build uses -Wl,+b,'$ORIGIN/../../lib/pa20_64:$ORIGIN/../../lib/64:$ORIGIN/../lib' to set the library search path.
At run time, no LD_LIBRARY_PATH nor SHLIB_PATH is set.
All other libraries are found, but not libsoftokn.so
The 32 bit build uses: -Wl,+b,'$ORIGIN/../lib'
This 32 bit build has no issue.
----------------------------------------------------------------------------
LDD OUTPUT:
===========
$ ldd bin/64/certutil
libssl3.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libssl3.sl
libsmime3.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libsmime3.sl
libnss3.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnss3.sl
libplc4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplc4.sl
libplds4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplds4.sl
libnspr4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnspr4.sl
libpthread.1 => /lib/pa20_64/libpthread.1
libm.2 => /lib/pa20_64/libm.2
librt.2 => /lib/pa20_64/librt.2
libc.2 => /lib/pa20_64/libc.2
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnss3.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnss3.sl
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplc4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplc4.sl
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplds4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplds4.sl
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnspr4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnspr4.sl
libpthread.1 => /lib/pa20_64/libpthread.1
libm.2 => /lib/pa20_64/libm.2
librt.2 => /lib/pa20_64/librt.2
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnss3.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnss3.sl
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplc4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplc4.sl
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplds4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplds4.sl
/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnspr4.sl => /home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnspr4.sl
Unable to find library 'libsoftokn3.sl'.
------------------------------------------------------------------------------
TUSC OUTPUT: (equivalent to truss)
============
$ /usr/local/bin/tusc -s open bin/64/certutil -h
open("bin/64/certutil", O_RDONLY|O_LARGEFILE, 0) ......... = 3
open(".", O_RDONLY|O_LARGEFILE, 0) ....................... = 3
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("..", O_RDONLY|O_LARGEFILE, 0) ...................... = 4
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libssl3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libssl3.sl", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libsmime3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libsmime3.sl", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libpthread.1", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libpthread.1", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../lib/libpthread.1", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libpthread.1", O_RDONLY|O_LARGEFILE, 0) = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libm.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libm.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../lib/libm.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libm.2", O_RDONLY|O_LARGEFILE, 0) ..... = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/librt.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/librt.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../lib/librt.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/librt.2", O_RDONLY|O_LARGEFILE, 0) .... = 3
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/pa20_64/libc.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../../lib/64/libc.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/home/chravel/security/securitytip/ws_20060420/hpux_64/bin/64/../lib/libc.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libc.2", O_RDONLY|O_LARGEFILE, 0) ..... = 3
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) . ERR#2 ENOENT
open("/usr/lib/pa20_64/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) . ERR#2 ENOENT
open("/usr/lib/pa20_64/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/usr/lib/pa20_64/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/usr/lib/pa20_64/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libpthread.1", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libpthread.1", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libpthread.1", O_RDONLY|O_LARGEFILE, 0) = 3
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libm.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libm.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libm.2", O_RDONLY|O_LARGEFILE, 0) ..... = 3
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/librt.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/librt.2", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/librt.2", O_RDONLY|O_LARGEFILE, 0) .... = 3
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) . ERR#2 ENOENT
open("/usr/lib/pa20_64/libnss3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) . ERR#2 ENOENT
open("/usr/lib/pa20_64/libplc4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/usr/lib/pa20_64/libplds4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/usr/lib/pa20_64/libnspr4.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libsoftokn3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("../../../../dist/HP-UXB.11.11_64_OPT.OBJ/lib/libsoftokn3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/lib/pa20_64/libsoftokn3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
open("/usr/lib/pa20_64/libsoftokn3.sl", O_RDONLY|O_LARGEFILE, 0) ERR#2 ENOENT
/usr/lib/pa20_64/dld.sl: Unable to find library 'libsoftokn3.sl'.
------------------------------------------------------------------------------
Priority: -- → P2
Assignee | ||
Comment 2•19 years ago
|
||
Workaround:
set LD_LIBRARY_PATH
Updated•19 years ago
|
Whiteboard: regression?
Target Milestone: 3.11.1 → 3.11.2
Updated•18 years ago
|
Assignee: nobody → christophe.ravel.bugs
Target Milestone: 3.11.3 → 3.11.4
Assignee | ||
Comment 4•18 years ago
|
||
The fix for HP-UX is similar to what is done on Solaris.
Attachment #245773 -
Flags: superreview?(nelson)
Attachment #245773 -
Flags: review?(wtchang)
Assignee | ||
Updated•18 years ago
|
Status: NEW → ASSIGNED
OS: Linux → HP-UX
Comment 5•18 years ago
|
||
Comment on attachment 245773 [details] [diff] [review]
Fix in mozilla/security/nss/lib/nss/config.mk for HP-UX
In the 64-bit PA-RISC case, you specified three directories:
'$$ORIGIN/../../lib/pa20_64:$$ORIGIN/../../lib/64:$$ORIGIN/../lib'
Please only specify what you absolutely need. Because of our
backward compatibility, any directory we add now can't be removed
in the future.
HP-UX itself doesn't use the lib/64 convention for its system
libraries. I believe lib/64 is a Solaris convention.
Comment 6•18 years ago
|
||
Comment on attachment 245773 [details] [diff] [review]
Fix in mozilla/security/nss/lib/nss/config.mk for HP-UX
Since your products install all the NSS shared libraries in the
same directory, I believe
MKSHLIB += +b '$$ORIGIN'
is all you need. You should not need any relative pathnames.
Assignee | ||
Comment 7•18 years ago
|
||
Wan-Teh,
I took the PATH from cmd/platlibs.mk
I think we use lib/64 at Sun.
Assignee | ||
Comment 8•18 years ago
|
||
Trying to workaround a bugzilla bug...
Updated•18 years ago
|
Attachment #245776 -
Flags: superreview?(wtchang)
Attachment #245776 -
Flags: review+
Assignee | ||
Updated•18 years ago
|
Attachment #245773 -
Attachment is obsolete: true
Attachment #245773 -
Flags: superreview?(nelson)
Attachment #245773 -
Flags: review?(wtchang)
Comment 9•18 years ago
|
||
Comment on attachment 245776 [details] [diff] [review]
Same patch, but with "++" transformed in "+ +"
I agree with Wan-Teh's comment 6.
So, I am removing my r+ from the second patch. Sorry.
Attachment #245776 -
Flags: review+ → review-
Assignee | ||
Updated•18 years ago
|
Attachment #245776 -
Attachment is obsolete: true
Attachment #245776 -
Flags: superreview?(wtchang)
Assignee | ||
Comment 10•18 years ago
|
||
The libraries used by libnss3.sl are loaded from the same directory.
The 64 bit loader on HP-UX takes $ORIGIN from libnss3.sl, not for the executable using libnss3.sl.
This patch changes only pa-risc with 64 bit binaries (not IA64).
There is no need for a fix for pa-risc with 32 bit binaries, it already works.
Attachment #245782 -
Flags: superreview?(wtchang)
Attachment #245782 -
Flags: review?(nelson)
Comment 11•18 years ago
|
||
Comment on attachment 245782 [details] [diff] [review]
Simplier patch
I believe that you can just say:
ifeq ($(OS_ARCH), HP-UX)
MKSHLIB += +b '$$ORIGIN'
endif
Attachment #245782 -
Flags: superreview?(wtchang) → superreview+
Comment 12•18 years ago
|
||
Comment on attachment 245782 [details] [diff] [review]
Simplier patch
r=nelson, provided it is tested
Attachment #245782 -
Flags: review?(nelson) → review+
Assignee | ||
Comment 13•18 years ago
|
||
Committed on tip:
Checking in config.mk;
/cvsroot/mozilla/security/nss/lib/nss/config.mk,v <-- config.mk
new revision: 1.27; previous revision: 1.26
done
Committed on NSS_3_11_BRANCH:
Checking in config.mk;
/cvsroot/mozilla/security/nss/lib/nss/config.mk,v <-- config.mk
new revision: 1.26.2.1; previous revision: 1.26
done
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Updated•18 years ago
|
Whiteboard: regression?
You need to log in
before you can comment on or make changes to this bug.
Description
•