mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
07f9ddfeba
2015-08-11 Jiong Wang <jiong.wang@arm.com> bfd/ PR ld/18668 * elfnn-aarch64.c (aarch64_type_of_stub): Update destination for calls go through plt stub. (elfNN_aarch64_final_link_relocate): Adjust code logic for CALL26, JUMP26 relocation to support inserting veneer for call to plt stub. ld/testsuite/ * ld-aarch64/farcall-b-gsym.s: New test. * ld-aarch64/farcall-b-plt.s: Likewise. * ld-aarch64/farcall-bl-plt.s: Likewise. * ld-aarch64/farcall-b-gsym.d: New expect file. * ld-aarch64/farcall-b-plt.d: Likewise. * ld-aarch64/farcall-bl-plt.d: Likewise.
18 lines
366 B
ArmAsm
18 lines
366 B
ArmAsm
.global _start
|
|
.global bar_gsym
|
|
|
|
# We will place the section .text at 0x1000.
|
|
|
|
.text
|
|
|
|
_start:
|
|
# for long jump (JUMP26) to global symbol, we shouldn't insert veneer
|
|
# as the veneer will clobber IP0/IP1 which is caller saved, gcc only
|
|
# reserve them for function call relocation (CALL26).
|
|
b bar_gsym
|
|
# ((1 << 25) - 1) << 2
|
|
.skip 134217724, 0
|
|
bar_gsym:
|
|
nop
|
|
ret
|