Browse Source
bfd/ * elf32-arm.c (elf32_arm_size_stubs): Handle long branches through PLT entries to an undefined symbol when generating a shared library. testsuite/ * ld-arm/arm-elf.exp: Add new test farcall-mixed-lib. * ld-arm/farcall-mixed-lib.d: Update expected output. * ld-arm/farcall-mixed-lib1.s: New file. * ld-arm/farcall-mixed-lib2.s: New file.cgen-1_1-branch
7 changed files with 128 additions and 10 deletions
@ -0,0 +1,31 @@ |
|||
@ Create a large shared library so that calls through PLT to an undef |
|||
@ symbol require insertion of a long branch stub. |
|||
@ Check also calls to an undef weak symbol. |
|||
|
|||
.text |
|||
.arch armv5t |
|||
|
|||
.p2align 4 |
|||
.globl lib_func1 |
|||
.type lib_func1, %function |
|||
lib_func1: |
|||
mov ip, sp |
|||
stmdb sp!, {r11, ip, lr, pc} |
|||
bl app_func |
|||
.weak app_func_weak |
|||
bl app_func_weak |
|||
ldmia sp, {r11, sp, lr} |
|||
bx lr |
|||
.size lib_func1, . - lib_func1 |
|||
|
|||
.space 0x1000000 |
|||
.p2align 4 |
|||
.globl lib_func2 |
|||
.type lib_func2, %function |
|||
.thumb_func |
|||
.code 16 |
|||
lib_func2: |
|||
bl app_func |
|||
bl app_func_weak |
|||
bx lr |
|||
.size lib_func2, . - lib_func2 |
|||
@ -0,0 +1,19 @@ |
|||
@ Create a large shared library so that calls through PLT to an undef |
|||
@ symbol require insertion of a long branch stub. |
|||
@ Check also calls to an undef weak symbol. |
|||
|
|||
.text |
|||
.arch armv5t |
|||
|
|||
.space 0x1000000 |
|||
.p2align 4 |
|||
.globl lib_func3 |
|||
.type lib_func3, %function |
|||
.thumb_func |
|||
.code 16 |
|||
lib_func3: |
|||
bl app_func |
|||
.weak app_func_weak |
|||
bl app_func_weak |
|||
bx lr |
|||
.size lib_func3, . - lib_func3 |
|||
Loading…
Reference in new issue