aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2011-10-13 10:08:13 +0000
committerNick Clifton <nickc@redhat.com>2011-10-13 10:08:13 +0000
commitd5c7d10dad6feb7a3ceb2266eeb8c22f94ef4e18 (patch)
tree20c6cea0ac1e2e8b751e53aecebd9fd61cd82c76
parent8efaa50c53edb750946a24ec2e06030741af2563 (diff)
downloadgdb-d5c7d10dad6feb7a3ceb2266eeb8c22f94ef4e18.zip
gdb-d5c7d10dad6feb7a3ceb2266eeb8c22f94ef4e18.tar.gz
gdb-d5c7d10dad6feb7a3ceb2266eeb8c22f94ef4e18.tar.bz2
* elf32-arm.c (elf32_arm_final_link_relocate): Mark PLT calls via
stubs as resolved.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.c24
2 files changed, 22 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c5334c9..c4d73f8 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-13 Richard Sandiford <richard.sandiford@linaro.org>
+
+ * elf32-arm.c (elf32_arm_final_link_relocate): Mark PLT calls via
+ stubs as resolved.
+
2011-09-29 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13195
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 12bbc54..1f6c1a0 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -8225,10 +8225,15 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
sym_sec, h,
rel, globals,
stub_type);
- if (stub_entry != NULL)
- value = (stub_entry->stub_offset
- + stub_entry->stub_sec->output_offset
- + stub_entry->stub_sec->output_section->vma);
+ {
+ if (stub_entry != NULL)
+ value = (stub_entry->stub_offset
+ + stub_entry->stub_sec->output_offset
+ + stub_entry->stub_sec->output_section->vma);
+
+ if (plt_offset != (bfd_vma) -1)
+ *unresolved_reloc_p = FALSE;
+ }
}
else
{
@@ -8653,9 +8658,14 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
rel, globals,
stub_type);
if (stub_entry != NULL)
- value = (stub_entry->stub_offset
- + stub_entry->stub_sec->output_offset
- + stub_entry->stub_sec->output_section->vma);
+ {
+ value = (stub_entry->stub_offset
+ + stub_entry->stub_sec->output_offset
+ + stub_entry->stub_sec->output_section->vma);
+
+ if (plt_offset != (bfd_vma) -1)
+ *unresolved_reloc_p = FALSE;
+ }
/* If this call becomes a call to Arm, force BLX. */
if (globals->use_blx && (r_type == R_ARM_THM_CALL))