]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2014-03-07 Michael Hudson-Doyle <michael.hudson@linaro.org>
authorChristophe Lyon <christophe.lyon@st.com>
Tue, 14 Jan 2014 14:53:50 +0000 (15:53 +0100)
committerWill Newton <will.newton@linaro.org>
Fri, 7 Mar 2014 03:40:36 +0000 (11:40 +0800)
    Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>

bfd/
* elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use correct
offset while calculating relocation address.
(elfNN_aarch64_create_small_pltn_entry): Likewise.
(elfNN_aarch64_init_small_plt0_entry): Likewise.

 (cherry-pick from commit f44a1f8e513b37bcc52ba9ea0c172c3e94852756)

bfd/ChangeLog
bfd/elfnn-aarch64.c

index ee617881ed1fe880c56b5b6e280e463387f848c2..b8f896f09e68b7c6313b2f0c08761229ac44597f 100644 (file)
@@ -1,3 +1,11 @@
+2014-03-07  Michael Hudson-Doyle  <michael.hudson@linaro.org>
+           Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
+
+       * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use correct
+       offset while calculating relocation address.
+       (elfNN_aarch64_create_small_pltn_entry): Likewise.
+       (elfNN_aarch64_init_small_plt0_entry): Likewise.
+
 2014-02-28  Alan Modra  <amodra@gmail.com>
 
        PR ld/16643
index 90536357645b80ce638513fb41b4b698c63aac1e..42c83fb6e8d0fb29ae7e32987054ab8625e42738 100644 (file)
@@ -3844,7 +3844,7 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
 
       value = (symbol_got_offset (input_bfd, h, r_symndx)
               + globals->root.sgot->output_section->vma
-              + globals->root.sgot->output_section->output_offset);
+              + globals->root.sgot->output_offset);
 
       value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
                                                   0, weak_undef_p);
@@ -3873,10 +3873,9 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
     case BFD_RELOC_AARCH64_TLSDESC_LDR:
       if (globals->root.sgot == NULL)
        return bfd_reloc_notsupported;
-
       value = (symbol_tlsdesc_got_offset (input_bfd, h, r_symndx)
               + globals->root.sgotplt->output_section->vma
-              + globals->root.sgotplt->output_section->output_offset
+              + globals->root.sgotplt->output_offset
               + globals->sgotplt_jump_table_size);
 
       value = _bfd_aarch64_elf_resolve_relocation (bfd_r_type, place, value,
@@ -6652,7 +6651,7 @@ elfNN_aarch64_create_small_pltn_entry (struct elf_link_hash_entry *h,
 
   plt_entry = plt->contents + h->plt.offset;
   plt_entry_address = plt->output_section->vma
-    + plt->output_section->output_offset + h->plt.offset;
+    + plt->output_offset + h->plt.offset;
   gotplt_entry_address = gotplt->output_section->vma +
     gotplt->output_offset + got_offset;
 
@@ -6959,7 +6958,7 @@ elfNN_aarch64_init_small_plt0_entry (bfd *output_bfd ATTRIBUTE_UNUSED,
                  + GOT_ENTRY_SIZE * 2);
 
   plt_base = htab->root.splt->output_section->vma +
-    htab->root.splt->output_section->output_offset;
+    htab->root.splt->output_offset;
 
   /* Fill in the top 21 bits for this: ADRP x16, PLT_GOT + n * 8.
      ADRP:   ((PG(S+A)-PG(P)) >> 12) & 0x1fffff */