old-cross-binutils/ld/testsuite/ld-arm/farcall-mixed-lib1.s
Christophe Lyon 022f83127a 2009-06-22 Christophe Lyon <christophe.lyon@st.com>
bfd/
	* elf32-arm.c (elf32_arm_size_stubs): Use PLT address as
	destination for defined dynamic symbols when deciding whether to
	insert a stub or not.
	(allocate_dynrelocs): Make sure functions are not marked as Thumb
	when actually accessed through a PLT, even when generating a
	shared lib.

	ld/testsuite:
	* ld-arm/farcall-mixed-app.s: Add new references to check more
	modes switching.
	* ld-arm/farcall-mixed-lib1.s: Likewise.
	* ld-arm/farcall-mixed-app-v5.d: Update expected result.
	* farcall-mixed-app.d: Likewise.
	* ld-arm/farcall-mixed-lib.d: Likewise.
2009-06-22 10:55:33 +00:00

35 lines
651 B
ArmAsm

@ 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
bl lib_func3
bl lib_func4
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
bl lib_func3
bl lib_func4
bx lr
.size lib_func2, . - lib_func2