[csw-maintainers] Building Mozilla NSS (it aborts)
Maciej (Matchek) Blizinski
maciej at opencsw.org
Sat Nov 21 21:43:09 CET 2009
I'm working on NSS, Mozilla's Network Security Services[1] library.
I've already jumped over a number of hoops, but I'm now stuck-ish.
During the build stage, a 'shlibsign' binary is called; it's part of
the NSS build. At first it was (consistently) segfaulting. I figured
out that it was missing a search path to libsqlite3.so, I added a
runtime search path option (not via GNU make flags, I had to patch the
NSS sources as their build ignores LDFLAGS and LD_OPTIONS). Now it
aborts, like this:
gmake[5]: Leaving directory
`/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/mangle'
cd SunOS5.8_OPT.OBJ ; sh
/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/./sign.sh
/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/../../../dist/SunOS5.8_OPT.OBJ
\
/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/SunOS5.8_OPT.OBJ
SunOS \
/opt/csw/lib/nspr
/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/../../../dist/SunOS5.8_OPT.OBJ/lib/libsoftokn3.so
/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/SunOS5.8_OPT.OBJ/shlibsign
-v -i /home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign/../../../dist/SunOS5.8_OPT.OBJ/lib/libsoftokn3.so
moduleSpec configdir='' certPrefix='' keyPrefix='' secmod=''
flags=noCertDB, noModDB
Abort - core dumped
gmake[4]: *** [../../../dist/SunOS5.8_OPT.OBJ/lib/libsoftokn3.chk] Error 134
gmake[4]: Leaving directory
`/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/nss/cmd/shlibsign'
The relevant bit of truss output:
17896: stat("/opt/csw/lib/nspr/libkstat.so.1", 0xFFBFDF30) Err#2 ENOENT
17896: stat("/home/maciej/src/opencsw/pkg/nss/trunk/work/build-isa-sparcv8/nss-3.12.4-with-nspr-4.8/mozilla/security/dist/SunOS5.8_OPT.OBJ/lib/libkstat.so.1",
0xFFBFDF30) Err#2 ENOENT
17896: stat("/usr/lib/libkstat.so.1", 0xFFBFDF30) = 0
17896: resolvepath("/usr/lib/libkstat.so.1",
"/usr/lib/libkstat.so.1", 1023) = 22
17896: open("/usr/lib/libkstat.so.1", O_RDONLY) = 3
17896: mmap(0xFF010000, 8192, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF010000
17896: mmap(0x00000000, 81920, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xFED90000
17896: mmap(0xFED90000, 4030, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFED90000
17896: mmap(0xFEDA2000, 460, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 8192) = 0xFEDA2000
17896: munmap(0xFED92000, 65536) = 0
17896: memcntl(0xFED90000, 2244, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
17896: close(3) = 0
17896: munmap(0xFF010000, 8192) = 0
17896: sigaction(SIGABRT, 0x00000000, 0xFFBFE2C8) = 0
17896: lwp_sigtimedwait(0xFFBFE2D0, 0xFFBFE220, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE210, 0xFFBFE2D0, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE2C8, 0xFFBFE560, 0x00000020) = 0
17896: llseek(0, 0, SEEK_CUR) = 7044041
17896: lwp_sigtimedwait(0xFFBFE390, 0xFFBFE250, 0x00000020) = 0
17896: lwp_sigtimedwait(0xFFBFE258, 0xFFBFE180, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE170, 0xFFBFE258, 0x00000010) = 0
17896: sigaction(SIGABRT, 0xFFBFE250, 0xFFBFE228) = 0
17896: lwp_sigtimedwait(0xFFBFE230, 0xFFBFE180, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE170, 0xFFBFE230, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE228, 0xFFBFE4B0, 0x00000020) = 0
17896: lwp_sigtimedwait(0xFF167C18, 0xFFBFE248, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE238, 0xFFBFE2C0, 0x00000010) = 0
17896: sigprocmask(SIG_SETMASK, 0xFFBFE2C0, 0xFFBFE2D0) = 0
17896: lwp_sigtimedwait(0xFFBFE2D0, 0xFFBFE248, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE238, 0xFFBFE410, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE3FC, 0xFFBFE248, 0x00000010) = 0
17896: lwp_sigtimedwait(0xFFBFE238, 0xFFBFE2C0, 0x00000010) = 0
17896: sigprocmask(SIG_SETMASK, 0xFFBFE2C0, 0x00000000) = 0
17896: lwp_kill(1, SIGABRT) = 0
17896: Received signal #6, SIGABRT [default]
17896: siginfo: SIGABRT pid=17896 uid=17108 code=-1
17896: *** process killed ***
My vague plan is to alter the build so that a binary with debugging
symbols is produced; then run the offending program under dbx. Before
I continue attacking this build, do you have any ideas on how to
proceed? Do you have any other ideas than just debugging this binary?
The problem is 100% reproducible, the code is in Subversion. In order
to reproduce it, one needs to have CSWnspr-devel installed (it's in
testing). I was working on NSS on build8st.
Maciej
[1] http://www.mozilla.org/projects/security/pki/nss/
More information about the maintainers
mailing list