aboutsummaryrefslogtreecommitdiff
path: root/ld/ChangeLog
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@gcc.gnu.org>2018-03-28 12:17:15 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2018-03-28 12:17:15 +0200
commitf8745e1cd139b5c6a5bd8a30ea84ccbd45dec81c (patch)
tree4898722dadeb8c77ef0a15c212cb061d8255edbe /ld/ChangeLog
parentc8d59609b1cf66eaff3c486e483f5e3d647c66ff (diff)
downloadgdb-f8745e1cd139b5c6a5bd8a30ea84ccbd45dec81c.zip
gdb-f8745e1cd139b5c6a5bd8a30ea84ccbd45dec81c.tar.gz
gdb-f8745e1cd139b5c6a5bd8a30ea84ccbd45dec81c.tar.bz2
PR ld/22972 on SPARC.
This is a regression for the corner case of a hidden symbol in a PIC/PIE binary which is subject to both a new-style GOTDATA relocation and an old-style GOT relocation. In this case, depending on the link order, the R_SPARC_RELATIVE dynamic relocation for the GOT slot needed because of the old-style relocation can be replaced with R_SPARC_NONE coming from the GOTDATA relocation. The fix simply records whether an old-style GOT relocation is seen for a symbol and prevents the R_SPARC_NONE from being generated in this case. bfd/ * elfxx-sparc.c (struct _bfd_sparc_elf_link_hash_entry): Add new flag has_old_style_got_reloc. (_bfd_sparc_elf_check_relocs) <GOT relocations>: Set it for old-style relocations. Fix a couple of long lines. (_bfd_sparc_elf_relocate_section) <R_SPARC_GOTDATA_OP>: Do not generate a R_SPARC_NONE for the GOT slot if the symbol is also subject to old-style GOT relocations. ld/ * testsuite/ld-sparc/sparc.exp: Add test for mixed GOTDATA/GOT relocs. * testsuite/ld-sparc/gotop-hidden.c: New file. * testsuite/ld-sparc/got-hidden32.s: Likewise. * testsuite/ld-sparc/got-hidden64.s: Likewise. * testsuite/ld-sparc/pass.out: Likewise.
Diffstat (limited to 'ld/ChangeLog')
-rw-r--r--ld/ChangeLog9
1 files changed, 9 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index dfdc648..5f34819 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,12 @@
+2018-03-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ld/22972
+ * testsuite/ld-sparc/sparc.exp: Add test for mixed GOTDATA/GOT relocs.
+ * testsuite/ld-sparc/gotop-hidden.c: New file.
+ * testsuite/ld-sparc/got-hidden32.s: Likewise.
+ * testsuite/ld-sparc/got-hidden64.s: Likewise.
+ * testsuite/ld-sparc/pass.out: Likewise.
+
2018-03-25 H.J. Lu <hongjiu.lu@intel.com>
PR ld/23000