From: Casey Smith Date: Tue, 30 May 2017 14:07:56 +0000 (+0100) Subject: Fix calculation of R_ARM_RHM_ALU_PREL_11_0 relocation when used with a SUB instruction. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8c65b54f18c03ffb844e1cbaa3b46b43444ff9e7;p=binutils-gdb.git Fix calculation of R_ARM_RHM_ALU_PREL_11_0 relocation when used with a SUB instruction. PR ld/21523 * elf32-arm.c (elf32_arm_final_link_relocate): Install an absolute value when processing the R_ARM_THM_ALU_PREL_11_0 reloc. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7879a482a2f..11a474ec046 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-05-30 Casey Smith + + PR ld/21523 + * elf32-arm.c (elf32_arm_final_link_relocate): Install an absolute + value when processing the R_ARM_THM_ALU_PREL_11_0 reloc. + 2017-05-30 Anton Kolesov Anton.Kolesov@synopsys.com * cpu-arc.c (arc_compatible): New function. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 1725c222696..9cd34cafdad 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -10506,7 +10506,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, + input_section->output_offset + rel->r_offset); - value = relocation; + /* PR 21523: Use an absolute value. The user of this reloc will + have already selected an ADD or SUB insn appropriately. */ + value = abs (relocation); if (value >= 0x1000) return bfd_reloc_overflow;