mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +08:00
* elf32-arm.c (arm_type_of_stub): Don't use ST_BRANCH_TO_ARM for
thumb only targets. (elf32_arm_final_link_relocate): Likewise. * ld-arm/thumb-b-lks-sym.d: Updated to be more flexible. * ld-arm/thumb-bl-lks-sym.d: Likewise.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2013-07-18 Terry Guo <terry.guo@arm.com>
|
||||||
|
|
||||||
|
* elf32-arm.c (arm_type_of_stub): Don't use ST_BRANCH_TO_ARM for
|
||||||
|
thumb only targets.
|
||||||
|
(elf32_arm_final_link_relocate): Likewise.
|
||||||
|
|
||||||
2013-07-18 Bill Neubauer <wcn@google.com>
|
2013-07-18 Bill Neubauer <wcn@google.com>
|
||||||
|
|
||||||
* mach-o.c (mach_o_section_name_xlat dw): Add entry for
|
* mach-o.c (mach_o_section_name_xlat dw): Add entry for
|
||||||
|
@ -3609,6 +3609,12 @@ arm_type_of_stub (struct bfd_link_info *info,
|
|||||||
|
|
||||||
r_type = ELF32_R_TYPE (rel->r_info);
|
r_type = ELF32_R_TYPE (rel->r_info);
|
||||||
|
|
||||||
|
/* ST_BRANCH_TO_ARM is nonsense to thumb-only targets when we
|
||||||
|
are considering a function call relocation. */
|
||||||
|
if (thumb_only && (r_type == R_ARM_THM_CALL || r_type == R_ARM_THM_JUMP24)
|
||||||
|
&& branch_type == ST_BRANCH_TO_ARM)
|
||||||
|
branch_type = ST_BRANCH_TO_THUMB;
|
||||||
|
|
||||||
/* For TLS call relocs, it is the caller's responsibility to provide
|
/* For TLS call relocs, it is the caller's responsibility to provide
|
||||||
the address of the appropriate trampoline. */
|
the address of the appropriate trampoline. */
|
||||||
if (r_type != R_ARM_TLS_CALL
|
if (r_type != R_ARM_TLS_CALL
|
||||||
@ -8123,6 +8129,14 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|||||||
else
|
else
|
||||||
addend = signed_addend = rel->r_addend;
|
addend = signed_addend = rel->r_addend;
|
||||||
|
|
||||||
|
/* ST_BRANCH_TO_ARM is nonsense to thumb-only targets when we
|
||||||
|
are resolving a function call relocation. */
|
||||||
|
if (using_thumb_only (globals)
|
||||||
|
&& (r_type == R_ARM_THM_CALL
|
||||||
|
|| r_type == R_ARM_THM_JUMP24)
|
||||||
|
&& branch_type == ST_BRANCH_TO_ARM)
|
||||||
|
branch_type = ST_BRANCH_TO_THUMB;
|
||||||
|
|
||||||
/* Record the symbol information that should be used in dynamic
|
/* Record the symbol information that should be used in dynamic
|
||||||
relocations. */
|
relocations. */
|
||||||
dynreloc_st_type = st_type;
|
dynreloc_st_type = st_type;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2013-07-18 Terry Guo <terry.guo@arm.com>
|
||||||
|
|
||||||
|
* ld-arm/thumb-b-lks-sym.d: Updated to be more flexible.
|
||||||
|
* ld-arm/thumb-bl-lks-sym.d: Likewise.
|
||||||
|
|
||||||
2013-07-18 Roland McGrath <mcgrathr@google.com>
|
2013-07-18 Roland McGrath <mcgrathr@google.com>
|
||||||
|
|
||||||
* ld-arm/farcall-arm-nacl.d: New file.
|
* ld-arm/farcall-arm-nacl.d: New file.
|
||||||
|
@ -4,4 +4,4 @@
|
|||||||
Disassembly of section .text:
|
Disassembly of section .text:
|
||||||
|
|
||||||
00000000 <main>:
|
00000000 <main>:
|
||||||
0: f000 bffe b.w 1000 <extFunc>
|
0: f000 bffe b.w 1000 <.*>
|
||||||
|
@ -6,7 +6,7 @@ Disassembly of section .text:
|
|||||||
00000000 <main>:
|
00000000 <main>:
|
||||||
0: b580 push {r7, lr}
|
0: b580 push {r7, lr}
|
||||||
2: af00 add r7, sp, #0
|
2: af00 add r7, sp, #0
|
||||||
4: f000 fffc bl 1000 <extFunc>
|
4: f000 fffc bl 1000 <.*>
|
||||||
8: bd80 pop {r7, pc}
|
8: bd80 pop {r7, pc}
|
||||||
a: bf00 nop
|
a: bf00 nop
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user