bfd/ChangeLog
2012-11-16 Joey Ye <joey.ye@arm.com> * elf32-arm.c (elf32_arm_final_link_relocate, case R_ARM_THM_ALU_PREL_11_0, case R_ARM_THM_PC12): Align address of the place being relocated. (elf32_arm_final_link_relocate, case R_ARM_THM_PC8): Align address of the place being relocated and truncate addend. (Pa): New macro.
This commit is contained in:
parent
34b6002876
commit
79f080079c
2 changed files with 22 additions and 10 deletions
|
@ -1,3 +1,12 @@
|
|||
2012-11-16 Joey Ye <joey.ye@arm.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_final_link_relocate,
|
||||
case R_ARM_THM_ALU_PREL_11_0, case R_ARM_THM_PC12): Align address of
|
||||
the place being relocated.
|
||||
(elf32_arm_final_link_relocate, case R_ARM_THM_PC8): Align address
|
||||
of the place being relocated and truncate addend.
|
||||
(Pa): New macro.
|
||||
|
||||
2012-11-14 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_nacl_plt0_entry): Use bic rather than bfc
|
||||
|
|
|
@ -63,6 +63,9 @@
|
|||
#define ARM_ELF_ABI_VERSION 0
|
||||
#define ARM_ELF_OS_ABI_VERSION ELFOSABI_ARM
|
||||
|
||||
/* The Adjusted Place, as defined by AAELF. */
|
||||
#define Pa(X) ((X) & 0xfffffffc)
|
||||
|
||||
static bfd_boolean elf32_arm_write_section (bfd *output_bfd,
|
||||
struct bfd_link_info *link_info,
|
||||
asection *sec,
|
||||
|
@ -8619,9 +8622,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|||
}
|
||||
|
||||
relocation = value + signed_addend;
|
||||
relocation -= (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ rel->r_offset);
|
||||
relocation -= Pa (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ rel->r_offset);
|
||||
|
||||
value = abs (relocation);
|
||||
|
||||
|
@ -8651,12 +8654,12 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|||
insn = bfd_get_16 (input_bfd, hit_data);
|
||||
|
||||
if (globals->use_rel)
|
||||
addend = (insn & 0x00ff) << 2;
|
||||
addend = ((((insn & 0x00ff) << 2) + 4) & 0x3ff) -4;
|
||||
|
||||
relocation = value + addend;
|
||||
relocation -= (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ rel->r_offset);
|
||||
relocation -= Pa (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ rel->r_offset);
|
||||
|
||||
value = abs (relocation);
|
||||
|
||||
|
@ -8691,9 +8694,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|||
}
|
||||
|
||||
relocation = value + signed_addend;
|
||||
relocation -= (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ rel->r_offset);
|
||||
relocation -= Pa (input_section->output_section->vma
|
||||
+ input_section->output_offset
|
||||
+ rel->r_offset);
|
||||
|
||||
value = abs (relocation);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue