diff options
author | Alan Modra <amodra@gmail.com> | 2017-02-16 12:23:12 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2017-02-17 01:43:57 +1030 |
commit | 8a3cacb06d6ecfbe3ab0e0059bf6a4eb8b4b9dc6 (patch) | |
tree | fb794ac4c4b720df8acf633c1e9247beaa26445a | |
parent | ea98891679c2528948efd5d5b3835271c53ee915 (diff) | |
download | gdb-8a3cacb06d6ecfbe3ab0e0059bf6a4eb8b4b9dc6.zip gdb-8a3cacb06d6ecfbe3ab0e0059bf6a4eb8b4b9dc6.tar.gz gdb-8a3cacb06d6ecfbe3ab0e0059bf6a4eb8b4b9dc6.tar.bz2 |
PR21132, hppa-linux pie support doesn't work
This fixes a long-standing hppa bug seen when generating PIEs, and I
think possible to trigger with forced local symbols in shared
libraries. Not allocating enough space for PLT relocs results in ld
writing outside of the buffer.
PR 21132
* elf32-hppa.c (allocate_plt_static): Allocate space for relocs
if pic.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-hppa.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 30161c8..d39283a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-02-16 Alan Modra <amodra@gmail.com> + + PR 21132 + * elf32-hppa.c (allocate_plt_static): Allocate space for relocs + if pic. + 2017-02-15 H.J. Lu <hongjiu.lu@intel.com> PR ld/21168 diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index de14468..e64ea9a 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -1976,6 +1976,8 @@ allocate_plt_static (struct elf_link_hash_entry *eh, void *inf) sec = htab->etab.splt; eh->plt.offset = sec->size; sec->size += PLT_ENTRY_SIZE; + if (bfd_link_pic (info)) + htab->etab.srelplt->size += sizeof (Elf32_External_Rela); } else { |