31 lines
935 B
ArmAsm
31 lines
935 B
ArmAsm
|
# REQUIRES: aarch64
|
||
|
## While a symbolic relocation for -z notext in .eh_frame can emit a dynamic
|
||
|
## relocation, we try avoiding that (https://github.com/llvm/llvm-project/issues/60392)
|
||
|
## and use a canonical PLT entry instead.
|
||
|
|
||
|
# RUN: rm -rf %t && split-file %s %t && cd %t
|
||
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 a.s -o a.o
|
||
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 abi.s -o abi.o
|
||
|
# RUN: ld.lld -shared abi.o -o abi.so
|
||
|
|
||
|
# RUN: ld.lld a.o abi.so -o a
|
||
|
# RUN: llvm-readelf -r --dyn-syms a | FileCheck %s
|
||
|
# RUN: ld.lld -z notext a.o abi.so -o a
|
||
|
# RUN: llvm-readelf -r --dyn-syms a | FileCheck %s
|
||
|
|
||
|
# CHECK: R_AARCH64_JUMP_SLOT {{.*}} __gxx_personality_v0 + 0
|
||
|
|
||
|
# CHECK: 1: 00000000002{{.*}} 0 FUNC GLOBAL DEFAULT UND __gxx_personality_v0
|
||
|
|
||
|
#--- a.s
|
||
|
foo:
|
||
|
.cfi_startproc
|
||
|
.cfi_personality 0, __gxx_personality_v0
|
||
|
ret
|
||
|
.cfi_endproc
|
||
|
|
||
|
#--- abi.s
|
||
|
.globl __gxx_personality_v0
|
||
|
.type __gxx_personality_v0, @function
|
||
|
__gxx_personality_v0:
|