| ## Check llvm-readobj and llvm-readelf can dump files of the different ELF types. |
| |
| # RUN: yaml2obj %s -DTYPE=ET_NONE -o %t1 |
| # RUN: llvm-readobj -h %t1 | FileCheck %s --match-full-lines --check-prefix LLVM-NONE |
| # RUN: llvm-readelf -h %t1 | FileCheck %s --match-full-lines --check-prefix GNU-NONE |
| |
| # LLVM-NONE: ElfHeader { |
| # LLVM-NONE: Type: None (0x0) |
| |
| # GNU-NONE: ELF Header: |
| # GNU-NONE: Type: NONE (none) |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: [[TYPE]] |
| |
| # RUN: yaml2obj %s -DTYPE=ET_REL -o %t2 |
| # RUN: llvm-readobj -h %t2 | FileCheck %s --match-full-lines --check-prefix LLVM-REL |
| # RUN: llvm-readelf -h %t2 | FileCheck %s --match-full-lines --check-prefix GNU-REL |
| |
| # LLVM-REL: ElfHeader { |
| # LLVM-REL: Type: Relocatable (0x1) |
| |
| # GNU-REL: ELF Header: |
| # GNU-REL: Type: REL (Relocatable file) |
| |
| # RUN: yaml2obj %s -DTYPE=ET_EXEC -o %t3 |
| # RUN: llvm-readobj -h %t3 | FileCheck %s --match-full-lines --check-prefix LLVM-EXEC |
| # RUN: llvm-readelf -h %t3 | FileCheck %s --match-full-lines --check-prefix GNU-EXEC |
| |
| # LLVM-EXEC: ElfHeader { |
| # LLVM-EXEC: Type: Executable (0x2) |
| |
| # GNU-EXEC: ELF Header: |
| # GNU-EXEC: Type: EXEC (Executable file) |
| |
| # RUN: yaml2obj %s -DTYPE=ET_DYN -o %t4 |
| # RUN: llvm-readobj -h %t4 | FileCheck %s --match-full-lines --check-prefix LLVM-DYN |
| # RUN: llvm-readelf -h %t4 | FileCheck %s --match-full-lines --check-prefix GNU-DYN |
| |
| # LLVM-DYN: ElfHeader { |
| # LLVM-DYN: Type: SharedObject (0x3) |
| |
| # GNU-DYN: ELF Header: |
| # GNU-DYN: Type: DYN (Shared object file) |
| |
| # RUN: yaml2obj %s -DTYPE=ET_CORE -o %t5 |
| # RUN: llvm-readobj -h %t5 | FileCheck %s --match-full-lines --check-prefix LLVM-CORE |
| # RUN: llvm-readelf -h %t5 | FileCheck %s --match-full-lines --check-prefix GNU-CORE |
| |
| # LLVM-CORE: ElfHeader { |
| # LLVM-CORE: Type: Core (0x4) |
| |
| # GNU-CORE: ELF Header: |
| # GNU-CORE: Type: CORE (Core file) |
| |
| ## Test what we dump for an arbitrary unknown ELF type. |
| # RUN: yaml2obj %s -DTYPE=0xFDFF -o %t.unknown |
| # RUN: llvm-readobj -h %t.unknown | FileCheck %s --match-full-lines --check-prefix LLVM-UNNKNOWN |
| # RUN: llvm-readelf -h %t.unknown | FileCheck %s --match-full-lines --check-prefix GNU-UNNKNOWN |
| |
| # LLVM-UNNKNOWN: ElfHeader { |
| # LLVM-UNNKNOWN: Type: Unknown (0xFDFF) |
| |
| # GNU-UNNKNOWN: ELF Header: |
| # GNU-UNNKNOWN: Type: <unknown>: fdff |
| |
| # RUN: yaml2obj %s -DTYPE=0xfe00 -o %t6 |
| # RUN: llvm-readobj -h %t6 | FileCheck %s --match-full-lines --check-prefix LLVM-LOOS |
| # RUN: llvm-readelf -h %t6 | FileCheck %s --match-full-lines --check-prefix GNU-LOOS |
| |
| # LLVM-LOOS: ElfHeader { |
| # LLVM-LOOS: Type: OS Specific (0xFE00) |
| |
| # GNU-LOOS: ELF Header: |
| # GNU-LOOS: Type: OS Specific: (fe00) |
| |
| # RUN: yaml2obj %s -DTYPE=0xfeff -o %t7 |
| # RUN: llvm-readobj -h %t7 | FileCheck %s --match-full-lines --check-prefix LLVM-HIOS |
| # RUN: llvm-readelf -h %t7 | FileCheck %s --match-full-lines --check-prefix GNU-HIOS |
| |
| # LLVM-HIOS: ElfHeader { |
| # LLVM-HIOS: Type: OS Specific (0xFEFF) |
| |
| # GNU-HIOS: ELF Header: |
| # GNU-HIOS: Type: OS Specific: (feff) |
| |
| # RUN: yaml2obj %s -DTYPE=0xff00 -o %t8 |
| # RUN: llvm-readobj -h %t8 | FileCheck %s --match-full-lines --check-prefix LLVM-LOPROC |
| # RUN: llvm-readelf -h %t8 | FileCheck %s --match-full-lines --check-prefix GNU-LOPROC |
| |
| # LLVM-LOPROC: ElfHeader { |
| # LLVM-LOPROC: Type: Processor Specific (0xFF00) |
| |
| # GNU-LOPROC: ELF Header: |
| # GNU-LOPROC: Type: Processor Specific: (ff00) |
| |
| # RUN: yaml2obj %s -DTYPE=0xffff -o %t9 |
| # RUN: llvm-readobj -h %t9 | FileCheck %s --match-full-lines --check-prefix LLVM-HIPROC |
| # RUN: llvm-readelf -h %t9 | FileCheck %s --match-full-lines --check-prefix GNU-HIPROC |
| |
| # LLVM-HIPROC: ElfHeader { |
| # LLVM-HIPROC: Type: Processor Specific (0xFFFF) |
| |
| # GNU-HIPROC: ELF Header: |
| # GNU-HIPROC: Type: Processor Specific: (ffff) |