1*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t 26e4dc6f2SAlexander Shaposhnikov# RUN: cp %t %t1 36e4dc6f2SAlexander Shaposhnikov 46e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy -R .test2 %t %t2 5298ea3f5SJordan Rupprecht# RUN: llvm-readobj --file-headers --sections %t2 | FileCheck %s 66e4dc6f2SAlexander Shaposhnikov 76e4dc6f2SAlexander Shaposhnikov# Verify that the first run of llvm-objcopy 86e4dc6f2SAlexander Shaposhnikov# has not modified the input binary. 96e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t %t1 106e4dc6f2SAlexander Shaposhnikov 11298ea3f5SJordan Rupprecht# RUN: llvm-objcopy --remove-section=.test2 %t1 %t3 126e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t2 %t3 136e4dc6f2SAlexander Shaposhnikov 14f324f6dcSEugene Leviant# RUN: llvm-objcopy --regex --remove-section='.test[0-9]+' %t %t4 15f324f6dcSEugene Leviant# RUN: llvm-readobj --file-headers --sections %t4 | FileCheck %s --check-prefix=REGEX 16f324f6dcSEugene Leviant 176e4dc6f2SAlexander Shaposhnikov!ELF 186e4dc6f2SAlexander ShaposhnikovFileHeader: 196e4dc6f2SAlexander Shaposhnikov Class: ELFCLASS64 206e4dc6f2SAlexander Shaposhnikov Data: ELFDATA2LSB 216e4dc6f2SAlexander Shaposhnikov Type: ET_REL 226e4dc6f2SAlexander Shaposhnikov Machine: EM_X86_64 236e4dc6f2SAlexander ShaposhnikovSections: 246e4dc6f2SAlexander Shaposhnikov - Name: .test1 256e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 266e4dc6f2SAlexander Shaposhnikov Flags: [ ] 276e4dc6f2SAlexander Shaposhnikov - Name: .test2 286e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 296e4dc6f2SAlexander Shaposhnikov Flags: [ ] 306e4dc6f2SAlexander Shaposhnikov - Name: .test3 316e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 326e4dc6f2SAlexander Shaposhnikov Flags: [ ] 332779987dSGeorge RimarSymbols: [] 346e4dc6f2SAlexander Shaposhnikov 356e4dc6f2SAlexander Shaposhnikov# CHECK: SectionHeaderCount: 6 366e4dc6f2SAlexander Shaposhnikov 376e4dc6f2SAlexander Shaposhnikov# CHECK: Sections [ 386e4dc6f2SAlexander Shaposhnikov# CHECK: Section { 396e4dc6f2SAlexander Shaposhnikov# CHECK: Index: 0 406e4dc6f2SAlexander Shaposhnikov# CHECK: Name: (0) 416e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_NULL (0x0) 426e4dc6f2SAlexander Shaposhnikov# CHECK: Flags [ (0x0) 436e4dc6f2SAlexander Shaposhnikov# CHECK: ] 446e4dc6f2SAlexander Shaposhnikov# CHECK: Address: 0x0 456e4dc6f2SAlexander Shaposhnikov# CHECK: Offset: 466e4dc6f2SAlexander Shaposhnikov# CHECK: Size: 476e4dc6f2SAlexander Shaposhnikov# CHECK: Link: 0 486e4dc6f2SAlexander Shaposhnikov# CHECK: Info: 0 496e4dc6f2SAlexander Shaposhnikov# CHECK: AddressAlignment: 0 506e4dc6f2SAlexander Shaposhnikov# CHECK: EntrySize: 0 516e4dc6f2SAlexander Shaposhnikov# CHECK: } 526e4dc6f2SAlexander Shaposhnikov# CHECK: Section { 536e4dc6f2SAlexander Shaposhnikov# CHECK: Index: 1 546e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .test1 556e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_PROGBITS (0x1) 566e4dc6f2SAlexander Shaposhnikov# CHECK: Flags [ (0x0) 576e4dc6f2SAlexander Shaposhnikov# CHECK: ] 586e4dc6f2SAlexander Shaposhnikov# CHECK: Address: 0x0 596e4dc6f2SAlexander Shaposhnikov# CHECK: Offset: 606e4dc6f2SAlexander Shaposhnikov# CHECK: Size: 616e4dc6f2SAlexander Shaposhnikov# CHECK: Link: 0 626e4dc6f2SAlexander Shaposhnikov# CHECK: Info: 0 636e4dc6f2SAlexander Shaposhnikov# CHECK: AddressAlignment: 0 646e4dc6f2SAlexander Shaposhnikov# CHECK: EntrySize: 0 656e4dc6f2SAlexander Shaposhnikov# CHECK: } 666e4dc6f2SAlexander Shaposhnikov# CHECK: Section { 676e4dc6f2SAlexander Shaposhnikov# CHECK: Index: 2 686e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .test3 696e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_PROGBITS (0x1) 706e4dc6f2SAlexander Shaposhnikov# CHECK: Flags [ (0x0) 716e4dc6f2SAlexander Shaposhnikov# CHECK: ] 726e4dc6f2SAlexander Shaposhnikov# CHECK: Address: 0x0 736e4dc6f2SAlexander Shaposhnikov# CHECK: Offset: 746e4dc6f2SAlexander Shaposhnikov# CHECK: Size: 756e4dc6f2SAlexander Shaposhnikov# CHECK: Link: 0 766e4dc6f2SAlexander Shaposhnikov# CHECK: Info: 0 776e4dc6f2SAlexander Shaposhnikov# CHECK: AddressAlignment: 0 786e4dc6f2SAlexander Shaposhnikov# CHECK: EntrySize: 0 796e4dc6f2SAlexander Shaposhnikov# CHECK: } 806e4dc6f2SAlexander Shaposhnikov# CHECK: Section { 816e4dc6f2SAlexander Shaposhnikov# CHECK: Index: 3 826e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .symtab 836e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_SYMTAB (0x2) 846e4dc6f2SAlexander Shaposhnikov# CHECK: Flags [ (0x0) 856e4dc6f2SAlexander Shaposhnikov# CHECK: ] 866e4dc6f2SAlexander Shaposhnikov# CHECK: Address: 0x0 876e4dc6f2SAlexander Shaposhnikov# CHECK: Offset: 886e4dc6f2SAlexander Shaposhnikov# CHECK: Size: 896e4dc6f2SAlexander Shaposhnikov# CHECK: Link: 4 906e4dc6f2SAlexander Shaposhnikov# CHECK: Info: 1 916e4dc6f2SAlexander Shaposhnikov# CHECK: AddressAlignment: 8 926e4dc6f2SAlexander Shaposhnikov# CHECK: EntrySize: 24 936e4dc6f2SAlexander Shaposhnikov# CHECK: } 946e4dc6f2SAlexander Shaposhnikov# CHECK: Section { 956e4dc6f2SAlexander Shaposhnikov# CHECK: Index: 4 966e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .strtab 976e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_STRTAB (0x3) 986e4dc6f2SAlexander Shaposhnikov# CHECK: Flags [ (0x0) 996e4dc6f2SAlexander Shaposhnikov# CHECK: ] 1006e4dc6f2SAlexander Shaposhnikov# CHECK: Address: 0x0 1016e4dc6f2SAlexander Shaposhnikov# CHECK: Offset: 1026e4dc6f2SAlexander Shaposhnikov# CHECK: Size: 1036e4dc6f2SAlexander Shaposhnikov# CHECK: Link: 0 1046e4dc6f2SAlexander Shaposhnikov# CHECK: Info: 0 1056e4dc6f2SAlexander Shaposhnikov# CHECK: AddressAlignment: 1 1066e4dc6f2SAlexander Shaposhnikov# CHECK: EntrySize: 0 1076e4dc6f2SAlexander Shaposhnikov# CHECK: } 1086e4dc6f2SAlexander Shaposhnikov# CHECK: Section { 1096e4dc6f2SAlexander Shaposhnikov# CHECK: Index: 5 1106e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .shstrtab 1116e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_STRTAB (0x3) 1126e4dc6f2SAlexander Shaposhnikov# CHECK: Flags [ (0x0) 1136e4dc6f2SAlexander Shaposhnikov# CHECK: ] 1146e4dc6f2SAlexander Shaposhnikov# CHECK: Address: 0x0 1156e4dc6f2SAlexander Shaposhnikov# CHECK: Offset: 1166e4dc6f2SAlexander Shaposhnikov# CHECK: Size: 1176e4dc6f2SAlexander Shaposhnikov# CHECK: Link: 0 1186e4dc6f2SAlexander Shaposhnikov# CHECK: Info: 0 1196e4dc6f2SAlexander Shaposhnikov# CHECK: AddressAlignment: 1 1206e4dc6f2SAlexander Shaposhnikov# CHECK: EntrySize: 0 1216e4dc6f2SAlexander Shaposhnikov# CHECK: } 1226e4dc6f2SAlexander Shaposhnikov# CHECK: ] 123f324f6dcSEugene Leviant 124f324f6dcSEugene Leviant# REGEX: SectionHeaderCount: 4 125f324f6dcSEugene Leviant# REGEX: Sections [ 126f324f6dcSEugene Leviant# REGEX-NOT: test 127