xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/remove-section.test (revision 55c81d4282c5da0189711261a11537bc8a7fe85c)
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