Firebird (and Mozilla) build errors

Discussion about official Mozilla Firefox builds
Post Reply
Necos
Posts: 4
Joined: April 5th, 2003, 3:32 pm

Firebird (and Mozilla) build errors

Post by Necos »

I just reinstalled Slackware (8.0, for simplicity reasons) on one of my machines at home. I compiled all of the gtk2 and xft libs, as well as updated glibc to 2.2.5, but I've been having a problem building both Mozilla (browser only) and Firebird. The error for both is exactly the same. This is the error:

/usr/i386-slackware-linux/bin/ld: libgfx_gtk.so: undefined versioned symbol name __dynamic_cast@@CXXABI_1.2
/usr/i386-slackware-linux/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
gmake[5]: *** [libgfx_gtk.so] Error 1
gmake[5]: Leaving directory `/root/CVS/moz/FB/mozilla/obj-i686-pc-linux-gnu-phoenix/gfx/src/gtk'
gmake[4]: *** [libs] Error 2
gmake[4]: Leaving directory `/root/CVS/moz/FB/mozilla/obj-i686-pc-linux-gnu-phoenix/gfx/src'
gmake[3]: *** [libs] Error 2
gmake[3]: Leaving directory `/root/CVS/moz/FB/mozilla/obj-i686-pc-linux-gnu-phoenix/gfx'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/root/CVS/moz/FB/mozilla/obj-i686-pc-linux-gnu-phoenix'
make[1]: *** [alldep] Error 2
make[1]: Leaving directory `/root/CVS/moz/FB/mozilla/obj-i686-pc-linux-gnu-phoenix'
make: *** [alldep] Error 2

The above is for the Firebird build. If you replace FB with Moz, that's the error that I get when building Mozilla. I did quite a bit of google searching, and found out that there's an elf library stripper that's supposed to remove any unneeded symbols. So, grep'ing my log file, I found several errors coming from the library stripping utility. A few examples:

../../dist/bin/elf-dynstr-gc ../../dist/lib/components/librdf.so
Couldn't GC any strings, exiting.

../../dist/bin/elf-dynstr-gc ../../dist/gre/components/libhtmlpars.so
Couldn't GC any strings, exiting.

../../../dist/bin/elf-dynstr-gc ../../../dist/gre/components/libgfxps.so
Couldn't GC any strings, exiting.

A dive into the source code of elf-gc-dynstr.c shows this:

if (new_dynstr_size >= old_dynstr_size) {
fprintf(stderr, "Couldn't GC any strings, exiting.\n");
return 0;
}

I haven't done much development in C to understand what all of his code does, but it appears to me that for whatever reason, there are more symbols in my compiled library files after the tool is run on them than before (or just as many, as the if statement suggests). Could this be a glibc error? ld error (well, i'd bet on this one)? Or, is it something else that I've missed? The only two system-level things that I've updated on this machine are glibc (2.2.5 compiled from source) and binutils (to 2.13.2.1 compiled from source). Has anyone had this problem before? Is there any solution short of a reinstall?
Post Reply