[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / dynrelocsec-remove-shlink-reference.test
blob2ff68de381bff05ac6d5e2f52ffc91c8b5371257
1 # RUN: yaml2obj %s > %t\r
2 \r
3 ## Check we cannot remove the .dynsym symbol table because dynamic\r
4 ## relocation section .rela.dyn still references it via sh_link field.\r
5 # RUN: not llvm-objcopy -R .dynsym %t %t2 2>&1 >/dev/null | FileCheck %s --check-prefix=ERR -DINPUT=%t\r
6 # ERR: error: '[[INPUT]]': symbol table '.dynsym' cannot be removed because it is referenced by the relocation section '.rela.dyn'\r
7 \r
8 ## Check we can remove .dynsym after removing the reference.\r
9 # RUN: llvm-objcopy -R .dynsym -R .rela.dyn %t %t2\r
10 # RUN: llvm-readelf --sections %t2 | FileCheck %s --implicit-check-not=".dynsym"\r
12 ## Check we zero out sh_link field and allow producing output with the --allow-broken-links switch.\r
13 # RUN: llvm-objcopy -R .dynsym --allow-broken-links %t %t2\r
14 # RUN: llvm-readelf --sections %t2 | FileCheck %s --check-prefix=DROP-LINK\r
15 # DROP-LINK:     [Nr] Name      Type Address          Off    Size   ES   Flg L\r
16 # DROP-LINK:     [ 1] .rela.dyn RELA 0000000000000270 000040 000000 18   A   0\r
17 # DROP-LINK-NOT: .dynsym\r
19 !ELF\r
20 FileHeader:\r
21   Class:           ELFCLASS64\r
22   Data:            ELFDATA2LSB\r
23   Type:            ET_DYN\r
24   Machine:         EM_X86_64\r
25 Sections:\r
26   - Name:          .rela.dyn\r
27     Type:          SHT_RELA\r
28     Flags:         [ SHF_ALLOC ]\r
29     Address:       0x0000000000000270\r
30     Link:          .dynsym\r
31     EntSize:       0x0000000000000018\r
32 DynamicSymbols:\r
33   - Name:          bar\r
34     Binding:       STB_GLOBAL\r