From 539300fb929ada830ec7c4002fd59f0d86c823b1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 1 Jul 2019 11:17:01 +0100 Subject: Correct the calculation of offsets for ARM exidx relocs when performing a partial link. 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 | 6 ++++++ bfd/elf32-arm.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 31d4eee240a..6c19987843a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2019-07-01 Nick Clifton + + 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 PR 24708 diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 52fd48f6ec9..bcace92421c 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -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) -- cgit v1.2.1