44 lines · plain
1# REQUIRES: aarch642 3## We allow discarding .dynsym, check we don't crash.4# RUN: rm -rf %t && split-file %s %t && cd %t5# RUN: llvm-mc -filetype=obj -triple=aarch64 a.s -o a.o6# RUN: llvm-mc -filetype=obj -triple=aarch64 c.s -o c.o7# RUN: ld.lld -shared --version-script=c.ver c.o -o c.so8 9# RUN: echo 'SECTIONS { /DISCARD/ : { *(.dynsym) } }' > 1.lds10# RUN: ld.lld -shared -T 1.lds a.o c.so -o out1.so11# RUN: llvm-readelf -Sr out1.so | FileCheck %s --check-prefixes=CHECK,CHECK112 13# RUN: echo 'SECTIONS { /DISCARD/ : { *(.dynsym .dynstr) } }' > 2.lds14# RUN: ld.lld -shared -T 2.lds a.o c.so -o out2.so15# RUN: llvm-readelf -Sr out2.so | FileCheck %s --check-prefixes=CHECK,CHECK216 17# CHECK: [Nr] Name Type Address Off Size ES Flg Lk Inf Al18# CHECK-NEXT: [ 0] NULL 0000000000000000 000000 000000 00 0 0 019# CHECK-NEXT: [ 1] .gnu.version VERSYM 0000000000000000 {{.*}} 000006 02 A 0 0 220# CHECK1-NEXT: [ 2] .gnu.version_r VERNEED 0000000000000008 {{.*}} 000020 00 A 5 1 421# CHECK2-NEXT: [ 2] .gnu.version_r VERNEED 0000000000000008 {{.*}} 000020 00 A 0 1 422# CHECK1: [ 5] .dynstr STRTAB23 24# CHECK: contains 2 entries:25# CHECK: R_AARCH64_RELATIVE [[#]]26# CHECK-NEXT: R_AARCH64_GLOB_DAT 0{{$}}27 28#--- a.s29 adrp x9, :got:var30 ldr x9, [x9, :got_lo12:var]31 bl __libc_start_main32 33.data34.align 835foo:36.quad foo37 38#--- c.s39.globl __libc_start_main40__libc_start_main:41 42#--- c.ver43GLIBC_2.34 { __libc_start_main; };44