ld from 2.14.90.0.8 puts no value into undefined symbols
Alan Modra
amodra@bigpond.net.au
Mon Mar 1 15:15:00 GMT 2004
On Thu, Feb 26, 2004 at 07:10:12PM -0500, Camm Maguire wrote:
> Greetings! In 2.14.90.0.7 and earlier, I'd get a symbol table that
> looked like
>
> objdump -x foo_good_raw |grep UND
> 0804a7dc F *UND* 00000018 __gmpz_fdiv_q_2exp
> 0804a7ec F *UND* 00000030 __gmpz_set_si
> 0804a7fc F *UND* 0000003e usleep@@GLIBC_2.0
> 0804a80c F *UND* 00000026 cos@@GLIBC_2.0
> 0804a81c F *UND* 0000003a rename@@GLIBC_2.0
> 0804a82c F *UND* 0000006d ferror@@GLIBC_2.0
> 0804a83c F *UND* 00000053 sigaction@@GLIBC_2.0
> ...
>
> Now I get
>
> objdump -x foo_bad_raw | grep UND
> 00000000 F *UND* 00000018 __gmpz_fdiv_q_2exp
> 00000000 F *UND* 00000030 __gmpz_set_si
> 00000000 F *UND* 0000003e usleep@@GLIBC_2.0
> 00000000 F *UND* 00000026 cos@@GLIBC_2.0
> 00000000 F *UND* 0000003a rename@@GLIBC_2.0
> 00000000 F *UND* 0000006d ferror@@GLIBC_2.0
> 00000000 F *UND* 00000053 sigaction@@GLIBC_2.0
Yes, this is a result of a fairly recent optimization. See
http://sources.redhat.com/ml/binutils/2004-01/msg00025.html and
following posts.
> I need to get the .plt address back somehow
Why? Perhaps you could look at plt relocs.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Binutils
mailing list