Closed
Bug 386362
Opened 18 years ago
Closed 17 years ago
Fails to build with gcc 4.2
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 416463
People
(Reporter: glandium, Unassigned)
References
Details
Just so that there is no doubt, I did check that also happens when building a pristine firefox 2.0.0.4 source tarball, with configure arguments taken from an official build's buildconfig.html file, only removing the -gstabs+ cflag because of disk space issues.
Building with gcc 4.2 leads to the following error:
c++ -o firefox-bin -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions nsBrowserApp.o nsStaticComponents.o -L../../dist/bin -L../../dist/lib -L../../dist/lib/components ../../dist/lib/libxulapp_s.a -L../../dist/bin -lmozjs -L../../dist/bin -lxpcom -lxpcom_core -L../../dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lX11 -ldl -lm ../../dist/lib/components/libxpcom_compat_c.a ../../dist/lib/components/libxpconnect.a ../../dist/lib/components/libuconv.a ../../dist/lib/components/libucvmath.a ../../dist/lib/components/libi18n.a ../../dist/lib/components/libmork.a ../../dist/lib/components/libstoragecomps.a ../../dist/lib/components/libnecko.a ../../dist/lib/components/libnecko2.a ../../dist/lib/components/libpref.a ../../dist/lib/components/libcaps.a ../../dist/lib/components/librdf.a ../../dist/lib/components/libhtmlpars.a ../../dist/lib/components/libgfxps.a ../../dist/lib/components/libgfx_gtk.a ../../dist/lib/components/libimglib2.a ../../dist/lib/components/libgkplugin.a ../../dist/lib/components/libwidget_gtk2.a ../../dist/lib/components/libgklayout.a ../../dist/lib/components/libdocshell.a ../../dist/lib/components/libembedcomponents.a ../../dist/lib/components/libwebbrwsr.a ../../dist/lib/components/libeditor.a ../../dist/lib/components/libtxmgr.a ../../dist/lib/components/libcomposer.a ../../dist/lib/components/libnsappshell.a ../../dist/lib/components/liboji.a ../../dist/lib/components/libaccessibility.a ../../dist/lib/components/libchrome.a ../../dist/lib/components/libmozfind.a ../../dist/lib/components/libappcomps.a ../../dist/lib/components/libfileview.a ../../dist/lib/components/libremoteservice.a ../../dist/lib/components/libcommandlines.a ../../dist/lib/components/libtoolkitcomps.a ../../dist/lib/components/libpipboot.a ../../dist/lib/components/libpipnss.a ../../dist/lib/components/libpippki.a ../../dist/lib/components/libcookie.a ../../dist/lib/components/libxmlextras.a ../../dist/lib/components/libautoconfig.a ../../dist/lib/components/libsystem-pref.a ../../dist/lib/components/libtransformiix.a ../../dist/lib/components/libuniversalchardet.a ../../dist/lib/components/libwebsrvcs.a ../../dist/lib/components/libauth.a ../../dist/lib/components/libpermissions.a ../../dist/lib/components/libsearchservice.a ../../dist/lib/components/libbrowserdirprovider.a ../../dist/lib/components/libbrowsercomps.a ../../dist/lib/libunicharutil_s.a ../../dist/lib/libucvutil_s.a ../../dist/lib/libgtkxtbin.a ../../dist/lib/libgfxshared_s.a ../../dist/lib/libgfxpsshar.a ../../dist/lib/libgkgfx.a ../../dist/lib/libjsj.a ../../dist/lib/libxulapp_s.a -L../../dist/lib -lmozpng -L../../dist/lib -lmozjpeg -L../../dist/lib -lmozz -L-L../../dist/bin -L../../dist/lib -lcrmf -lsmime3 -lssl3 -lnss3 -lsoftokn3 -lmozcairo -lmozlibpixman -lXrender -lX11 -lfontconfig -lfreetype -lXt -lXft -lfontconfig -L../../dist/lib -lxpcom_compat
../../dist/lib/components/libxpcom_compat_c.a(nsXPCOMObsolete.o):(.rodata+0x30): undefined reference to `nsFileSpecImpl::Create(nsISupports*, nsID const&, void**)'
../../dist/lib/components/libxpcom_compat_c.a(nsXPCOMObsolete.o):(.rodata+0x68): undefined reference to `nsDirectoryIteratorImpl::Create(nsISupports*, nsID const&, void**)'
/usr/bin/ld: firefox-bin: hidden symbol `nsFileSpecImpl::Create(nsISupports*, nsID const&, void**)' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[3]: *** [firefox-bin] Error 1
make[3]: Leaving directory `/tmp/mozilla/browser/app'
Note that this release of gcc fixed the bugs that are checked in the configure script, so that the build now uses the system-wrappers instead of the -fvisibility=hidden argument that used to be used in gcc 4.x builds, which explains why it does only show up now.
Reporter | ||
Comment 1•18 years ago
|
||
changing nsFileSpecImpl.h in xpcom/obsolete/component so that both nsFileSpecImpl and nsDirectoryIteratorImpl are declared class NS_COM instead of class solves the problem, but I'm not sure this is the right macro to use.
I also wonder if this is not a bug in gcc, actually, because with -fvisibility=hidden, pristine source builds fine...
Reporter | ||
Comment 2•18 years ago
|
||
Hello ?
Comment 3•18 years ago
|
||
I guess attaching the patch and requesting review with questions/comments you still have might be more suitable to get timely feedback.
Reporter | ||
Comment 4•17 years ago
|
||
That was obviously a bug in gcc, since it now builds fine.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → INVALID
Reporter | ||
Comment 5•17 years ago
|
||
Forget my last message, it still occurs (just got it building seamonkey 1.1.5).
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Comment 6•17 years ago
|
||
last time i tried, the trunk builds fine at least.
Reporter | ||
Comment 7•17 years ago
|
||
The trunk builds a libxul, doesn't it ?
Comment 9•17 years ago
|
||
for me xulrunner 1.9 builds fine, while the 1.8 branch still fails with the fixed gcc.
For 1.8 we have the workaround to use -fvisibilty=hidden instead of including gcc_hidden.h. So I think its safe to say that this is fixed.
Status: REOPENED → RESOLVED
Closed: 17 years ago → 17 years ago
Resolution: --- → FIXED
Comment 10•17 years ago
|
||
Per comment 7 appears to have been a bug in gcc not Firefox
Resolution: FIXED → INVALID
Comment 12•17 years ago
|
||
This bug is not invalid.
While trunk builds fine, the stable 1.8 branch fails to build.
As I understand it, both Mike and Alendar have confirmed that.
I'm going to reopen this bug and dupe to it another bug which has more recent info, and which has cross links to other bugzillas.
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Updated•17 years ago
|
Status: REOPENED → RESOLVED
Closed: 17 years ago → 17 years ago
Resolution: --- → DUPLICATE
Assignee | ||
Updated•6 years ago
|
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•