| # RUN: yaml2obj %s > %t | |
| # RUN: rm -f %t.a | |
| # RUN: llvm-ar crs %t.a %t | |
| # RUN: cp %t.a %t.copy.a | |
| # RUN: llvm-objcopy %t.a %t2.a | |
| # RUN: llvm-objcopy %t %t2 | |
| # RUN: llvm-ar p %t2.a > %t3 | |
| # RUN: cmp %t2 %t3 | |
| # RUN: llvm-readobj -sections %t2 | FileCheck %s | |
| # RUN: llvm-nm -print-armap %t.a | FileCheck --check-prefix=INDEX-TABLE %s | |
| # RUN: llvm-nm -print-armap %t2.a | FileCheck --check-prefix=INDEX-TABLE %s | |
| # Verify that llvm-objcopy has not modifed the input. | |
| # RUN: cmp %t.copy.a %t.a | |
| # INDEX-TABLE: Archive map | |
| # INDEX-TABLE-NEXT: foo in | |
| # RUN: rm -f %t.no.index.a | |
| # RUN: llvm-ar crS %t.no.index.a %t | |
| # RUN: llvm-objcopy %t.no.index.a %t2.no.index.a | |
| # RUN: llvm-ar p %t2.no.index.a > %t4 | |
| # RUN: llvm-nm -print-armap %t.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s | |
| # RUN: llvm-nm -print-armap %t2.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s | |
| # RUN: cmp %t2 %t4 | |
| # NO-INDEX-TABLE-NOT: Archive map | |
| # NO-INDEX-TABLE-NOT: foo in | |
| !ELF | |
| FileHeader: | |
| Class: ELFCLASS64 | |
| Data: ELFDATA2LSB | |
| Type: ET_EXEC | |
| Machine: EM_X86_64 | |
| Sections: | |
| - Name: .bss | |
| Type: SHT_NOBITS | |
| Flags: [ SHF_ALLOC ] | |
| AddressAlign: 0x0000000000000010 | |
| Size: 64 | |
| - Name: .text | |
| Type: SHT_PROGBITS | |
| Flags: [ SHF_ALLOC, SHF_EXECINSTR ] | |
| AddressAlign: 0x0000000000000010 | |
| Content: "00000000" | |
| Symbols: | |
| Global: | |
| - Name: foo | |
| Type: STT_FUNC | |
| Section: .text | |
| Value: 0x1004 | |
| # CHECK: Type: SHT_NULL | |
| # CHECK: Name: .bss | |
| # CHECK-NEXT: Type: SHT_NOBITS | |
| # CHECK-NEXT: Flags [ | |
| # CHECK-NEXT: SHF_ALLOC | |
| # CHECK-NEXT: ] | |
| # CHECK-NEXT: Address: | |
| # CHECK-NEXT: Offset: | |
| # CHECK-NEXT: Size: 64 | |
| # CHECK: Name: .text | |
| # CHECK-NEXT: Type: SHT_PROGBITS | |
| # CHECK-NEXT: Flags [ | |
| # CHECK-NEXT: SHF_ALLOC | |
| # CHECK-NEXT: SHF_EXECINSTR | |
| # CHECK-NEXT: ] | |
| # CHECK-NEXT: Address: | |
| # CHECK-NEXT: Offset: | |
| # CHECK-NEXT: Size: 4 | |
| # CHECK: Name: .symtab | |
| # CHECK-NEXT: Type: SHT_SYMTAB | |
| # CHECK-NEXT: Flags [ (0x0) | |
| # CHECK-NEXT: ] | |
| # CHECK-NEXT: Address: | |
| # CHECK-NEXT: Offset: | |
| # CHECK-NEXT: Size: 48 | |
| # CHECK: Name: .strtab | |
| # CHECK-NEXT: Type: SHT_STRTAB | |
| # CHECK-NEXT: Flags [ (0x0) | |
| # CHECK-NEXT: ] | |
| # CHECK-NEXT: Address: | |
| # CHECK-NEXT: Offset: | |
| # CHECK-NEXT: Size: 6 | |
| # CHECK: Name: .shstrtab | |
| # CHECK-NEXT: Type: SHT_STRTAB | |
| # CHECK-NEXT: Flags [ | |
| # CHECK-NEXT: ] | |
| # CHECK-NEXT: Address: | |
| # CHECK-NEXT: Offset: | |
| # CHECK-NEXT: Size: 38 |