5fa9e92f74
bfd/ * elf32-arm.c (arm_type_of_stub): Handle long branches targetting PLT entries. (elf32_arm_final_link_relocate): Likewise. testsuite/ * ld-arm/arm-elf.exp: Add 2 more tests to check long branch stubs in PLT context. * ld-arm/farcall-mixed-app-v5.d: New file. * ld-arm/farcall-mixed-app.d: Likewise. * ld-arm/farcall-mixed-app.r: Likewise. * ld-arm/farcall-mixed-app.s: Likewise. * ld-arm/farcall-mixed-app.sym: Likewise. * ld-arm/farcall-mixed-lib.d: Likewise. * ld-arm/farcall-mixed-lib.r: Likewise.
82 lines
2.2 KiB
Makefile
82 lines
2.2 KiB
Makefile
|
|
tmpdir/farcall-mixed-app-v5: file format elf32-(little|big)arm
|
|
architecture: arm, flags 0x00000112:
|
|
EXEC_P, HAS_SYMS, D_PAGED
|
|
start address 0x.*
|
|
|
|
Disassembly of section .plt:
|
|
|
|
.* <.plt>:
|
|
.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
|
|
.*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x1c>
|
|
.*: e08fe00e add lr, pc, lr
|
|
.*: e5bef008 ldr pc, \[lr, #8\]!
|
|
.*: .*
|
|
.*: e28fc6.* add ip, pc, #.* ; 0x.*
|
|
.*: e28cca.* add ip, ip, #.* ; 0x.*
|
|
.*: e5bcf.* ldr pc, \[ip, #.*\]!
|
|
.*: e28fc6.* add ip, pc, #.* ; 0x.*
|
|
.*: e28cca.* add ip, ip, #.* ; 0x.*
|
|
.*: e5bcf.* ldr pc, \[ip, #.*\]!
|
|
|
|
Disassembly of section .text:
|
|
|
|
.* <_start>:
|
|
.*: e1a0c00d mov ip, sp
|
|
.*: e92dd800 push {fp, ip, lr, pc}
|
|
.*: eb000008 bl .* <__app_func_veneer>
|
|
.*: e89d6800 ldm sp, {fp, sp, lr}
|
|
.*: e12fff1e bx lr
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
|
|
.* <app_tfunc_close>:
|
|
.*: b500 push {lr}
|
|
.*: f7ff efe2 blx .* <_start-0x18>
|
|
.*: bd00 pop {pc}
|
|
.*: 4770 bx lr
|
|
.*: 46c0 nop \(mov r8, r8\)
|
|
.*: 46c0 nop \(mov r8, r8\)
|
|
.*: 46c0 nop \(mov r8, r8\)
|
|
|
|
.* <__app_func_veneer>:
|
|
.*: e51ff004 ldr pc, \[pc, #-4\] ; .* <__app_func_veneer\+0x4>
|
|
.*: 02100000 .word 0x02100000
|
|
|
|
Disassembly of section .far_arm:
|
|
|
|
.* <app_func>:
|
|
.*: e1a0c00d mov ip, sp
|
|
.*: e92dd800 push {fp, ip, lr, pc}
|
|
.*: eb000008 bl .* <__lib_func1_veneer>
|
|
.*: e89d6800 ldm sp, {fp, sp, lr}
|
|
.*: e12fff1e bx lr
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
|
|
.* <app_func2>:
|
|
.*: e12fff1e bx lr
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
.*: e1a00000 nop \(mov r0,r0\)
|
|
|
|
.* <__lib_func1_veneer>:
|
|
.*: e51ff004 ldr pc, \[pc, #-4\] ; 2100034 <__lib_func1_veneer\+0x4>
|
|
.*: 00008224 .word 0x00008224
|
|
|
|
Disassembly of section .far_thumb:
|
|
|
|
.* <app_tfunc>:
|
|
.*: b500 push {lr}
|
|
.*: f000 e806 blx .* <__lib_func2_from_thumb>
|
|
.*: bd00 pop {pc}
|
|
.*: 4770 bx lr
|
|
.*: 46c0 nop \(mov r8, r8\)
|
|
.*: 46c0 nop \(mov r8, r8\)
|
|
.*: 46c0 nop \(mov r8, r8\)
|
|
|
|
.* <__lib_func2_from_thumb>:
|
|
.*: e51ff004 ldr pc, \[pc, #-4\] ; 2200014 <__lib_func2_from_thumb\+0x4>
|
|
.*: 00008218 .word 0x00008218
|