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