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.
This commit is contained in:
parent
a48cda7f86
commit
247d6c4c14
@ -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-16 Jiong Wang <jiong.wang@arm.com>
|
2017-02-16 Jiong Wang <jiong.wang@arm.com>
|
||||||
|
|
||||||
* bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED.
|
* bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED.
|
||||||
|
@ -1976,6 +1976,8 @@ allocate_plt_static (struct elf_link_hash_entry *eh, void *inf)
|
|||||||
sec = htab->etab.splt;
|
sec = htab->etab.splt;
|
||||||
eh->plt.offset = sec->size;
|
eh->plt.offset = sec->size;
|
||||||
sec->size += PLT_ENTRY_SIZE;
|
sec->size += PLT_ENTRY_SIZE;
|
||||||
|
if (bfd_link_pic (info))
|
||||||
|
htab->etab.srelplt->size += sizeof (Elf32_External_Rela);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user