diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-02-24 05:42:27 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-02-26 05:21:53 -0800 |
commit | f3d3b91caa76d67f9e75ed9705ec89adbc77e020 (patch) | |
tree | 2a9ff1c43f8e7c32913f4420046e8cd3c4a9fdb5 | |
parent | 57b8887652e833a7fef8c3cf871d733d3d5fc289 (diff) | |
download | binutils-gdb-f3d3b91caa76d67f9e75ed9705ec89adbc77e020.tar.gz |
Set plt_got.offset to (bfd_vma) -1
Since plt_got.offset may be updated in x86 allocate_dynrelocs, set
plt_got.offset to (bfd_vma) -1 when setting needs_plt to 0.
Backport from master
* elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
to (bfd_vma) -1 when setting needs_plt to 0.
* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
-rw-r--r-- | bfd/ChangeLog | 9 | ||||
-rw-r--r-- | bfd/elf32-i386.c | 2 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e15bada205b..afe107677b8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,12 @@ +2016-02-26 H.J. Lu <hongjiu.lu@intel.com> + + Backport from master + 2016-02-24 H.J. Lu <hongjiu.lu@intel.com> + + * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset + to (bfd_vma) -1 when setting needs_plt to 0. + * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. + 2016-02-26 Alan Modra <amodra@gmail.com> * elf64-ppc.c (create_linkage_sections): Create sfpr when diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 0c79d1673c8..5d07c773f4f 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -2490,12 +2490,14 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) } else { + eh->plt_got.offset = (bfd_vma) -1; h->plt.offset = (bfd_vma) -1; h->needs_plt = 0; } } else { + eh->plt_got.offset = (bfd_vma) -1; h->plt.offset = (bfd_vma) -1; h->needs_plt = 0; } diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 156734b7ab7..bddcfe1eed6 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -2723,12 +2723,14 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) } else { + eh->plt_got.offset = (bfd_vma) -1; h->plt.offset = (bfd_vma) -1; h->needs_plt = 0; } } else { + eh->plt_got.offset = (bfd_vma) -1; h->plt.offset = (bfd_vma) -1; h->needs_plt = 0; } |