diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2011-01-06 18:45:05 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2011-01-06 18:45:05 +0000 |
commit | 3db2e7dda697d71311d698f21d7c65b8ec1774ca (patch) | |
tree | 673b7abbfab3b1b454a5d9677950f0a919ca83d1 /ld/testsuite/ld-ifunc/ifunc-10-i386.s | |
parent | ccfc3d6e06d5b9d2ebd8b8e4239f1313e33f40ac (diff) | |
download | fsf-binutils-gdb-3db2e7dda697d71311d698f21d7c65b8ec1774ca.zip fsf-binutils-gdb-3db2e7dda697d71311d698f21d7c65b8ec1774ca.tar.gz fsf-binutils-gdb-3db2e7dda697d71311d698f21d7c65b8ec1774ca.tar.bz2 |
Handle STT_GNU_IFUNC symols when building shared library.
bfd/
2012-01-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12366
PR ld/12371
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Properly
handle symbols marked with regular reference, but not non-GOT
reference when building shared library.
* elf32-i386.c (elf_i386_gc_sweep_hook): Properly handle
local and global STT_GNU_IFUNC symols when building shared
library.
* elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise.
ld/testsuite/
2012-01-06 H.J. Lu <hongjiu.lu@intel.com>
PR ld/12366
PR ld/12371
* ld-ifunc/ifunc-10-i386.s: Add more tests.
* ld-ifunc/ifunc-10-x86-64.s: Likewise.
* ld-ifunc/ifunc-11-i386.s: Likewise.
* ld-ifunc/ifunc-11-x86-64.s: Likewise.
* ld-ifunc/ifunc-12-i386.d: New.
* ld-ifunc/ifunc-12-i386.s: Likewise.
* ld-ifunc/ifunc-12-x86-64.d: Likewise.
* ld-ifunc/ifunc-12-x86-64.s: Likewise.
* ld-ifunc/ifunc-13-i386.d: Likewise.
* ld-ifunc/ifunc-13-x86-64.d: Likewise.
* ld-ifunc/ifunc-13a-i386.s: Likewise.
* ld-ifunc/ifunc-13a-x86-64.s: Likewise.
* ld-ifunc/ifunc-13b-i386.s: Likewise.
* ld-ifunc/ifunc-13b-x86-64.s: Likewise.
Diffstat (limited to 'ld/testsuite/ld-ifunc/ifunc-10-i386.s')
-rw-r--r-- | ld/testsuite/ld-ifunc/ifunc-10-i386.s | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ld/testsuite/ld-ifunc/ifunc-10-i386.s b/ld/testsuite/ld-ifunc/ifunc-10-i386.s index 8411e81..76c5bef 100644 --- a/ld/testsuite/ld-ifunc/ifunc-10-i386.s +++ b/ld/testsuite/ld-ifunc/ifunc-10-i386.s @@ -6,6 +6,8 @@ foo: movl ifunc@GOTOFF(%ecx), %eax call ifunc@PLT call ifunc + movl xxx@GOT(%ecx), %eax + movl xxx, %eax ret .section .text.bar,"ax",@progbits @@ -18,3 +20,7 @@ bar: .type ifunc, @gnu_indirect_function ifunc: ret + + .section .data.foo,"aw",@progbits +xxx: + .long ifunc |