1*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t 26e4dc6f2SAlexander Shaposhnikov# RUN: cp %t %t1 36e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy --strip-all --keep-symbol foo %t %t2 4298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections --symbols %t2 | FileCheck %s 56e4dc6f2SAlexander Shaposhnikov 66e4dc6f2SAlexander Shaposhnikov# Verify that the first run of llvm-objcopy 76e4dc6f2SAlexander Shaposhnikov# has not modified the input binary. 86e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t %t1 96e4dc6f2SAlexander Shaposhnikov 10298ea3f5SJordan Rupprecht# RUN: llvm-strip --keep-symbol=foo %t1 116e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t1 %t2 126e4dc6f2SAlexander Shaposhnikov 136e4dc6f2SAlexander Shaposhnikov# RUN: cp %t %t3 146e4dc6f2SAlexander Shaposhnikov# RUN: llvm-strip --keep-symbol foo %t3 156e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t1 %t3 166e4dc6f2SAlexander Shaposhnikov 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: .text 256e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 266e4dc6f2SAlexander Shaposhnikov Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 276e4dc6f2SAlexander Shaposhnikov Address: 0x1000 286e4dc6f2SAlexander Shaposhnikov AddressAlign: 0x0000000000000010 296e4dc6f2SAlexander Shaposhnikov Size: 64 306e4dc6f2SAlexander Shaposhnikov - Name: .gnu.warning.foo 316e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 326e4dc6f2SAlexander Shaposhnikov - Name: .debug_bar 336e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 346e4dc6f2SAlexander ShaposhnikovSymbols: 356e4dc6f2SAlexander Shaposhnikov - Name: foo 366e4dc6f2SAlexander Shaposhnikov Type: STT_FUNC 376e4dc6f2SAlexander Shaposhnikov Section: .text 386e4dc6f2SAlexander Shaposhnikov Value: 0x1000 396e4dc6f2SAlexander Shaposhnikov Size: 8 406e4dc6f2SAlexander Shaposhnikov - Name: bar 416e4dc6f2SAlexander Shaposhnikov Type: STT_FUNC 426e4dc6f2SAlexander Shaposhnikov Section: .text 436e4dc6f2SAlexander Shaposhnikov Value: 0x1008 446e4dc6f2SAlexander Shaposhnikov Size: 8 456e4dc6f2SAlexander Shaposhnikov - Name: baz 466e4dc6f2SAlexander Shaposhnikov Type: STT_FUNC 476e4dc6f2SAlexander Shaposhnikov Section: .text 486e4dc6f2SAlexander Shaposhnikov Value: 0x1010 496e4dc6f2SAlexander Shaposhnikov Size: 8 506e4dc6f2SAlexander Shaposhnikov 516e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .text 526e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .gnu.warning.foo 536e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .symtab 546e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .strtab 556e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .shstrtab 566e4dc6f2SAlexander Shaposhnikov# CHECK-NOT: Name: .debug_bar 576e4dc6f2SAlexander Shaposhnikov 586e4dc6f2SAlexander Shaposhnikov#CHECK: Symbols [ 596e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Symbol { 606e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Name: 616e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Value: 0x0 626e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Size: 0 636e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Binding: Local 646e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Type: None 656e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Other: 0 666e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Section: Undefined 676e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: } 686e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Symbol { 696e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Name: foo 706e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Value: 0x1000 716e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Size: 8 726e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Binding: Local 736e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Type: Function 746e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Other: 0 756e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: Section: .text 766e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT: } 776e4dc6f2SAlexander Shaposhnikov#CHECK-NEXT:] 78