1# RUN: yaml2obj %s -o %t 2# RUN: cp %t %t1 3 4# RUN: llvm-objcopy -R .test2 %t %t2 5# RUN: llvm-readobj --file-headers --sections %t2 | FileCheck %s 6 7# Verify that the first run of llvm-objcopy 8# has not modified the input binary. 9# RUN: cmp %t %t1 10 11# RUN: llvm-objcopy --remove-section=.test2 %t1 %t3 12# RUN: cmp %t2 %t3 13 14# RUN: llvm-objcopy --regex --remove-section='.test[0-9]+' %t %t4 15# RUN: llvm-readobj --file-headers --sections %t4 | FileCheck %s --check-prefix=REGEX 16 17!ELF 18FileHeader: 19 Class: ELFCLASS64 20 Data: ELFDATA2LSB 21 Type: ET_REL 22 Machine: EM_X86_64 23Sections: 24 - Name: .test1 25 Type: SHT_PROGBITS 26 Flags: [ ] 27 - Name: .test2 28 Type: SHT_PROGBITS 29 Flags: [ ] 30 - Name: .test3 31 Type: SHT_PROGBITS 32 Flags: [ ] 33Symbols: [] 34 35# CHECK: SectionHeaderCount: 6 36 37# CHECK: Sections [ 38# CHECK: Section { 39# CHECK: Index: 0 40# CHECK: Name: (0) 41# CHECK: Type: SHT_NULL (0x0) 42# CHECK: Flags [ (0x0) 43# CHECK: ] 44# CHECK: Address: 0x0 45# CHECK: Offset: 46# CHECK: Size: 47# CHECK: Link: 0 48# CHECK: Info: 0 49# CHECK: AddressAlignment: 0 50# CHECK: EntrySize: 0 51# CHECK: } 52# CHECK: Section { 53# CHECK: Index: 1 54# CHECK: Name: .test1 55# CHECK: Type: SHT_PROGBITS (0x1) 56# CHECK: Flags [ (0x0) 57# CHECK: ] 58# CHECK: Address: 0x0 59# CHECK: Offset: 60# CHECK: Size: 61# CHECK: Link: 0 62# CHECK: Info: 0 63# CHECK: AddressAlignment: 0 64# CHECK: EntrySize: 0 65# CHECK: } 66# CHECK: Section { 67# CHECK: Index: 2 68# CHECK: Name: .test3 69# CHECK: Type: SHT_PROGBITS (0x1) 70# CHECK: Flags [ (0x0) 71# CHECK: ] 72# CHECK: Address: 0x0 73# CHECK: Offset: 74# CHECK: Size: 75# CHECK: Link: 0 76# CHECK: Info: 0 77# CHECK: AddressAlignment: 0 78# CHECK: EntrySize: 0 79# CHECK: } 80# CHECK: Section { 81# CHECK: Index: 3 82# CHECK: Name: .symtab 83# CHECK: Type: SHT_SYMTAB (0x2) 84# CHECK: Flags [ (0x0) 85# CHECK: ] 86# CHECK: Address: 0x0 87# CHECK: Offset: 88# CHECK: Size: 89# CHECK: Link: 4 90# CHECK: Info: 1 91# CHECK: AddressAlignment: 8 92# CHECK: EntrySize: 24 93# CHECK: } 94# CHECK: Section { 95# CHECK: Index: 4 96# CHECK: Name: .strtab 97# CHECK: Type: SHT_STRTAB (0x3) 98# CHECK: Flags [ (0x0) 99# CHECK: ] 100# CHECK: Address: 0x0 101# CHECK: Offset: 102# CHECK: Size: 103# CHECK: Link: 0 104# CHECK: Info: 0 105# CHECK: AddressAlignment: 1 106# CHECK: EntrySize: 0 107# CHECK: } 108# CHECK: Section { 109# CHECK: Index: 5 110# CHECK: Name: .shstrtab 111# CHECK: Type: SHT_STRTAB (0x3) 112# CHECK: Flags [ (0x0) 113# CHECK: ] 114# CHECK: Address: 0x0 115# CHECK: Offset: 116# CHECK: Size: 117# CHECK: Link: 0 118# CHECK: Info: 0 119# CHECK: AddressAlignment: 1 120# CHECK: EntrySize: 0 121# CHECK: } 122# CHECK: ] 123 124# REGEX: SectionHeaderCount: 4 125# REGEX: Sections [ 126# REGEX-NOT: test 127