This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
ld from 2.14.90.0.8 puts no value into undefined symbols
- From: Camm Maguire <camm at enhanced dot com>
- To: binutils at sources dot redhat dot com
- Cc: gcl-devel at gnu dot org
- Date: Thu, 26 Feb 2004 19:10:12 -0500
- Subject: ld from 2.14.90.0.8 puts no value into undefined symbols
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
The earlier addresses pointed to a jmp instruction in some plt table
kept in the plt section which jumped though a pointer presumably set
by the dynamic linker ld.so on execution (all these symbols are in
external shared libs). The .plt section is still there with the new
ld. I need to get the .plt address back somehow -- its alomst a
sequential walk through the table, but some symbols are skipped, and
doubtless the positions vary with platform. How can I do this in the
most robust fashion?
This will break gcl,maxima,acl2,axiom.
Take care,
Camm Maguire camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah