Correct the calculation of offsets for ARM exidx relocs when performing a partial...
authorNick Clifton <nickc@redhat.com>
Mon, 1 Jul 2019 10:17:01 +0000 (11:17 +0100)
committerNick Clifton <nickc@redhat.com>
Mon, 1 Jul 2019 10:17:01 +0000 (11:17 +0100)
PR 23839
bfd * elf32-arm.c (elf32_arm_update_relocs): Do not include the
section VMA in the offset used to update exidx relocs.

ld * testsuite/ld-arm/unwind-4.d: Adjust for corrected calculation of
exidx relocs.

bfd/ChangeLog
bfd/elf32-arm.c
ld/ChangeLog
ld/testsuite/ld-arm/unwind-4.d

index 31d4eee240aa96b7a8114f8f1d760ed7fc458c85..6c19987843a19698d71f22ed41a0ce962bf8b829 100644 (file)
@@ -1,3 +1,9 @@
+2019-07-01  Nick Clifton  <nickc@redhat.com>
+
+       PR 23839
+       * elf32-arm.c (elf32_arm_update_relocs): Do not include the
+       section VMA in the offset used to update exidx relocs.
+
 2019-06-28  Nick Clifton  <nickc@redhat.com>
 
        PR 24708
index 52fd48f6ec98f8c104498b2a461d2a622d6a909f..bcace92421c5f2a7196c8e28ed09ae2b9b10b4b4 100644 (file)
@@ -15790,7 +15790,7 @@ elf32_arm_update_relocs (asection *o,
          eadi = get_arm_elf_section_data (i);
          edit_list = eadi->u.exidx.unwind_edit_list;
          edit_tail = eadi->u.exidx.unwind_edit_tail;
-         offset = o->vma + i->output_offset;
+         offset = i->output_offset;
 
          if (eadi->elf.rel.hdr &&
              eadi->elf.rel.hdr->sh_entsize == rel_hdr->sh_entsize)
index f7d7af68d5c3f58e6d1d1b2090e1df1cfb41db2d..d23ae59a35d6a4d620293e526c0a5a3b65dfab76 100644 (file)
@@ -1,3 +1,9 @@
+2019-07-01  Nick Clifton  <nickc@redhat.com>
+
+       PR 23839
+       * testsuite/ld-arm/unwind-4.d: Adjust for corrected calculation of
+       exidx relocs.
+
 2019-06-28  Alan Modra  <amodra@gmail.com>
 
        * testsuite/ld-powerpc/callstub-1.d,
index 0bed0dc69220a5fffb6aa846380c1218639624ec..6bd4d91bf4b7c55f8121c2094cf471b6bff02068 100644 (file)
@@ -13,6 +13,8 @@ OFFSET   TYPE              VALUE
 0000000c R_ARM_PREL31      \.text
 00000010 R_ARM_PREL31      \.text
 00000010 R_ARM_NONE        __aeabi_unwind_cpp_pr0
+00000010 R_ARM_PREL31      \.text
+00000010 R_ARM_NONE        __aeabi_unwind_cpp_pr0
 00000018 R_ARM_PREL31      \.text