]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
* elf32-arm.c (elf32_arm_final_link_relocate): Mark PLT calls via
authorNick Clifton <nickc@redhat.com>
Thu, 13 Oct 2011 10:08:13 +0000 (10:08 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 13 Oct 2011 10:08:13 +0000 (10:08 +0000)
stubs as resolved.

bfd/ChangeLog
bfd/elf32-arm.c

index c5334c95ab28eec097a8ab3553a9403200c49e3e..c4d73f8c1cf25acbc744f4021bf28f06bb956a09 100644 (file)
@@ -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
index 12bbc54a33cdedca5103241636e5bd7fde5d12b1..1f6c1a07e40e9fe4a2b26504624eb2faa815e1ad 100644 (file)
@@ -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))