| # RUN: rm -f %t.a |
| # RUN: rm -rf %t |
| # RUN: mkdir -p %t |
| # RUN: yaml2obj --docnum=1 %s -o %t/1.o |
| # RUN: yaml2obj --docnum=2 %s -o %t/2.o |
| # RUN: yaml2obj --docnum=3 %s -o %t/3.o |
| # RUN: llvm-ar rcT %t.a %t/1.o %t/2.o %t/3.o |
| |
| # Test that basic dumping works for all members. |
| # RUN: llvm-readobj --all %t.a | FileCheck %s --check-prefixes=LLVM,COFF |
| # RUN: llvm-readelf --all %t.a | FileCheck %s --check-prefixes=GNU,COFF |
| |
| # LLVM: File: {{.*}}1.o |
| # LLVM: Format: elf64-x86-64 |
| # LLVM: ElfHeader { |
| # LLVM: SectionHeaderCount: 3 |
| # LLVM: Sections [ |
| # LLVM: Relocations [ |
| # LLVM: Symbols [ |
| |
| # GNU: ELF Header: |
| # GNU: Number of section headers: 3 |
| # GNU: Section Headers: |
| |
| # LLVM: File: {{.*}}2.o |
| # LLVM: Format: elf32-i386 |
| # LLVM: ElfHeader { |
| # LLVM: SectionHeaderCount: 4 |
| # LLVM: Sections [ |
| # LLVM: Relocations [ |
| # LLVM: Symbols [ |
| |
| # GNU: ELF Header: |
| # GNU: Number of section headers: 4 |
| # GNU: Section Headers: |
| |
| # LLVM: File: {{.*}}3.o |
| # LLVM: Format: COFF-ARM |
| # COFF: ImageFileHeader { |
| # COFF: Sections [ |
| # COFF: Relocations [ |
| # COFF: Symbols [ |
| |
| # Overwrite one of the members with a member of a different size to show that |
| # the size field in the member header is not relevant. |
| # RUN: rm -f %t/2.o |
| # RUN: cp %t/1.o %t/2.o |
| # RUN: llvm-readobj --file-headers %t.a | FileCheck %s --check-prefix=RESIZED |
| |
| # RESIZED: File: {{.*}}1.o |
| # RESIZED: Format: elf64-x86-64 |
| # RESIZED: File: {{.*}}2.o |
| # RESIZED: Format: elf64-x86-64 |
| |
| # Remove the second member and show that the first can still be dumped, but that the last isn't. |
| # RUN: rm %t/2.o |
| # RUN: not llvm-readobj --file-headers %t.a 2> %t.err | FileCheck %s --check-prefix=MISSING |
| # RUN: FileCheck -DMSG=%errc_ENOENT %s --check-prefix=ERR --input-file=%t.err |
| |
| # MISSING: File: {{.*}}1.o |
| # MISSING: Format: elf64-x86-64 |
| # MISSING-NOT: File: {{.*}}3.o |
| # ERR: error: '{{.*}}.a': '{{.*}}2.o': [[MSG]] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS32 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_386 |
| Sections: |
| - Name: .foo |
| Type: SHT_PROGBITS |
| |
| --- !COFF |
| header: |
| Machine: IMAGE_FILE_MACHINE_ARMNT |
| Characteristics: [ ] |
| sections: [] |
| symbols: [] |