diff options
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch new file mode 100644 index 0000000000..8ade69d3fc --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils-2.23.1/backport/0010-bfd-ChangeLog.patch @@ -0,0 +1,95 @@ +From c49a2d2d8ff625b17699c44a703f217de5b4fa2f Mon Sep 17 00:00:00 2001 +From: Yufeng Zhang <yufeng.zhang@arm.com> +Date: Mon, 19 Nov 2012 18:46:01 +0000 +Subject: [PATCH 10/27] bfd/ChangeLog + +2012-11-19 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. +--- + bfd/ChangeLog | 9 +++++++++ + bfd/elf32-arm.c | 23 +++++++++++++---------- + 2 files changed, 22 insertions(+), 10 deletions(-) + +diff --git a/bfd/ChangeLog b/bfd/ChangeLog +index 981e05a..59c36a7 100644 +--- a/bfd/ChangeLog ++++ b/bfd/ChangeLog +@@ -1,3 +1,12 @@ ++2012-11-19 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 +diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c +index 3c541ca..01ca11b 100644 +--- a/bfd/elf32-arm.c ++++ b/bfd/elf32-arm.c +@@ -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); + +-- +1.7.9.5 + |