aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-elf/pr18458b.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-05-27 14:32:24 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-05-27 14:32:24 -0700
commit8ded2ddc8bac501c1ee0706cb3d3ef3fb1c10b85 (patch)
treee9aa707387d1a08ca901853b0b1887839590338e /ld/testsuite/ld-elf/pr18458b.c
parent924c2928ae3f7a9fa1130103e6a83ff2b1ff17dd (diff)
downloadgdb-8ded2ddc8bac501c1ee0706cb3d3ef3fb1c10b85.zip
gdb-8ded2ddc8bac501c1ee0706cb3d3ef3fb1c10b85.tar.gz
gdb-8ded2ddc8bac501c1ee0706cb3d3ef3fb1c10b85.tar.bz2
Convert PLT reloc only if pointer equality isn't needed
When pointer equality needed, we can't replace PLT relocations with GOT relocations for -z now. This patch checks if pointer equality is needed before converting PLT relocations to GOT relocations. bfd/ PR binutils/18458 * elf32-i386.c (elf_i386_check_relocs): Create .plt.got section for now binding only if pointer equality isn't needed. (elf_i386_allocate_dynrelocs): Use .plt.got section for now binding only if pointer equality isn't needed. * elf64-x86-64.c (elf_x86_64_check_relocs): Create .plt.got section for now binding only if pointer equality isn't needed. (elf_x86_64_allocate_dynrelocs): Use .plt.got section for now binding only if pointer equality isn't needed. ld/testsuite/ PR binutils/18458 * ld-elf/shared.exp (build_tests): Build libpr18458a.so and libpr18458b.so. (run_tests): Run pr18458 test. * ld-elf/pr18458a.c: New file. * ld-elf/pr18458b.c: Likewise. * ld-elf/pr18458c.c: Likewise.
Diffstat (limited to 'ld/testsuite/ld-elf/pr18458b.c')
-rw-r--r--ld/testsuite/ld-elf/pr18458b.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/pr18458b.c b/ld/testsuite/ld-elf/pr18458b.c
new file mode 100644
index 0000000..33c1cb6
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr18458b.c
@@ -0,0 +1,6 @@
+extern void a (void);
+void
+b (void)
+{
+ a();
+}