diff options
author | Nick Clifton <nickc@redhat.com> | 2011-10-13 10:08:13 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2011-10-13 10:08:13 +0000 |
commit | d5c7d10dad6feb7a3ceb2266eeb8c22f94ef4e18 (patch) | |
tree | 20c6cea0ac1e2e8b751e53aecebd9fd61cd82c76 | |
parent | 8efaa50c53edb750946a24ec2e06030741af2563 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 24 |
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)) |