15b27402bSJames Henderson# RUN: rm -f %t.a 25b27402bSJames Henderson# RUN: rm -rf %t 35b27402bSJames Henderson# RUN: mkdir -p %t 4fff9f049SGeorgii Rymar# RUN: yaml2obj --docnum=1 %s -o %t/1.o 5fff9f049SGeorgii Rymar# RUN: yaml2obj --docnum=2 %s -o %t/2.o 6fff9f049SGeorgii Rymar# RUN: yaml2obj --docnum=3 %s -o %t/3.o 75b27402bSJames Henderson# RUN: llvm-ar rcT %t.a %t/1.o %t/2.o %t/3.o 85b27402bSJames Henderson 95b27402bSJames Henderson# Test that basic dumping works for all members. 105b27402bSJames Henderson# RUN: llvm-readobj --all %t.a | FileCheck %s --check-prefixes=LLVM,COFF 115b27402bSJames Henderson# RUN: llvm-readelf --all %t.a | FileCheck %s --check-prefixes=GNU,COFF 125b27402bSJames Henderson 135b27402bSJames Henderson# LLVM: File: {{.*}}1.o 14536ba637SFangrui Song# LLVM: Format: elf64-x86-64 155b27402bSJames Henderson# LLVM: ElfHeader { 16fff9f049SGeorgii Rymar# LLVM: SectionHeaderCount: 3 175b27402bSJames Henderson# LLVM: Sections [ 185b27402bSJames Henderson# LLVM: Relocations [ 195b27402bSJames Henderson# LLVM: Symbols [ 205b27402bSJames Henderson 215b27402bSJames Henderson# GNU: ELF Header: 22fff9f049SGeorgii Rymar# GNU: Number of section headers: 3 235b27402bSJames Henderson# GNU: Section Headers: 245b27402bSJames Henderson 255b27402bSJames Henderson# LLVM: File: {{.*}}2.o 26536ba637SFangrui Song# LLVM: Format: elf32-i386 275b27402bSJames Henderson# LLVM: ElfHeader { 28fff9f049SGeorgii Rymar# LLVM: SectionHeaderCount: 4 295b27402bSJames Henderson# LLVM: Sections [ 305b27402bSJames Henderson# LLVM: Relocations [ 315b27402bSJames Henderson# LLVM: Symbols [ 325b27402bSJames Henderson 335b27402bSJames Henderson# GNU: ELF Header: 34fff9f049SGeorgii Rymar# GNU: Number of section headers: 4 355b27402bSJames Henderson# GNU: Section Headers: 365b27402bSJames Henderson 375b27402bSJames Henderson# LLVM: File: {{.*}}3.o 385b27402bSJames Henderson# LLVM: Format: COFF-ARM 395b27402bSJames Henderson# COFF: ImageFileHeader { 405b27402bSJames Henderson# COFF: Sections [ 415b27402bSJames Henderson# COFF: Relocations [ 425b27402bSJames Henderson# COFF: Symbols [ 435b27402bSJames Henderson 445b27402bSJames Henderson# Overwrite one of the members with a member of a different size to show that 455b27402bSJames Henderson# the size field in the member header is not relevant. 46f33b1f49SJames Y Knight# RUN: rm -f %t/2.o 475b27402bSJames Henderson# RUN: cp %t/1.o %t/2.o 485b27402bSJames Henderson# RUN: llvm-readobj --file-headers %t.a | FileCheck %s --check-prefix=RESIZED 495b27402bSJames Henderson 505b27402bSJames Henderson# RESIZED: File: {{.*}}1.o 51536ba637SFangrui Song# RESIZED: Format: elf64-x86-64 525b27402bSJames Henderson# RESIZED: File: {{.*}}2.o 53536ba637SFangrui Song# RESIZED: Format: elf64-x86-64 545b27402bSJames Henderson 555b27402bSJames Henderson# Remove the second member and show that the first can still be dumped, but that the last isn't. 565b27402bSJames Henderson# RUN: rm %t/2.o 575b27402bSJames Henderson# RUN: not llvm-readobj --file-headers %t.a 2> %t.err | FileCheck %s --check-prefix=MISSING 58*42a21778SAbhina Sreeskantharajan# RUN: FileCheck -DMSG=%errc_ENOENT %s --check-prefix=ERR --input-file=%t.err 595b27402bSJames Henderson 605b27402bSJames Henderson# MISSING: File: {{.*}}1.o 61536ba637SFangrui Song# MISSING: Format: elf64-x86-64 625b27402bSJames Henderson# MISSING-NOT: File: {{.*}}3.o 63*42a21778SAbhina Sreeskantharajan# ERR: error: '{{.*}}.a': '{{.*}}2.o': [[MSG]] 64fff9f049SGeorgii Rymar 65fff9f049SGeorgii Rymar--- !ELF 66fff9f049SGeorgii RymarFileHeader: 67fff9f049SGeorgii Rymar Class: ELFCLASS64 68fff9f049SGeorgii Rymar Data: ELFDATA2LSB 69fff9f049SGeorgii Rymar Type: ET_REL 70fff9f049SGeorgii Rymar Machine: EM_X86_64 71fff9f049SGeorgii Rymar 72fff9f049SGeorgii Rymar--- !ELF 73fff9f049SGeorgii RymarFileHeader: 74fff9f049SGeorgii Rymar Class: ELFCLASS32 75fff9f049SGeorgii Rymar Data: ELFDATA2LSB 76fff9f049SGeorgii Rymar Type: ET_REL 77fff9f049SGeorgii Rymar Machine: EM_386 78fff9f049SGeorgii RymarSections: 79fff9f049SGeorgii Rymar - Name: .foo 80fff9f049SGeorgii Rymar Type: SHT_PROGBITS 81fff9f049SGeorgii Rymar 82fff9f049SGeorgii Rymar--- !COFF 83fff9f049SGeorgii Rymarheader: 84fff9f049SGeorgii Rymar Machine: IMAGE_FILE_MACHINE_ARMNT 85fff9f049SGeorgii Rymar Characteristics: [ ] 86fff9f049SGeorgii Rymarsections: [] 87fff9f049SGeorgii Rymarsymbols: [] 88