Comment 5 for bug 686381

Revision history for this message
Andrew Stubbs (ams-codesourcery) wrote :

I can reproduce the failure under a Natty chroot.

The missing symbol, "__exidx_end", is defined by the linker script (see /usr/lib/ldscripts/armelf_linux_eabi.x), so I can't see why it isn't defined, but that's just a symptom of the real problem.

For whatever reason, this package is setup to link libstdc++ statically, not dynamically, and this means manually specifying all the hidden libraries, but they have been done incorrectly. If the command is truncated before the "-nodefaultlibs" option, thus allowing the compile driver to do a normal link, it does not use libgcc_eh at all, but uses libgcc_s.so instead, and the link is successful.

The following link line works correctly with this compiler:

g++ -Wall -Wunused -Wimplicit -Wreturn-type -Wno-unknown-pragmas -Wshadow -g -O2 -Wl,-Bsymbolic-functions -o luatex luatex-luatex.o -Wl,--export-dynamic libluatex.a libff.a libluamisc.a libluasocket.a liblua51.a /home/ams/lp686381/luatex-0.60.2/build/libs/zziplib/libzzip.a -lpng -lz -lpoppler /home/ams/lp686381/luatex-0.60.2/build/libs/obsdcompat/libopenbsd-compat.a libmd5.a libmplib.a lib/lib.a /home/ams/lp686381/luatex-0.60.2/build/texk/kpathsea/.libs/libkpathsea.a -ldl -lm -nodefaultlibs -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc