Closed Bug 138532 Opened 19 years ago Closed 19 years ago
BSD/i386: Multiple Build Breaks in 1 .0 .rc1 source
The fix for bug 135027 was checked in after the 1.0.0 branch was cut, so the behavior described in that bug still applies to the 1.0.0 branch. Additionally, sslmutex.c doesn't compile due to problems with semaphore declarations. Repro steps: 1. Configure a standard Mozilla build environment on NetBSD/i386 1.5.x. 2. Using the Mozilla 1.0.rc1 source tarball, do a "gmake -f client.mk build" using the following .mozconfig: ac_add_options --disable-debug ac_add_options --disable-tests ac_add_options --enable-optimize ac_add_options --enable-crypto ac_add_options --without-system-nspr ac_add_options --without-system-jpeg ac_add_options --without-system-png ac_add_options --without-system-mng ac_add_options --without-system-zlib 3. After the first build break, append the following line to your .mozconfig: ac_add_options --disable-ldap 4. gmake -f client.mk distclean && gmake -f client.mk build Acutal results: First build attempt yields the same thing as in bug 135027: ======= making ./libldap50.so /usr/bin/ld -shared -Wl,-soname,libldap50.so -o libldap50.so ./abandon.o ./add.o ./bind.o ./cache.o ./charray.o ./charset.o ./compare.o ./compat.o ./control.o ./countvalues.o ./delete.o ./disptmpl.o ./dsparse.o ./error.o ./extendop.o ./free.o ./freevalues.o ./friendly.o ./getattr.o ./getdn.o ./getdxbyname.o ./getentry.o ./getfilter.o ./getoption.o ./getvalues.o ./memcache.o ./message.o ./modify.o ./open.o ./os-ip.o ./proxyauthctrl.o ./psearch.o ./referral.o ./regex.o ./rename.o ./request.o ./reslist.o ./result.o ./saslbind.o ./sbind.o ./search.o ./setoption.o ./sort.o ./sortctrl.o ./srchpref.o ./tmplout.o ./ufn.o ./unbind.o ./unescape.o ./url.o ./utf8.o ./vlistctrl.o /usr/bin/ld: unrecognized option `-Wl,-soname,libldap50.so' gmake: *** [libldap50.so] Error 1 gmake: Leaving directory `/usr/local/src/mozilla/directory/c-sdk/ldap/libraries/libldap' gmake: *** [export] Error 2 gmake: Leaving directory `/usr/local/src/mozilla/directory/c-sdk/ldap/libraries' gmake: *** [export] Error 2 gmake: Leaving directory `/usr/local/src/mozilla/directory/c-sdk/ldap' gmake: *** [export] Error 2 gmake: Leaving directory `/usr/local/src/mozilla/directory/c-sdk' gmake: *** [ldap] Error 2 gmake: Leaving directory `/usr/local/src/mozilla' gmake: *** [default] Error 2 gmake: Leaving directory `/usr/local/src/mozilla' gmake: *** [build] Error 2 Second build attempt fails building sslmutex.c: gcc -o NetBSD1.5.3_RC1_OPT.OBJ/sslmutex.o -c -O -fPIC -DPIC -Di386 -ansi -Wall -pipe -DNETBSD -Dunix -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DXP_UNIX -UDEBUG -DNDEBUG -I/usr/X11R6/include -I/usr/local/src/mozilla/dist/include -I../../../../dist/public/security -I../../../../dist/private/security -I../../../../dist/include -I/usr/local/src/mozilla/dist/include/nspr -I/usr/local/src/mozilla/dist/include/dbm -I../../../../dist/public/security -I../../../../dist/public/dbm sslmutex.c In file included from sslmutex.c:36: sslmutex.h:100: semaphore.h: No such file or directory In file included from sslmutex.c:36: sslmutex.h:107: syntax error before `sem_t' sslmutex.c: In function `sslMutex_Init': sslmutex.c:543: warning: implicit declaration of function `sem_init' sslmutex.c:543: union has no member named `sem' sslmutex.c: In function `sslMutex_Destroy': sslmutex.c:560: warning: implicit declaration of function `sem_destroy' sslmutex.c:560: union has no member named `sem' sslmutex.c: In function `sslMutex_Unlock': sslmutex.c:577: warning: implicit declaration of function `sem_post' sslmutex.c:577: union has no member named `sem' sslmutex.c: In function `sslMutex_Lock': sslmutex.c:594: warning: implicit declaration of function `sem_wait' sslmutex.c:594: union has no member named `sem' gmake: *** [NetBSD1.5.3_RC1_OPT.OBJ/sslmutex.o] Error 1 gmake: Leaving directory `/usr/local/src/mozilla/security/nss/lib/ssl' Fri Apr 19 09:30:34 MDT 2002 cd pkcs12; gmake -j1 libs gmake: Entering directory `/usr/local/src/mozilla/security/nss/lib/pkcs1 ...however, the build doesn't stop on this error. The build finally bombs out later when it can't find libssl: ../../config/nsinstall: cannot access ../../dist/lib/libssl3.so: No such file or directory gmake: *** [libs] Error 1 gmake: Leaving directory `/usr/local/src/mozilla/security/manager' gmake: *** [tier_95] Error 2 gmake: Leaving directory `/usr/local/src/mozilla' gmake: *** [default] Error 2 gmake: Leaving directory `/usr/local/src/mozilla' gmake: *** [build] Error 2 So, the problems are 1) ldap doesn't build, 2) sslmutex.c won't compile, and 3) the build doesn't stop on the errors in sslmutex.c This is the same machine described in bug 135027, only it has been upgraded to NetBSD 1.5.3_RC1, which doesn't have any significant changes over NetBSD 1.5.3_ALPHA. Any other needed information, including full build logs, is available upon request.
Reopening bug 135027 and reassigning this one to the NSS team as I can't check in the fix.
Assignee: seawood → wtc
Status: UNCONFIRMED → NEW
Component: Build Config → Build
Ever confirmed: true
Product: Browser → NSS
QA Contact: granrose → wtc
Version: other → 3.3.1
I checked the patch into the tip of NSS and the NSS_CLIENT_TAG (used by the Mozilla client trunk build).
Status: NEW → RESOLVED
Closed: 19 years ago
Component: Build → Libraries
Resolution: --- → FIXED
Version: 3.3.1 → 3.4
I just found that there are actually three problems reported in this bug report. 1) ldap doesn't build. This is the subject of bug 135027 (reopened). 2) sslmutex.c won't compile. This is fixed by Chris's patch. 3) The build doesn't stop on the errors in sslmutex.c. This has NOT been fixed. I believe this has to do with the LOOP_OVER_DIRS make macro in mozilla/security/coreconf/ruleset.mk: ifdef DIRS LOOP_OVER_DIRS = \ @for directory in $(DIRS); do \ if test -d $$directory; then \ set $(EXIT_ON_ERROR); \ echo "cd $$directory; $(MAKE) $@"; \ $(MAKE) -C $$directory $@; \ set +e; \ else \ echo "Skipping non-directory $$directory..."; \ fi; \ $(CLICK_STOPWATCH); \ done endif where EXIT_ON_ERROR is -e. I suspect that set -e doesn't work in the shell (Bourne shell?) used in the build. I ran into a similar problem on OSF1 before and had to use the Korn shell for set -e to work right. This is why we have SHELL = /usr/bin/ksh to mozilla/security/coreconf/OSF1.mk.
You need to log in before you can comment on or make changes to this bug.