summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-02-24 05:42:27 -0800
committerH.J. Lu <hjl.tools@gmail.com>2016-02-26 05:21:53 -0800
commitf3d3b91caa76d67f9e75ed9705ec89adbc77e020 (patch)
tree2a9ff1c43f8e7c32913f4420046e8cd3c4a9fdb5
parent57b8887652e833a7fef8c3cf871d733d3d5fc289 (diff)
downloadbinutils-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/ChangeLog9
-rw-r--r--bfd/elf32-i386.c2
-rw-r--r--bfd/elf64-x86-64.c2
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;
}