[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