Closed Bug 392857 Opened 18 years ago Closed 18 years ago

Can't build Fx 3.0a8pre with gcc 4.2.1

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: heinrich_witt, Assigned: kinetik)

Details

Attachments

(1 file)

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a8pre) Gecko/2007082012 Firefox/3.0a8pre Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9a8pre) Gecko/2007082012 Firefox/3.0a8pre I got this errors: /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:68: undefined reference to `curl_easy_init' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:72: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:73: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:88: undefined reference to `curl_formadd' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:94: undefined reference to `curl_formadd' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:96: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:101: undefined reference to `curl_slist_append' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:102: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:105: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:107: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:110: undefined reference to `curl_easy_perform' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:119: undefined reference to `curl_easy_cleanup' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:121: undefined reference to `curl_formfree' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:123: undefined reference to `curl_slist_free_all' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:78: undefined reference to `curl_easy_setopt' /home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client/http_upload.cc:76: undefined reference to `curl_easy_setopt' /usr/bin/ld: crashreporter: hidden symbol `curl_easy_perform' isn't defined /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status make[6]: *** [crashreporter] Fehler 1 make[6]: Leaving directory `/home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter/client' make[5]: *** [libs] Fehler 2 make[5]: Leaving directory `/home/heinz/fx_source_trunk/mozilla/toolkit/crashreporter' make[4]: *** [libs] Fehler 2 make[4]: Leaving directory `/home/heinz/fx_source_trunk/mozilla/toolkit' make[3]: *** [libs_tier_toolkit] Fehler 2 make[3]: Leaving directory `/home/heinz/fx_source_trunk/mozilla' make[2]: *** [tier_toolkit] Fehler 2 make[2]: Leaving directory `/home/heinz/fx_source_trunk/mozilla' make[1]: *** [default] Fehler 2 make[1]: Leaving directory `/home/heinz/fx_source_trunk/mozilla' make: *** [build] Fehler 2 If I disable the crashreporter, then the Fx3 is built perfectly. Reproducible: Always Steps to Reproduce: 1.build with GCC 4.2.1 on Sidux 32bit 2. 3. Actual Results: build fails Expected Results: build fine ;-)
Version: unspecified → Trunk
It looks like you don't have libcurl installed. configure tests for it, did you check the output ? Is it really gcc 4.2.1 specific ?
Severity: critical → normal
Libcurl is installed. With gcc 4.1.2 all builds fine.
As Breakpad is used by a bunch of apps, over to Core::Build Config
Component: General → Build Config
Product: Firefox → Core
QA Contact: general → build-config
Huh, sounds like something weird with your configuration. The configure test for libcurl is pretty straightforward: http://mxr.mozilla.org/mozilla/source/configure.in#5334
At my configuration? It functions with GCC 4.1.2 perfectly. And I changed nothing.
Yes, I mean your gcc 4.2.1 configuration. Was it configured differently? Also, are you running configure again when using the different compiler?
I build the Fx with GCC 4.2.1 in a completely different directory. Configure goes through thus in each case completely again.
Could you look in config.log and find the relevant output from the test (searching for curl should be sufficient) and paste it here?
GCC 4.1.2: configure:15091: checking for libcurl configure:15103: gcc -o conftest -pthread -lpthread -lcurl conftest.c -ldl -lm 1>&5 GCC 4.2.1: configure:15091: checking for libcurl configure:15103: /usr/bin/gcc-4.2 -o conftest -pthread -lpthread -lcurl conftest.c -ldl -lm 1>&5 But gcc 4.1.2 build. 4.2.1 not! Why?
Now the next error with GCC 4.2.1 In Sidux 2007-3.1 now GCC 4.2.1 is standard. Und i got this error: rm -f libxul.so c++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align - Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-lo ng-long -pedantic -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -O3 -march=at hlon64 -msse3 -freorder-blocks -fno-reorder-functions -gstabs+ -D_FORTIFY_SOURCE =2 -fPIC -shared -Wl,-z,defs -Wl,-h,libxul.so -o libxul.so nsStaticXULComponent s.o nsUnicharUtils.o nsCompressedCharMap.o nsBidiUtils.o nsRDFResource.o -lpt hread -Wl,--whole-archive ../../embedding/browser/gtk/src/libgtkembedmoz.a .. /../toolkit/xre/libxulapp_s.a ../../staticlib/components/libxpconnect.a ../../s taticlib/components/libnecko.a ../../staticlib/components/libuconv.a ../../stati clib/components/libi18n.a ../../staticlib/components/libchardet.a ../../staticli b/components/libjar50.a ../../staticlib/components/libpref.a ../../staticlib/com ponents/libcaps.a ../../staticlib/components/libhtmlpars.a ../../staticlib/compo nents/libimglib2.a ../../staticlib/components/libgklayout.a ../../staticlib/comp onents/libdocshell.a ../../staticlib/components/libembedcomponents.a ../../stati clib/components/libwebbrwsr.a ../../staticlib/components/libnsappshell.a ../../s taticlib/components/libtxmgr.a ../../staticlib/components/libchrome.a ../../stat iclib/components/libcommandlines.a ../../staticlib/components/libtoolkitcomps.a ../../staticlib/components/libpipboot.a ../../staticlib/components/libpipnss.a . ./../staticlib/components/libxmlextras.a ../../staticlib/components/libgkplugin. a ../../staticlib/components/libmozfind.a ../../staticlib/components/libappcomps .a ../../staticlib/components/libxpinstall.a ../../staticlib/components/libjsd.a ../../staticlib/components/libautoconfig.a ../../staticlib/components/libauth.a ../../staticlib/components/libcookie.a ../../staticlib/components/libpermission s.a ../../staticlib/components/libuniversalchardet.a ../../staticlib/components/ libcomposer.a ../../staticlib/components/librdf.a ../../staticlib/components/lib windowds.a ../../staticlib/components/libintlapp.a ../../staticlib/components/li bfileview.a ../../staticlib/components/libstoragecomps.a ../../staticlib/compone nts/libplaces.a ../../staticlib/components/libtkautocomplete.a ../../staticlib/c omponents/libsatchel.a ../../staticlib/components/libpippki.a ../../staticlib/co mponents/libucvmath.a ../../staticlib/components/libwidget_gtk2.a ../../staticli b/components/libsystem-pref.a ../../staticlib/components/libgkgfxthebes.a ../../ staticlib/components/liboji.a ../../staticlib/components/libaccessibility.a ../. ./staticlib/components/libremoteservice.a ../../staticlib/components/libspellche cker.a ../../staticlib/libxpcom_core.a ../../staticlib/libucvutil_s.a ../../stat iclib/libgkgfx.a ../../staticlib/libgfxshared_s.a ../../staticlib/libmozreg_s.a ../../staticlib/libmorkreader_s.a ../../staticlib/libgtkxtbin.a ../../staticlib/ libgfxpsshar.a ../../staticlib/libthebes.a ../../staticlib/libjsj.a -Wl,--no-wh ole-archive -L../../dist/bin -L../../dist/lib -lsqlite3 -Wl,-rpath-link,../../d ist/bin -L../../dist/bin -L../../dist/lib -L../../jpeg -lmozjpeg -L../../modules /libimg/png -lmozpng -L../../dist/bin -lmozlcms -L../../dist/bin -lmozjs -L../.. /dist/bin -L../../dist/lib -lcrmf -lsmime3 -lssl3 -lnss3 -lsoftokn3 -L../../mod ules/zlib/src -lmozz -lpangoxft-1.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lg module-2.0 -ldl -lglib-2.0 -L../../gfx/cairo/cairo/src -lmozcairo -L../../gfx/ cairo/libpixman/src -lmozlibpixman -lXrender -lfreetype -lfontconfig -L../../d ist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lX11 -lXft -lfontconfig -lgtk -x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontcon fig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lc airo -lgmodule-2.0 -ldl -lX11 -lgobject-2.0 -lglib-2.0 -lXt -lgthread-2.0 -lfr eetype -lz -ldl -lm ../../staticlib/components/libpipnss.a(nsNSSIOLayer.o): In function `nsNSS_SSLGe tClientAuthData(void*, PRFileDesc*, CERTDistNamesStr*, CERTCertificateStr**, SEC KEYPrivateKeyStr**)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSIOLayer.cpp:20 82: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSIOLayer.cpp:23 83: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsKeygenHandler.o): In function `decode_p qg_params(char*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsKeygenHandler.cpp :131: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsKeygenHandler.cpp :152: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsKeygenHandler.cpp :152: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsKeygenHandler.o): In function `nsKeygen FormProcessor::GetPublicKey(nsAString_internal&, nsAString_internal&, nsString&, nsAString_internal&, nsAString_internal&)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsKeygenHandler.cpp :798: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsKeygenHandler.cpp :559: undefined reference to `PORT_NewArena' ../../staticlib/components/libpipnss.a(nsCrypto.o): In function `nsCrypto::Impor tUserCertificates(nsAString_internal const&, nsAString_internal const&, int, nsA String_internal&)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCrypto.cpp:2314: undefined reference to `PORT_NewArena' ../../staticlib/components/libpipnss.a(nsCMSSecureMessage.o): In function `nsCMS SecureMessage::SendMessage(char const*, char const*, char**)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCMSSecureMessage. cpp:178: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCMSSecureMessage. cpp:286: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsCMS.o): In function `nsCMSMessage::Crea teEncrypted(nsIArray*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCMS.cpp:443: unde fined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCMS.cpp:457: unde fined reference to `PORT_NewArena' ../../staticlib/components/libpipnss.a(nsCMS.o): In function `nsZeroTerminatedCe rtArray::~nsZeroTerminatedCertArray()': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSShutDown.hSad.t ext._ZN25nsZeroTerminatedCertArray26virtualDestroyNSSReferenceEv[nsZeroTerminate dCertArray::virtualDestroyNSSReference()]+0x5b): undefined reference to `PORT_Fr eeArena' ../../staticlib/components/libpipnss.a(nsCMS.o): In function `nsCMSMessage::nsCM SMessage()': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/../../../../dist/in clude/pipnss/nsICMSMessage.h:34: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/../../../../dist/in clude/pipnss/nsICMSMessage.h:34: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertHelper.o): In function `ProcessS ubjectKeyId(SECItemStr*, nsAString_internal&, nsINSSComponent*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1156: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1160: undefined reference to `SEC_QuickDERDecodeItem' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1173: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertHelper.o): In function `ProcessA uthKeyId(SECItemStr*, nsAString_internal&, nsINSSComponent*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1187: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1218: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertHelper.o): In function `ProcessA uthInfoAccess(SECItemStr*, nsAString_internal&, nsINSSComponent*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1505: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1535: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertHelper.o): In function `ProcessC rlDistPoints(SECItemStr*, nsAString_internal&, nsINSSComponent*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1413: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1491: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertHelper.o): In function `ProcessC ertificatePolicies(SECItemStr*, nsAString_internal&, nsINSSComponent*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1256: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1324: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1295: undefined reference to `SEC_QuickDERDecodeItem' ../../staticlib/components/libpipnss.a(nsNSSCertHelper.o): In function `ProcessE xtensionData(SECOidTag, SECItemStr*, nsAString_internal&, nsINSSComponent*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1131: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :1142: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :974: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertHelper.cpp :982: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertificateDB.o): In function `nsNSS CertificateDB::ImportUserCertificate(unsigned char*, unsigned int, nsIInterfaceR equestor*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:888: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:944: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:944: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertificateDB.o): In function `nsNSS CertificateDB::ImportServerCertificate(unsigned char*, unsigned int, nsIInterfac eRequestor*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:661: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:667: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:708: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertificateDB.o): In function `nsNSS CertificateDB::ImportEmailCertificate(unsigned char*, unsigned int, nsIInterface Requestor*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:529: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:535: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:642: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsNSSCertificateDB.o): In function `nsNSS CertificateDB::ImportCertificates(unsigned char*, unsigned int, unsigned int, ns IInterfaceRequestor*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:465: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:471: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:502: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsNSSCertificateDB. cpp:477: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsCRLManager.o): In function `nsCRLManage r::DeleteCrl(unsigned int)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCRLManager.cpp:42 0: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsCRLManager.o): In function `nsCRLManage r::GetCrls(nsIArray**)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCRLManager.cpp:37 9: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsCRLManager.o): In function `nsCRLManage r::ImportCrl(unsigned char*, unsigned int, nsIURI*, unsigned int, int, unsigned short const*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsCRLManager.cpp:10 5: undefined reference to `PORT_NewArena' ../../staticlib/components/libpipnss.a(nsDataSignatureVerifier.o): In function ` nsDataSignatureVerifier::VerifyData(nsACString_internal const&, nsACString_inter nal const&, nsACString_internal const&, int*)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsDataSignatureVeri fier.cpp:67: undefined reference to `PORT_NewArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsDataSignatureVeri fier.cpp:92: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsDataSignatureVeri fier.cpp:115: undefined reference to `PORT_FreeArena' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsDataSignatureVeri fier.cpp:112: undefined reference to `SEC_QuickDERDecodeItem' /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsDataSignatureVeri fier.cpp:129: undefined reference to `PORT_FreeArena' ../../staticlib/components/libpipnss.a(nsDataSignatureVerifier.o): In function ` nsDataSignatureVerifier::QueryInterface(nsID const&, void**)': /home/heinz/fx_source_trunk/mozilla/security/manager/ssl/src/nsDataSignatureVeri fier.cpp:45: undefined reference to `SECOID_AlgorithmIDTemplate' ../../dist/lib/libcrmf.a(crmftmpl.o)Sad.data.rel.ro+0x198): undefined reference t o `SECOID_AlgorithmIDTemplate' ../../dist/lib/libcrmf.a(crmftmpl.o)Sad.data.rel.ro+0x1a8): undefined reference t o `SECOID_AlgorithmIDTemplate' ../../dist/lib/libcrmf.a(crmftmpl.o)Sad.data.rel.ro+0x1c8): undefined reference t o `SECOID_AlgorithmIDTemplate' ../../dist/lib/libcrmf.a(crmftmpl.o)Sad.data.rel.ro+0x258): undefined reference t o `SECOID_AlgorithmIDTemplate' ../../dist/lib/libcrmf.a(crmftmpl.o)Sad.data.rel.ro+0x308): more undefined refere nces to `SECOID_AlgorithmIDTemplate' follow ../../dist/lib/libcrmf.a(crmfreq.o): In function `CRMF_DestroyCertReqMessages': crmfreq.cSad.text+0xe8): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(crmfreq.o): In function `CRMF_DestroyCertReqMsg': crmfreq.cSad.text+0x1c2): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(crmfreq.o): In function `CRMF_DestroyCertRequest': crmfreq.cSad.text+0x22f): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(crmfreq.o): In function `CRMF_CreateCertReqMsg': crmfreq.cSad.text+0x3ef): undefined reference to `PORT_NewArena' crmfreq.cSad.text+0x428): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(crmfreq.o): In function `CRMF_CreateCertRequest': crmfreq.cSad.text+0x7b4): undefined reference to `PORT_NewArena' crmfreq.cSad.text+0x7ff): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(crmfcont.o): In function `crmf_encrypted_value_unwrap_p riv_key': crmfcont.cSad.text+0x62f): undefined reference to `PORT_NewArena' crmfcont.cSad.text+0x691): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(respcli.o): In function `CMMF_CreateCertRepContentFromD ER': respcli.cSad.text+0x1cc): undefined reference to `PORT_NewArena' respcli.cSad.text+0x273): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(respcmn.o): In function `CMMF_DestroyPOPODecKeyChallCon tent': respcmn.cSad.text+0x89c): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(respcmn.o): In function `CMMF_DestroyCertRepContent': respcmn.cSad.text+0x950): undefined reference to `PORT_FreeArena' ../../dist/lib/libcrmf.a(asn1cmn.o)Sad.data.rel.ro+0x178): undefined reference to `SECOID_AlgorithmIDTemplate' /usr/bin/ld: libxul.so: hidden symbol `PORT_NewArena' isn't defined /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status make[4]: *** [libxul.so] Fehler 1 make[4]: Leaving directory `/home/heinz/fx_source_trunk/mozilla/toolkit/library' make[3]: *** [libs_tier_toolkit] Fehler 2 make[3]: Leaving directory `/home/heinz/fx_source_trunk/mozilla' make[2]: *** [tier_toolkit] Fehler 2 make[2]: Leaving directory `/home/heinz/fx_source_trunk/mozilla' make[1]: *** [default] Fehler 2 make[1]: Leaving directory `/home/heinz/fx_source_trunk/mozilla' make: *** [build] Fehler 2
I can see this, too. Same GCC, Debian testing/unstable, SeaMonkey trunk (2.0a).
I ran into the same compile failure as seen in comment #1 after my GCC was upgraded to 4.2 (gcc version 4.2.1 (Debian 4.2.1-6)). config.cache from a GCC 4.2 build: ac_cv_have_visibility_builtin_bug=${ac_cv_have_visibility_builtin_bug=no} ac_cv_have_visibility_class_bug=${ac_cv_have_visibility_class_bug=no} config.cache from a GCC 4.1 build: ac_cv_have_visibility_builtin_bug=${ac_cv_have_visibility_builtin_bug=no} ac_cv_have_visibility_class_bug=${ac_cv_have_visibility_class_bug=yes} This means we end up with a forced include of config/gcc_hidden.h when building with GCC 4.2. When http_upload.cc is compiled with this forced include, the external curl symbols end up being hidden: toolkit/crashreporter/client% objdump -t *.o | grep curl 00000000 *UND* 00000000 .hidden curl_easy_init This happens because /usr/include/curl/curl.h isn't set up to deal with symbol visibility on non-WIN32 platforms. As a hack, compiling http_upload.cc with the defines -DCURL_HIDDEN_SYMBOLS -DCURL_EXTERN_SYMBOL='__attribute__((visibility("default")))' allows crashreporter to compile and link successfully.
I am unsurprised that this is a visibility issue. Our official tinderboxes are using the RedHat branch of gcc 4.1.1, which includes some visibility fixes. I'm not sure if those are in 4.2 or not.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Perhaps I misundertood what you're saying, but I don't think this is a GCC issue. As far as I can see, the problem is that the Curl header files do not use the GCC visibility attributes and aren't prepared to be compiled in a situation where the default visibility is hidden (as it is when config/gcc_hidden.h is included). With GCC 4.1 (at least, with gcc version 4.1.3 20070831 (prerelease) (Debian 4.1.2-16)--I don't know about the 4.1 on the tinderboxes, I don't know if I can see their config.cache), we don't end up including config/gcc_hidden.h, so we build http_upload.cc (and everything else, presumably) with default visibility. With 4.2, we include config/gcc_hidden.h and compile http_upload.cc with visibility defaulting to hidden, which causes the problems with the Curl headers. For example, looking at curl/curl.h and curl/easy.h from libcurl 7.17.0, CURL_EXTERN is only defined if building on Win32 or if the file is being compiled during the libcurl build only: /* * Decorate exportable functions for Win32 DLL linking. * This avoids using a .def file for building libcurl.dll. */ #if (defined(WIN32) || defined(_WIN32)) && !defined(CURL_STATICLIB) #if defined(BUILDING_LIBCURL) #define CURL_EXTERN __declspec(dllexport) #else #define CURL_EXTERN __declspec(dllimport) #endif #else #ifdef CURL_HIDDEN_SYMBOLS /* * This definition is used to make external definitions visibile in the * shared library when symbols are hidden by default. It makes no * difference when compiling applications whether this is set or not, * only when compiling the library. */ #define CURL_EXTERN CURL_EXTERN_SYMBOL #else #define CURL_EXTERN #endif ...and then looking at one of the problem symbols... CURL_EXTERN CURL *curl_easy_init(void); ...where presumably CURL_EXTERN_SYMBOL is defined by the libcurl configure/build scripts to use the appropriate GCC/compiler specific visibility attributes. So a program using libcurl headers (i.e. outside of their build system) will end up with CURL_EXTERN undefined, resulting in curl_easy_init picking up the default visibility. I think the right thing to do is submit a patch upstream to fix the Curl headers... but the rules for the header files state that you're only allowed to use preprocessor defines to alter the build behaviour, and I'm not sure that the GCC symbol visibility behaviour can be detected reliably via preprocessor defines. Perhaps it would be safe just to define CURL_EXTERN to __attribute__((visibility ("default"))) if the user is using GCC >= 4 and is on an ELF system, but I'm not sure.
There appear to be two different bugs here: the originally reported bug is about curl, and can and should be fixed in mozilla by adding the curl headers to config/system-headers. I'm surprised that this isn't affecting the trunk tinderboxes. The other issue, with PORT_ symbols and others missing, is different and should be dealt with in a separate bug. It could be specific to the system-NSS case.
Assignee: nobody → ted.mielczarek
Flags: blocking1.9+
Flags: blocking1.8.1.9?
Assignee: ted.mielczarek → kinetik
Comment on attachment 284580 [details] [diff] [review] Trivial config/system-headers patch works for me. r=me, and I checked this in for you.
Attachment #284580 - Flags: review+
Benjamin: I'm assuming you accidentally set blocking1.8.1.9?, since this code doesn't ship on that branch.
Status: NEW → RESOLVED
Closed: 18 years ago
Flags: blocking1.8.1.9?
Resolution: --- → FIXED
Hmm yeah, I misread the bug to be about fx200x as well.
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: