blob: b74df4cf0cdb152e0ca87b40596fc3592a8c175d [file] [log] [blame]
// REQUIRES: aarch64
// RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu %s -o %t.o
// RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu %S/Inputs/plt-aarch64.s -o %t2.o
// RUN: ld.lld -shared %t2.o -soname=t2.so -o %t2.so
// RUN: ld.lld %t.o %t2.so -o %t
// RUN: llvm-readelf -S -l %t | FileCheck %s
// CHECK-LABEL: Section Headers:
// CHECK: .text PROGBITS 00000000002102a0 0002a0 000010 00 AXy 0 0 4
// CHECK: .plt PROGBITS 00000000002102b0 0002b0 000030 00 AXy 0 0 16
// CHECK: .iplt PROGBITS 00000000002102e0 0002e0 000010 00 AXy 0 0 16
// CHECK-LABEL: Program Headers:
// CHECK: PHDR
// CHECK-NEXT: LOAD
// CHECK-NEXT: LOAD 0x0002a0 0x00000000002102a0 0x00000000002102a0 0x000050 0x000050 E 0x10000
// CHECK-LABEL: Section to Segment mapping:
/// Index should match the index of the LOAD segment above.
// CHECK: 02 .text .plt .iplt
.global bar
.section .text,"axy",@progbits,unique,0
.global _start
_start:
bl foo
bl bar
ret
.globl foo
.type foo STT_GNU_IFUNC
foo:
ret