xref: /llvm-project/llvm/test/tools/llvm-objcopy/ELF/discard-all.test (revision 55c81d4282c5da0189711261a11537bc8a7fe85c)
1*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t
26e4dc6f2SAlexander Shaposhnikov# RUN: cp %t %t1
36e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --discard-all %t %t2
46e4dc6f2SAlexander Shaposhnikov# Verify that llvm-objcopy has not modified the input.
56e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t %t1
6298ea3f5SJordan Rupprecht# RUN: llvm-readobj --symbols %t2 | FileCheck %s
76e4dc6f2SAlexander Shaposhnikov
86e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy -x %t %t3
96e4dc6f2SAlexander Shaposhnikov# Verify that llvm-objcopy has not modified the input.
106e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t %t1
116e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t2 %t3
126e4dc6f2SAlexander Shaposhnikov
136e4dc6f2SAlexander Shaposhnikov# Verify that llvm-strip modifies the symbol table the same way.
146e4dc6f2SAlexander Shaposhnikov
156e4dc6f2SAlexander Shaposhnikov# RUN: cp %t %t4
166e4dc6f2SAlexander Shaposhnikov# RUN: llvm-strip --discard-all %t4
176e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t2 %t4
186e4dc6f2SAlexander Shaposhnikov
196e4dc6f2SAlexander Shaposhnikov# RUN: llvm-strip -x %t
206e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t2 %t
216e4dc6f2SAlexander Shaposhnikov
226e4dc6f2SAlexander Shaposhnikov!ELF
236e4dc6f2SAlexander ShaposhnikovFileHeader:
246e4dc6f2SAlexander Shaposhnikov  Class:           ELFCLASS64
256e4dc6f2SAlexander Shaposhnikov  Data:            ELFDATA2LSB
266e4dc6f2SAlexander Shaposhnikov  Type:            ET_REL
276e4dc6f2SAlexander Shaposhnikov  Machine:         EM_X86_64
286e4dc6f2SAlexander ShaposhnikovSections:
296e4dc6f2SAlexander Shaposhnikov  - Name:            .text
306e4dc6f2SAlexander Shaposhnikov    Type:            SHT_PROGBITS
316e4dc6f2SAlexander Shaposhnikov    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
326e4dc6f2SAlexander Shaposhnikov    Address:         0x1000
336e4dc6f2SAlexander Shaposhnikov    AddressAlign:    0x0000000000000010
346e4dc6f2SAlexander Shaposhnikov    Size:            64
356e4dc6f2SAlexander ShaposhnikovSymbols:
366e4dc6f2SAlexander Shaposhnikov  - Name:     Local
376e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
386e4dc6f2SAlexander Shaposhnikov    Section:  .text
396e4dc6f2SAlexander Shaposhnikov    Value:    0x1000
406e4dc6f2SAlexander Shaposhnikov    Size:     8
416e4dc6f2SAlexander Shaposhnikov  - Name:     LocalSection
426e4dc6f2SAlexander Shaposhnikov    Type:     STT_SECTION
436e4dc6f2SAlexander Shaposhnikov    Section:  .text
446e4dc6f2SAlexander Shaposhnikov  - Name:     LocalFile
456e4dc6f2SAlexander Shaposhnikov    Type:     STT_FILE
466e4dc6f2SAlexander Shaposhnikov  - Name:     Global
476e4dc6f2SAlexander Shaposhnikov    Type:     STT_FUNC
486e4dc6f2SAlexander Shaposhnikov    Size:     8
496e4dc6f2SAlexander Shaposhnikov    Section:  .text
506e4dc6f2SAlexander Shaposhnikov    Value:    0x1010
516da44ad7SGeorge Rimar    Binding:  STB_GLOBAL
526da44ad7SGeorge Rimar  - Name:     Weak
536da44ad7SGeorge Rimar    Type:     STT_FUNC
546da44ad7SGeorge Rimar    Size:     8
556da44ad7SGeorge Rimar    Section:  .text
566da44ad7SGeorge Rimar    Value:    0x1008
576da44ad7SGeorge Rimar    Binding:  STB_WEAK
586e4dc6f2SAlexander Shaposhnikov
596e4dc6f2SAlexander Shaposhnikov#CHECK: Symbols [
606e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
616e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name:
626e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x0
636e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 0
646e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Local
656e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: None
666e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
676e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: Undefined
686e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
696e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
706e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: LocalSection
716e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x0
726e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 0
736e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Local
746e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Section
756e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
766e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .text
776e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
786e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
796e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: LocalFile
806e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x0
816e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 0
826e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Local
836e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: File
846e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
856e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: Undefined
866e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
876e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
886e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: Global
896e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x1010
906e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 8
916e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Global
926e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Function
936e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
946e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .text
956e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
966e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  Symbol {
976e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Name: Weak
986e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Value: 0x1008
996e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Size: 8
1006e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Binding: Weak
1016e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Type: Function
1026e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Other: 0
1036e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:    Section: .text
1046e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:  }
1056e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:]
106