Closed
Bug 196004
Opened 21 years ago
Closed 21 years ago
NSPR build fails when using GNU ld on Solaris
Categories
(NSPR :: NSPR, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
4.3
People
(Reporter: akopps, Assigned: wtc)
References
Details
Attachments
(3 files, 6 obsolete files)
151.23 KB,
patch
|
Details | Diff | Splinter Review | |
3.29 KB,
patch
|
netscape
:
review+
|
Details | Diff | Splinter Review |
1.46 KB,
patch
|
netscape
:
review+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202 Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202 I am trying to compile mozilla 1.3b on Solaris 2.6 with recent patch cluster installed. I am using gcc-2.95.3 that was configured with gnu binutils-2.13. When running "gmake -f client.mk build", the build stops with these messages: gcc -B/usr/ccs/bin/ -shared -Wl,-h,libnspr4.so,-z,combreloc,-z,defs -Wl,-f,\$ORIGIN/cpu/\$ISALIST/libnspr_flt4.so -o libnspr4.so -Wl,-M,./nsprmap.sun ./prvrsion.o io/./prfdcach.o io/./prmwait.o io/./prmapopt.o io/./priometh.o io/./pripv6.o io/./prlayer.o io/./prlog.o io/./prmmap.o io/./prpolevt.o io/./prprf.o io/./prscanf.o io/./prstdio.o threads/./prcmon.o threads/./prrwlock.o threads/./prtpd.o linking/./prlink.o malloc/./prmem.o md/./prosdep.o memory/./prshm.o memory/./prshma.o memory/./prseg.o misc/./pralarm.o misc/./pratom.o misc/./prcountr.o misc/./prdtoa.o misc/./prenv.o misc/./prerr.o misc/./prerror.o misc/./prerrortable.o misc/./prinit.o misc/./prinrval.o misc/./pripc.o misc/./prlog2.o misc/./prlong.o misc/./prnetdb.o misc/./prolock.o misc/./prrng.o misc/./prsystem.o misc/./prthinfo.o misc/./prtpool.o misc/./prtrace.o misc/./prtime.o malloc/./prmalloc.o pthreads/./ptsynch.o pthreads/./ptio.o pthreads/./ptthread.o pthreads/./ptmisc.o md/unix/./unix.o md/unix/./unix_errors.o md/unix/./uxproces.o md/unix/./uxrng.o md/unix/./uxshm.o md/unix/./uxwrap.o md/unix/./solaris.o md/unix/./os_SunOS.o -lpthread -lthread -lposix4 -lsocket -lnsl -ldl -lc ./nsprmap.sun: file not recognized: File format not recognized collect2: ld returned 1 exit status gcc: file path prefix `/usr/ccs/bin/' never used gmake[5]: *** [libnspr4.so] Error 1 gmake[5]: Leaving directory `/home/src/akopps/mozilla/cvs_1.3b/mozilla/nsprpub/pr/src' gmake[4]: *** [export] Error 2 gmake[4]: Leaving directory `/home/src/akopps/mozilla/cvs_1.3b/mozilla/nsprpub/pr' gmake[3]: *** [export] Error 2 gmake[3]: Leaving directory `/home/src/akopps/mozilla/cvs_1.3b/mozilla/nsprpub' gmake[2]: *** [nspr] Error 2 gmake[2]: Leaving directory `/home/src/akopps/mozilla/cvs_1.3b/mozilla' gmake[1]: *** [default] Error 2 gmake[1]: Leaving directory `/home/src/akopps/mozilla/cvs_1.3b/mozilla' gmake: *** [build] Error 2 I am also wondering why the compiler is being passed -B/usr/ccs/bin/ option if I am using gcc that was configured to use binutils. Reproducible: Always Steps to Reproduce: 1. To reproduce try to compile mozilla-1.3b with gcc-2.95.3 that's using gnu binutils 2.13 on a Solaris 2.6 system with this .mozconfig: ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --without-system-nspr ac_add_options --without-system-zlib ac_add_options --without-system-jpeg ac_add_options --without-system-png ac_add_options --without-system-mng ac_add_options --enable-optimize ac_add_options --enable-crypto ac_add_options --enable-svg ac_add_options --enable-ldap ac_add_options --enable-calendar mk_add_options MOZ_INTERNAL_LIBART_LGPL=1 MOZ_INTERNAL_LIBART_LGPL=1 2. 3. Actual Results: The build fails with an error
Comment 1•21 years ago
|
||
build config
Assignee: asa → seawood
Component: Browser-General → Build Config
QA Contact: asa → granrose
Comment 2•21 years ago
|
||
Hrm. Looks like another case of us requiring Sun ld to build. You'll hit a similar problem (bug 91224) when building NSS (crypto).
Assignee: seawood → wtc
Status: UNCONFIRMED → NEW
Component: Build Config → NSPR
Ever confirmed: true
OS: other → Solaris
Product: Browser → NSPR
QA Contact: granrose → wtc
Hardware: Other → Sun
Summary: Mozilla 1.3b build fails on Solaris with gcc → NSPR build fails when using GNU ld on Solaris
Version: Trunk → other
Assignee | ||
Comment 3•21 years ago
|
||
We only support Solaris ld. The gcc you are using needs to be configured to honor the -B/usr/ccs/bin/ flag. If you can't configure your gcc this way, you can edit mozilla/nsprpub/pr/src/Makefile.in and comment out this line: MKSHLIB += -Wl,-M,$(MAPFILE)
Status: NEW → ASSIGNED
Assignee | ||
Comment 4•21 years ago
|
||
I just realized that two other makefiles also need to be edited. So the workaround should read: If you can't configure your gcc to honor -B/usr/ccs/bin/ flag, you can edit mozilla/nsprpub/pr/src/Makefile.in mozilla/nsprpub/lib/ds/Makefile.in mozilla/nsprpub/lib/libc/src/Makefile.in and comment out this line: MKSHLIB += -Wl,-M,$(MAPFILE) I think we should document Solaris ld as a build requirement in the build instructions. Since Solaris ld and as are included with all Solaris systems, I don't know why one would want to use GNU binutils on Solaris. I'd be interested in knowing why. Chris, if you would like to implement the proper fix, that would be fine by me, too. Otherwise I'm going to resolve this bug WONTFIX. The proper fix would be: 1. Verify that GNU ld either supports or has the equivalents of the Solaris ld flags we are using. 2. Add a configure test to detect GNU ld and use the equivalent GNU ld flags for the Solaris ld flags that GNU ld doesn't support. 3. For NSS's coreconf build system, we need a new make variable USE_GNU_LD, which needs to be set by mozilla/security/manager/Makefile.in before it invokes NSS's coreconf build system.
Reporter | ||
Comment 5•21 years ago
|
||
I have made an attempt to compile mozilla-1.3b with the same version of gcc that uses Sun binutils and it worked just fine. I agree too that there is little reason not to use Sun ld. The reason we had configured gcc with GNU binutils on this particular system is because GCC installation instructions claim that certain old versions of Sun as and ld are known to have problems and this machine is running Solaris 2.6 which uses those old versions of as and ld. However, desprite of that warning, I haven't had problems using gcc with Sun binutils. And well, another reason, is that often other open source projects sometimes assume that your gcc is using gnu binutils and pass incompatible ld flags to it which later are passed to /usr/ccs/bin/ld which results in an error..
Assignee | ||
Comment 6•21 years ago
|
||
Akop: Thank you for the information. Could you tell me how you configured gcc with GNU binutils on your Solaris 2.6 system? I guess you used the --with-gnu-as --with-gnu-ld configure options, right? I think the --with-gnu-ld configure option hardwires gcc to always use GNU ld, regardless of your PATH or the -B/usr/ccs/bin/ flag, right? Could you try the following on that particular system and post the output here? 1. Create a simple C file foo.c: int main() { return 0; } 2. Run these commands. % ld -V % /usr/ccs/bin/ld -V % gcc -Wl,-V foo.c % gcc -B/usr/ccs/bin/ -Wl,-V foo.c % gcc -v foo.c % gcc -B/usr/ccs/bin/ -v foo.c
Assignee | ||
Comment 7•21 years ago
|
||
Hopefully this patch should do the right thing. Akop, could you test this patch on your Solaris 2.6 system where gcc is configured to use GNU ld? We are using the following Solaris ld flags: -h, -z combreloc, -z defs, -f, and -M. It seems that all but -M are supported by GNU ld on Solaris, and the --version-script flag of GNU ld is equivalent to the -M flag of Solaris ld. I adapted the GNU_LD test in mozilla/configure.in to test the ld used by gcc, which may be different from $LD. After some digging in GNU CC documentation, I found the -print-prog-name=ld flag. Could you post the output of `gcc -print-prog-name=ld` -v on your Solaris 2.6 system?
Assignee | ||
Comment 8•21 years ago
|
||
Akop, Earlier I wrote: > I guess you used the --with-gnu-as --with-gnu-ld configure > options, right? I think the --with-gnu-ld configure option > hardwires gcc to always use GNU ld, regardless of your PATH > or the -B/usr/ccs/bin/ flag, right? I now guess it was the --with-ld=/path/to/gnu/ld configure option (as opposed to --with-gnu-ld) that you used to install gcc on your Solaris 2.6 system, right? See http://www.gnu.org/software/gcc/faq.html#gas.
Reporter | ||
Comment 9•21 years ago
|
||
Our gcc with configured with --with-ld=/opt/local/bin/l and --with-as=/opt/local/bin/as, and not with --with-gnu-ld or --with-gnu-as Here is the transcript for the commands that you have asked for: akopps@snoop:~/src/tmp$ ld -V ld: Software Generation Utilities - Solaris Link Editors: 5.6-1.274 akopps@snoop:~/src/tmp$ /usr/ccs/bin/ld -V ld: Software Generation Utilities - Solaris Link Editors: 5.6-1.274 akopps@snoop:~/src/tmp$ gcc -Wl,-V foo.c GNU ld version 2.13 Supported emulations: elf32_sparc akopps@snoop:~/src/tmp$ gcc -B/usr/ccs/bin/ -Wl,-V foo.c GNU ld version 2.13 Supported emulations: elf32_sparc gcc: file path prefix `/usr/ccs/bin/' never used akopps@snoop:~/src/tmp$ gcc -v foo.c Reading specs from /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/specs gcc version 2.95.3 20010315 (release) /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) foo.c /var/tmp/cc8KeUE7.i GNU CPP version 2.95.3 20010315 (release) (sparc) #include "..." search starts here: #include <...> search starts here: /usr/local/include /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/../../../../sparc-sun-solaris2.6/include /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/include /usr/include End of search list. The following default directories have been omitted from the search path: /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/../../../../include/g++-3 End of omitted list. /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/cc1 /var/tmp/cc8KeUE7.i -quiet -dumpbase foo.c -version -o /var/tmp/ccILIpW6.s GNU C version 2.95.3 20010315 (release) (sparc-sun-solaris2.6) compiled by GNU C version 2.95.3 20010315 (release). /opt/local/bin/as -V -Qy -s -o /var/tmp/ccu4wQR9.o /var/tmp/ccILIpW6.s GNU assembler version 2.13 (sparc-sun-solaris2.6) using BFD version 2.13 /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crt1.o /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crti.o /usr/ccs/lib/values-Xa.o /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crtbegin.o -L/local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3 -L/usr/ccs/bin -L/usr/ccs/lib -L/local/sol/2.6/depot/gcc-2.95.3-1/lib /var/tmp/ccu4wQR9.o -lgcc -lc -lgcc /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crtend.o /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/crtn.o GNU ld version 2.13 Supported emulations: elf32_sparc akopps@snoop:~/src/tmp$ gcc -B/usr/ccs/bin/ -v foo.c Reading specs from /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/specs gcc version 2.95.3 20010315 (release) /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/cpp0 -lang-c -v -isystem /usr/ccs/bin/include -D__GNUC__=2 -D__GNUC_MINOR__=95 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D__sun -D__unix -Asystem(unix) -Asystem(svr4) -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) foo.c /var/tmp/cci0uNeg.i GNU CPP version 2.95.3 20010315 (release) (sparc) #include "..." search starts here: #include <...> search starts here: /usr/local/include /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/../../../../sparc-sun-solaris2.6/include /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/include /usr/include End of search list. The following default directories have been omitted from the search path: /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/../../../../include/g++-3 End of omitted list. /local/sol/2.6/depot/gcc-2.95.3-1/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3/cc1 /var/tmp/cci0uNeg.i -quiet -dumpbase foo.c -version -o /var/tmp/ccxLrAbh.s GNU C version 2.95.3 2001
Reporter | ||
Comment 10•21 years ago
|
||
Which source three is this patch supposed to apply to? I am getting failed hunks when trying to apply it to 1.3b source tree. Should I pull some other source tree from CVS? -akop
Assignee | ||
Comment 11•21 years ago
|
||
Comment on attachment 116447 [details] [diff] [review] Proposed patch for NSPR TIP This patch is for the current NSPR TIP. I will attach a patch for Mozilla 1.3b next.
Attachment #116447 -
Attachment description: Proposed patch → Proposed patch for NSPR TIP
Assignee | ||
Comment 12•21 years ago
|
||
This is the same patch adapted for the mozilla 1.3b source tree.
Reporter | ||
Comment 13•21 years ago
|
||
With the last patch, the build now fails with this command: c++ -I/usr/openwin/include -fno-rtti -fno-exceptions -pedantic -Wno-long-long -pthreads -DNDEBUG -DTRIMMED -O -fPIC -G -h libxpconnect.so -o libxpconnect.so nsScriptError.o nsXPConnect.o xpccallcontext.o xpccomponents.o xpccontext.o xpcconvert.o xpcdebug.o xpcexception.o xpcjsid.o xpcjsruntime.o xpclog.o xpcmaps.o xpcmodule.o xpcruntimesvc.o xpcstack.o xpcstring.o xpcthreadcontext.o xpcthrower.o xpcwrappedjs.o xpcvariant.o xpcwrappedjsclass.o xpcwrappednative.o xpcwrappednativeinfo.o xpcwrappednativejsops.o xpcwrappednativeproto.o xpcwrappednativescope.o -Wl,--whole-archive ../../../../dist/lib/libjsloader_s.a -Wl,--no-whole-archive -L../../../../dist/bin -lxpcom -L../../../../dist/bin -L/home/src/akopps/mozilla/cvs-1.3b/mozilla/dist/lib -lplds4 -lplc4 -lnspr4 -lposix4 -L../../../../dist/bin -lmozjs -Wl,-M -Wl,../../../../build/unix/gnu-ld-scripts/components-mapfile -lsocket -ldl -lm /opt/local/bin/ld:../../../../build/unix/gnu-ld-scripts/components-mapfile: file format not recognized; treating as linker script /opt/local/bin/ld:../../../../build/unix/gnu-ld-scripts/components-mapfile:1: parse error Archive member included because of file (symbol) ../../../../dist/lib/libjsloader_s.a(mozJSComponentLoader.o) (--whole-archive) ../../../../dist/lib/libjsloader_s.a(mozJSSubScriptLoader.o) (--whole-archive) collect2: ld returned 1 exit status gmake[4]: *** [libxpconnect.so] Error 1 gmake[4]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/js/src/xpconnect/src' gmake[3]: *** [libs] Error 2 gmake[3]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/js/src/xpconnect' gmake[2]: *** [tier_9] Error 2 gmake[2]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake[1]: *** [default] Error 2 gmake[1]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake: *** [build] Error 2
Assignee | ||
Comment 14•21 years ago
|
||
This is a problem of mozilla/configure.in. Here is the relevant fragment from the version in mozilla 1.3b: 1463 *-solaris*) 1464 if test -z "$GNU_LD"; then 1465 if test -z "$GNU_CC"; then 1466 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile' 1467 else 1468 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile' 1469 fi 1470 fi 1471 ;; Apparently GNU_LD is not set (I bet 'which ld' returns /usr/ccs/bin/ld) but c++ is hardwired to use GNU ld. $(GNU_LD) is the wrong variable to test here because it is not necessarily the ld used by c++. I think the solution is to add the same test I proposed for NSPR to mozilla/configure.in to detect whether c++ uses GNU ld or Solaris ld. Akop, your workaround is to set your PATH so that 'which ld' returns /opt/local/bin/ld on your system. This should get you past this error but your build will eventually fail in mozilla/security/nss (see comment 2).
Assignee | ||
Comment 15•21 years ago
|
||
Akop, this patch should do the trick. To test this patch, you should NOT change your PATH to pick up /opt/local/bin/ld.
Reporter | ||
Comment 16•21 years ago
|
||
Unfortunately, the build fails again, now with these messages: gcc -B/usr/ccs/bin/ -shared -Wl,-h,libnspr4.so,-z,combreloc,-z,defs -Wl,-f,\$ORIGIN/cpu/\$ISALIST/libnspr_flt4.so -o libnspr4.so -Wl,-M,./nsprmap.sun ./prvrsion.o io/./prfdcach.o io/./prmwait.o io/./prmapopt.o io/./priometh.o io/./pripv6.o io/./prlayer.o io/./prlog.o io/./prmmap.o io/./prpolevt.o io/./prprf.o io/./prscanf.o io/./prstdio.o threads/./prcmon.o threads/./prrwlock.o threads/./prtpd.o linking/./prlink.o malloc/./prmem.o md/./prosdep.o memory/./prshm.o memory/./prshma.o memory/./prseg.o misc/./pralarm.o misc/./pratom.o misc/./prcountr.o misc/./prdtoa.o misc/./prenv.o misc/./prerr.o misc/./prerror.o misc/./prerrortable.o misc/./prinit.o misc/./prinrval.o misc/./pripc.o misc/./prlog2.o misc/./prlong.o misc/./prnetdb.o misc/./prolock.o misc/./prrng.o misc/./prsystem.o misc/./prthinfo.o misc/./prtpool.o misc/./prtrace.o misc/./prtime.o malloc/./prmalloc.o pthreads/./ptsynch.o pthreads/./ptio.o pthreads/./ptthread.o pthreads/./ptmisc.o md/unix/./unix.o md/unix/./unix_errors.o md/unix/./uxproces.o md/unix/./uxrng.o md/unix/./uxshm.o md/unix/./uxwrap.o md/unix/./solaris.o md/unix/./os_SunOS.o -lpthread -lthread -lposix4 -lsocket -lnsl -ldl -lc ./nsprmap.sun: file not recognized: File format not recognized collect2: ld returned 1 exit status gcc: file path prefix `/usr/ccs/bin/' never used gmake[5]: *** [libnspr4.so] Error 1 gmake[5]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/nsprpub/pr/src' gmake[4]: *** [export] Error 2 gmake[4]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/nsprpub/pr' gmake[3]: *** [export] Error 2 gmake[3]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/nsprpub' gmake[2]: *** [nspr] Error 2 gmake[2]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake[1]: *** [default] Error 2 gmake[1]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake: *** [build] Error 2 I didn't change my PATH (which is set to /usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin:/opt/local/bin:/usr/ucb:/usr/sbin:/usr/proc/bin) or the rest of my environment. -akop
Assignee | ||
Comment 17•21 years ago
|
||
Akop, Sorry I wasn't clear. You actually had to apply both patches. To avoid future confusion, I combined the two patches into this patch. You just need to apply this patch to the mozilla 1.3b source tree. Again, your build will eventually fail in mozilla/security/nss. I will address that build failure when we get there. Could you post the output of `gcc -print-prog-name=ld` -v on your Solaris 2.6 system? Thanks.
Attachment #116819 -
Attachment is obsolete: true
Attachment #116923 -
Attachment is obsolete: true
Reporter | ||
Comment 18•21 years ago
|
||
$ `gcc -print-prog-name=ld` -v GNU ld version 2.13 With the last patch, the build fails at this point: gcc -B/usr/ccs/bin/ -shared -h,libfreebl_hybrid_3.so -Wl,-B,symbolic,-z,defs,-z,now,-z,text,-M,mapfile.Solaris -o SunOS5.6_OPT.OBJ/libfreebl_hybrid_3.so SunOS5.6_OPT.OBJ/ldvector.o SunOS5.6_OPT.OBJ/prng_fips1861.o SunOS5.6_OPT.OBJ/sysrand.o SunOS5.6_OPT.OBJ/sha_fast.o SunOS5.6_OPT.OBJ/md2.o SunOS5.6_OPT.OBJ/md5.o SunOS5.6_OPT.OBJ/alg2268.o SunOS5.6_OPT.OBJ/arcfour.o SunOS5.6_OPT.OBJ/arcfive.o SunOS5.6_OPT.OBJ/desblapi.o SunOS5.6_OPT.OBJ/des.o SunOS5.6_OPT.OBJ/rijndael.o SunOS5.6_OPT.OBJ/dh.o SunOS5.6_OPT.OBJ/pqg.o SunOS5.6_OPT.OBJ/dsa.o SunOS5.6_OPT.OBJ/rsa.o SunOS5.6_OPT.OBJ/mpprime.o SunOS5.6_OPT.OBJ/mpmontg.o SunOS5.6_OPT.OBJ/mplogic.o SunOS5.6_OPT.OBJ/mpi.o SunOS5.6_OPT.OBJ/mpi_sparc.o SunOS5.6_OPT.OBJ/mpv_sparcv8.o SunOS5.6_OPT.OBJ/montmulfv8.o /home/src/akopps/mozilla/cvs-1.3b/mozilla/dist/lib/libsecutil.a -L/home/src/akopps/mozilla/cvs-1.3b/mozilla/dist/lib/ -lplc4 -lplds4 -lnspr4 -lc /opt/local/bin/ld: unrecognized option '-B' /opt/local/bin/ld: use the --help option for usage information collect2: ld returned 1 exit status gcc: file path prefix `/usr/ccs/bin/' never used gmake[6]: *** [SunOS5.6_OPT.OBJ/libfreebl_hybrid_3.so] Error 1 gmake[6]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/security/nss/lib/freebl' gmake[5]: *** [libs] Error 2 gmake[5]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/security/nss/lib/freebl' gmake[4]: *** [libs] Error 2 gmake[4]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/security/nss/lib' gmake[3]: *** [libs] Error 2 gmake[3]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/security/manager' gmake[2]: *** [tier_95] Error 2 gmake[2]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake[1]: *** [default] Error 2 gmake[1]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake: *** [build] Error 2 -akop
Assignee | ||
Comment 19•21 years ago
|
||
Akop, That is the failure in mozilla/security/nss that we told you about. Please try this patch. Hopefully this will get you past the build failure and complete the build. Thanks.
Attachment #117028 -
Attachment is obsolete: true
Assignee | ||
Comment 20•21 years ago
|
||
This version of the patch has a fix in mozilla/{configure,configure.in} that does not affect gcc users.
Attachment #117283 -
Attachment is obsolete: true
Reporter | ||
Comment 21•21 years ago
|
||
Hello. I have applied patch ID 117287 to mozilla 1.3b and it compiled fine. However, the build now fails if I use the same version of gcc with the only difference that this gcc is using Sun binutils as opposed to GNU binutils. The error message is below: gcc -shared -Wl,-h,libnspr4.so,-z,combreloc,-z,defs -Wl,-f,\$ORIGIN/cpu/\$ISALIS T/libnspr_flt4.so -o libnspr4.so -Wl,--version-script,./nsprmap.sun ./prvrsion.o io/./prfdcach.o io/./prmwait.o io/./prmapopt.o io/./priometh.o io/./pripv6.o io /./prlayer.o io/./prlog.o io/./prmmap.o io/./prpolevt.o io/./prprf.o io/./prscan f.o io/./prstdio.o threads/./prcmon.o threads/./prrwlock.o threads/./prtpd.o lin king/./prlink.o malloc/./prmem.o md/./prosdep.o memory/./prshm.o memory/./prshma .o memory/./prseg.o misc/./pralarm.o misc/./pratom.o misc/./prcountr.o misc/./pr dtoa.o misc/./prenv.o misc/./prerr.o misc/./prerror.o misc/./prerrortable.o misc /./prinit.o misc/./prinrval.o misc/./pripc.o misc/./prlog2.o misc/./prlong.o mis c/./prnetdb.o misc/./prolock.o misc/./prrng.o misc/./prsystem.o misc/./prthinfo. o misc/./prtpool.o misc/./prtrace.o misc/./prtime.o malloc/./prmalloc.o pthreads /./ptsynch.o pthreads/./ptio.o pthreads/./ptthread.o pthreads/./ptmisc.o md/unix /./unix.o md/unix/./unix_errors.o md/unix/./uxproces.o md/unix/./uxrng.o md/unix /./uxshm.o md/unix/./uxwrap.o md/unix/./solaris.o md/unix/./os_SunOS.o -lpthread -lthread -lposix4 -lsocket -lnsl -ldl -lc /usr/ccs/bin/ld: illegal option -- - /usr/ccs/bin/ld: illegal option -- v usage: ld [-6:abc:d:e:f:h:il:mo:p:rstu:z:B:CD:F:GI:L:M:N:P:Q:R:S:VY:?] file(s) [-64] enforce a 64-bit link-edit [-a] create an absolute file [-b] do not do special PIC relocations in a.out [-B direct] specify `direct' bindings for executable when run [-B dynamic | static] search for shared libraries|archives [-B eliminate] eliminate unqualified global symbols from the symbol table [-B group] relocate object from within group [-B local] reduce unqualified global symbols to local [-B reduce] process symbol reductions [-B symbolic] bind external references to definitions when creating shared objects [-c name] record configuration file `name' [-C] demangle C++ symbol name diagnostics [-d y | n] operate in dynamic|static mode [-D token,...] print diagnostic messages [-e epsym] use `epsym' as entry point address [-f name] specify library for which this file is an auxiliary filter [-F name] specify library for which this file is a filter [-G] create a shared object [-h name] use `name' as internal shared object identifier [-i] ignore LD_LIBRARY_PATH setting [-I name] use `name' as path of interpreter [-l x] search for libx.so or libx.a [-L path] search for libraries in directory `path' [-m] print memory map [-M mapfile] use processing directives contained in `mapfile' [-N string] create a dynamic dependency for `string' [-o outfile] name the output file `outfile' [-p auditlib] identify audit library to accompany this object [-P auditlib] identify audit library for processing the dependencies of this object [-Q y | n] do|do not place version information in output file [-r] create a relocatable object [-R path] specify a library search path to be used at run time [-s] strip any symbol and debugging information [-S supportlib] specify a link-edit support library [-t] do not warn of multiply-defined symbols that have different sizes or alignments [-u symname] create an undefined symbol `symname' [-V] print version information [-Y P,dirlist] use `dirlist' as a default path when searching for libraries [-z absexec] when building an executable absolute symbols referenced in dynamic objects are promoted to the executable [-z allextract | defaultextract | weakextract] extract all member files, only members that resolve undefined tor tentative symbols, or allow extraction of archive members to resolvetweak references from archive files [-z combreloc] combine multiple relocation sections [-z defs] tdisallow undefined symbol references [-z endfiltee] marks a filtee such that it will terminate a filters search [-z finiarray=function] name of function to be appended to the .finiarray [-z groupperm | nogroupperm] enable|disable setting of group permissions on dynamic dependencies [-z ignore | record] ignore|record unused dynamic dependencies [-z initarray=function] name of function to be appended to the .initarray [-z initfirst] mark object to indicate that its .init section should be executed before the .init section of any other objects [-z interpose] dynamic object is to be an `interposer' on direct bindings [-z lazyload | nolazyload] enable|disable delayed loading of shared objects [-z ld32=arg1,arg2,...] define arguments applicable to the 32-bit class of ld(1) [-z ld64=arg1,arg2,...] define arguments applicable to the 64-bit class of ld(1) [-z loadfltr] mark filter as requiring immediate loading of its filtees at runtime [-z muldefs] allow multiply-defined symbols [-z nodefs] allow undefined symbol references [-z nodefaultlib] mark object to ignore any default library search path [-z nodelete] mark object as non-deletable [-z nodlopen] mark object as non-dlopen()'able [-z nodump] mark object as non-dldump()'able [-z nopartial] expand any partially initialized symbols [-z noversion] don't record any version sections [-z now] mark object as requiring non-lazy binding [-z origin] mark object as requiring $ORIGIN processing [-z preinitarray=function] name of function to be appended to the .preinitarray [-z redlocsym] reduce local syms in .symtab to a minimum [-z rescan] rescan archive list until no further member extraction occurs [-z text] disallow output relocations against text [-z textoff] allow output relocations against text [-z textwarn] warn if there are relocations against text [-z verbose] generate warnings for suspicious processings collect2: ld returned 1 exit status gmake[5]: *** [libnspr4.so] Error 1 gmake[5]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/nsprpub/p r/src' gmake[4]: *** [export] Error 2 gmake[4]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/nsprpub/p r' gmake[3]: *** [export] Error 2 gmake[3]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla/nsprpub' gmake[2]: *** [nspr] Error 2 gmake[2]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake[1]: *** [default] Error 2 gmake[1]: Leaving directory `/home/src/akopps/mozilla/cvs-1.3b/mozilla' gmake: *** [build] Error 2
Assignee | ||
Comment 22•21 years ago
|
||
Akop, Thank you very much for testing the patch. I found that my previous patch has a serious bug. It happens to work with the gcc that uses GNU binutils, and manifests itself when you switch to the gcc that uses Sun binutils. I've fixed the bug in this patch. Unfortunately, you will need to test it with both gcc's (using GNU and Sun binutils).
Attachment #117287 -
Attachment is obsolete: true
Assignee | ||
Comment 23•21 years ago
|
||
This patch is for code review only because it doesn't have the changes to mozilla/nsprpub/configure. Do not apply this patch to your source tree.
Attachment #116447 -
Attachment is obsolete: true
Assignee | ||
Updated•21 years ago
|
Attachment #118135 -
Flags: review?(seawood)
Reporter | ||
Comment 24•21 years ago
|
||
The mozilla 1.3b with patch from attachment 117541 [details] [diff] [review] now compiles fine with both gcc configurations.
Comment 25•21 years ago
|
||
Comment on attachment 118135 [details] [diff] [review] Proposed patch for NSPR TIP (for code review only) r=cls
Attachment #118135 -
Flags: review?(seawood) → review+
Assignee | ||
Comment 26•21 years ago
|
||
Akop, thank you very much for testing the patch from attachment 117541 [details] [diff] [review] for both gcc's. Your help is very valuable. I've checked in the NSPR and NSS patches. They will appear in mozilla 1.4alpha. This is the patch for the current Mozilla tip, excluding NSPR and NSS. (For ease of code review, this patch does not contain the changes to mozilla/configure. Do not apply this patch to a source tree.)
Assignee | ||
Comment 27•21 years ago
|
||
Comment on attachment 118165 [details] [diff] [review] Proposed patch for Mozilla TIP, excluding NSPR and NSS (for code review only) cls, please review this patch. I have a question about the test for GNU_LD. Why is there an "echo" command with no arguments at the beginning of the pipeline? > if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then > GNU_LD=1 > fi My test for GCC_USE_GNU_LD does not use this "echo" command. Should it?
Attachment #118165 -
Flags: review?(seawood)
Comment 28•21 years ago
|
||
Comment on attachment 118165 [details] [diff] [review] Proposed patch for Mozilla TIP, excluding NSPR and NSS (for code review only) I don't think the echo is needed. It was probably just copy-n-pasted from the as test (which does need the echo since it takes input from stdin). r=cls
Attachment #118165 -
Flags: review?(seawood) → review+
Assignee | ||
Comment 29•21 years ago
|
||
All patches have been checked in.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Target Milestone: --- → 4.3
Comment 30•21 years ago
|
||
*** Bug 200090 has been marked as a duplicate of this bug. ***
Comment 31•21 years ago
|
||
Hello all, I resolved this with a specific "configure" command in the mozilla/nsprpub directory, and it found the right Sun Compiler and associated binutils rather than my GNU CC and GNU Binutils. In fact, if this configure is done from the top tree, it fails because it tries to use the GNU gcc and associated binutils. So my mozilla is running fine, but was compiled both with GNU and SUN cc, and GNU and SUN binutils. But I'll keep in mind the _real_ patch exists... Manys thanks for this help, Sylvain.
You need to log in
before you can comment on or make changes to this bug.
Description
•