brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · f5d483d Raw
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