binutils-gdb/ld/testsuite/ld-aarch64/tlsle-symbol-offset.d
Yufeng Zhang bb3f9ed8ba Fixed AArch64 TLS relocation resolution.
bfd/

	* elf64-aarch64.c (elf64_aarch64_tls_howto_table): Fix shift value for
	R_AARCH64_TLSIE_LD_GOTTPREL_PREL19, R_AARCH64_TLSLE_MOVW_TPREL_G2,
	R_AARCH64_TLSLE_MOVW_TPREL_G1, R_AARCH64_TLSLE_MOVW_TPREL_G1_NC,
	R_AARCH64_TLSLE_ADD_TPREL_HI12.
	(elf64_aarch64_tlsdesc_howto_table): Fix shift value for
	R_AARCH64_TLSDESC_LD64_PREL19 and R_AARCH64_TLSDESC_OFF_G1.
	(elf64_aarch64_final_link_relocate): Add signed_addend when resolving
	AARCH64_TLSLE_*_TPREL_* relocations.

	ld/testsuite/

	* ld-aarch64/tlsle-symbol-offset.s: New file.
	* ld-aarch64/tlsle-symbol-offset.d: New file.
	* ld-aarch64/aarch64-elf.exp: Add tlsle-symbol-offset test.
2012-10-16 16:36:50 +00:00

12 lines
279 B
Makefile

#source: tlsle-symbol-offset.s
#ld: -shared -T relocs.ld -e0
#objdump: -dr
#...
Disassembly of section .text:
0000000000010000 <.text>:
+10000: d53bd040 mrs x0, tpidr_el0
+10004: 91400400 add x0, x0, #0x1, lsl #12
+10008: 91010000 add x0, x0, #0x40
+1000c: d65f03c0 ret