xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/remove-section-with-symbol.test (revision 55c81d4282c5da0189711261a11537bc8a7fe85c)
1*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t
26e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy -R .test %t %t2
3298ea3f5SJordan Rupprecht# RUN: llvm-readobj --file-headers --symbols %t2 | FileCheck %s
46e4dc6f2SAlexander Shaposhnikov
56e4dc6f2SAlexander Shaposhnikov!ELF
66e4dc6f2SAlexander ShaposhnikovFileHeader:
76e4dc6f2SAlexander Shaposhnikov  Class:           ELFCLASS64
86e4dc6f2SAlexander Shaposhnikov  Data:            ELFDATA2LSB
96e4dc6f2SAlexander Shaposhnikov  Type:            ET_REL
106e4dc6f2SAlexander Shaposhnikov  Machine:         EM_X86_64
116e4dc6f2SAlexander ShaposhnikovSections:
126e4dc6f2SAlexander Shaposhnikov  - Name:            .test
136e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
146e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC ]
156e4dc6f2SAlexander Shaposhnikov  - Name:            .test2
166e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
176e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC ]
186e4dc6f2SAlexander ShaposhnikovSymbols:
196e4dc6f2SAlexander Shaposhnikov  - Name:     test
206e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
216e4dc6f2SAlexander Shaposhnikov    Section:  .test
226e4dc6f2SAlexander Shaposhnikov    Value:    0x1000
236e4dc6f2SAlexander Shaposhnikov    Size:     4
246da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
256e4dc6f2SAlexander Shaposhnikov  - Name:     test2
266e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
276e4dc6f2SAlexander Shaposhnikov    Section:  .test2
286e4dc6f2SAlexander Shaposhnikov    Value:    0x1000
296e4dc6f2SAlexander Shaposhnikov    Size:     4
306da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
316e4dc6f2SAlexander Shaposhnikov
326e4dc6f2SAlexander Shaposhnikov# The sections counted here should be .test, .symtab, .strtab, and .shstrtab.
336e4dc6f2SAlexander Shaposhnikov# The 5th section is the null section.
346e4dc6f2SAlexander Shaposhnikov#CHECK: SectionHeaderCount: 5
356e4dc6f2SAlexander Shaposhnikov
366e4dc6f2SAlexander Shaposhnikov#CHECK: Symbols [
376e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
386e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name:
396e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x0
406e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 0
416e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Local
426e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: None
436e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
446e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: Undefined
456e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
466e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
476e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: test2
486e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x1000
496e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 4
506e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
516e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Function
526e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
536e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .test2
546e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
556e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:]
56