brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · d022936 Raw
35 lines · plain
1# RUN: yaml2obj %s -o %t2 3## Check we cannot remove the .dynsym symbol table because dynamic4## relocation section .rela.dyn still references it via sh_link field.5# RUN: not llvm-objcopy -R .dynsym %t %t2 2>&1 >/dev/null | FileCheck %s --check-prefix=ERR -DINPUT=%t6# ERR: error: '[[INPUT]]': symbol table '.dynsym' cannot be removed because it is referenced by the relocation section '.rela.dyn'7 8## Check we can remove .dynsym after removing the reference.9# RUN: llvm-objcopy -R .dynsym -R .rela.dyn %t %t210# RUN: llvm-readelf --sections %t2 | FileCheck %s --implicit-check-not=".dynsym"11 12## Check we zero out sh_link field and allow producing output with the --allow-broken-links switch.13# RUN: llvm-objcopy -R .dynsym --allow-broken-links %t %t214# RUN: llvm-readelf --sections %t2 | FileCheck %s --check-prefix=DROP-LINK15# DROP-LINK:     [Nr] Name      Type Address          Off    Size   ES   Flg L16# DROP-LINK:     [ 1] .rela.dyn RELA 0000000000000270 000040 000000 18   A   017# DROP-LINK-NOT: .dynsym18 19!ELF20FileHeader:21  Class:           ELFCLASS6422  Data:            ELFDATA2LSB23  Type:            ET_DYN24  Machine:         EM_X86_6425Sections:26  - Name:          .rela.dyn27    Type:          SHT_RELA28    Flags:         [ SHF_ALLOC ]29    Address:       0x000000000000027030    Link:          .dynsym31    EntSize:       0x000000000000001832DynamicSymbols:33  - Name:          bar34    Binding:       STB_GLOBAL35