1*55c81d42SFangrui Song# RUN: yaml2obj %s -o %t 26e4dc6f2SAlexander Shaposhnikov 36e4dc6f2SAlexander Shaposhnikov# RUN: rm -f %t.a 46e4dc6f2SAlexander Shaposhnikov# RUN: llvm-ar crs %t.a %t 56e4dc6f2SAlexander Shaposhnikov# RUN: cp %t.a %t.copy.a 66e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy %t.a %t2.a 76e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy %t %t2 86e4dc6f2SAlexander Shaposhnikov# RUN: llvm-ar p %t2.a > %t3 96e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t2 %t3 106e4dc6f2SAlexander Shaposhnikov 11298ea3f5SJordan Rupprecht# RUN: llvm-readobj --sections %t2 | FileCheck %s 12298ea3f5SJordan Rupprecht# RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=INDEX-TABLE %s 13298ea3f5SJordan Rupprecht# RUN: llvm-nm --print-armap %t2.a | FileCheck --check-prefix=INDEX-TABLE %s 146e4dc6f2SAlexander Shaposhnikov# Verify that llvm-objcopy has not modifed the input. 156e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t.copy.a %t.a 166e4dc6f2SAlexander Shaposhnikov 176e4dc6f2SAlexander Shaposhnikov# INDEX-TABLE: Archive map 186e4dc6f2SAlexander Shaposhnikov# INDEX-TABLE-NEXT: foo in 196e4dc6f2SAlexander Shaposhnikov 206e4dc6f2SAlexander Shaposhnikov# RUN: rm -f %t.no.index.a 216e4dc6f2SAlexander Shaposhnikov# RUN: llvm-ar crS %t.no.index.a %t 226e4dc6f2SAlexander Shaposhnikov# RUN: llvm-objcopy %t.no.index.a %t2.no.index.a 236e4dc6f2SAlexander Shaposhnikov# RUN: llvm-ar p %t2.no.index.a > %t4 246e4dc6f2SAlexander Shaposhnikov 25298ea3f5SJordan Rupprecht# RUN: llvm-nm --print-armap %t.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s 26298ea3f5SJordan Rupprecht# RUN: llvm-nm --print-armap %t2.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s 276e4dc6f2SAlexander Shaposhnikov# RUN: cmp %t2 %t4 286e4dc6f2SAlexander Shaposhnikov 296e4dc6f2SAlexander Shaposhnikov# NO-INDEX-TABLE-NOT: Archive map 306e4dc6f2SAlexander Shaposhnikov# NO-INDEX-TABLE-NOT: foo in 316e4dc6f2SAlexander Shaposhnikov 326e4dc6f2SAlexander Shaposhnikov!ELF 336e4dc6f2SAlexander ShaposhnikovFileHeader: 346e4dc6f2SAlexander Shaposhnikov Class: ELFCLASS64 356e4dc6f2SAlexander Shaposhnikov Data: ELFDATA2LSB 366e4dc6f2SAlexander Shaposhnikov Type: ET_EXEC 376e4dc6f2SAlexander Shaposhnikov Machine: EM_X86_64 386e4dc6f2SAlexander ShaposhnikovSections: 396e4dc6f2SAlexander Shaposhnikov - Name: .bss 406e4dc6f2SAlexander Shaposhnikov Type: SHT_NOBITS 416e4dc6f2SAlexander Shaposhnikov Flags: [ SHF_ALLOC ] 426e4dc6f2SAlexander Shaposhnikov AddressAlign: 0x0000000000000010 436e4dc6f2SAlexander Shaposhnikov Size: 64 446e4dc6f2SAlexander Shaposhnikov - Name: .text 456e4dc6f2SAlexander Shaposhnikov Type: SHT_PROGBITS 466e4dc6f2SAlexander Shaposhnikov Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 476e4dc6f2SAlexander Shaposhnikov AddressAlign: 0x0000000000000010 486e4dc6f2SAlexander Shaposhnikov Content: "00000000" 496e4dc6f2SAlexander ShaposhnikovSymbols: 506e4dc6f2SAlexander Shaposhnikov - Name: foo 516e4dc6f2SAlexander Shaposhnikov Type: STT_FUNC 526e4dc6f2SAlexander Shaposhnikov Section: .text 536e4dc6f2SAlexander Shaposhnikov Value: 0x1004 546da44ad7SGeorge Rimar Binding: STB_GLOBAL 556e4dc6f2SAlexander Shaposhnikov 566e4dc6f2SAlexander Shaposhnikov# CHECK: Type: SHT_NULL 576e4dc6f2SAlexander Shaposhnikov 586e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .bss 596e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Type: SHT_NOBITS 606e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Flags [ 616e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_ALLOC 626e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: ] 636e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Address: 646e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Offset: 656e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Size: 64 666e4dc6f2SAlexander Shaposhnikov 676e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .text 686e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Type: SHT_PROGBITS 696e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Flags [ 706e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_ALLOC 716e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: SHF_EXECINSTR 726e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: ] 736e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Address: 746e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Offset: 756e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Size: 4 766e4dc6f2SAlexander Shaposhnikov 776e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .symtab 786e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Type: SHT_SYMTAB 796e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Flags [ (0x0) 806e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: ] 816e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Address: 826e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Offset: 836e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Size: 48 846e4dc6f2SAlexander Shaposhnikov 856e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .strtab 866e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Type: SHT_STRTAB 876e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Flags [ (0x0) 886e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: ] 896e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Address: 906e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Offset: 91faf308b1SGeorge Rimar# CHECK-NEXT: Size: 5 926e4dc6f2SAlexander Shaposhnikov 936e4dc6f2SAlexander Shaposhnikov# CHECK: Name: .shstrtab 946e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Type: SHT_STRTAB 956e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Flags [ 966e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: ] 976e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Address: 986e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Offset: 996e4dc6f2SAlexander Shaposhnikov# CHECK-NEXT: Size: 38 100