ifunc-reloc.s
829 Bytes
# RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -r | FileCheck %s
.global alias
.type alias, @function
alias:
callq global
.global global
.type global, @gnu_indirect_function
.set global, alias
.type local, @gnu_indirect_function
.set local, alias
## Check we don't create the relocations with a section symbol for both global
## They may result in IRELATIVE relocs that the dynamic loader will use to
## resolve addresses at startup time.
.data
.quad global
.quad local
# CHECK: Relocations [
# CHECK-NEXT: Section {{.*}} .rela.text {
# CHECK-NEXT: 0x1 R_X86_64_PLT32 global 0xFFFFFFFFFFFFFFFC
# CHECK-NEXT: }
# CHECK-NEXT: Section {{.*}} .rela.data {
# CHECK-NEXT: 0x0 R_X86_64_64 global 0x0
# CHECK-NEXT: 0x8 R_X86_64_64 local 0x0
# CHECK-NEXT: }
# CHECK-NEXT: ]