Intel 80386, version 1 (SYSV) vs Intel 80386, version 1 (GNU/Linux)

James Cloos cloos@jhcloos.com
Fri Oct 1 21:42:00 GMT 2010


>>>>> "ILT" == Ian Lance Taylor <iant@google.com> writes:

ILT> However, to answer your question, the OS/ABI field will be set to
ILT> GNU/Linux if your program has any symbols whose type is STT_GNU_IFUNC.

ILT> This of course suggests that your problem is that you are building on a
ILT> system with a newer version of glibc than the system on which you want
ILT> to run the program.  This doesn't work in general; glibc is backward
ILT> compatible but not forward compatible.

That fully explains both why it happens for this project and why the abi
on the box's own executables and libraries seemed to be a random mix of
the two abis.

What is the best way to determine exactly which symbols in use are so
tagged?  I tried objdump, readelf, dumpelf and scanelf, but didn't see
references to the ST_TYPE.

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6



More information about the Gcc-help mailing list