Files
clang-p2996/llvm/test/tools/llvm-readobj/gnu-file-headers.test
Simon Atanasyan 1993254509 [llvm-readobj] Print ELF header flags names in GNU output
GNU readelf tool prints hex value of the ELF header flags field and the
flags names. This change adds the same functionality to llvm-readobj.
Now llvm-readobj can print MIPS and RISCV flags.

New GNUStyle::printFlags() method is a copy of ScopedPrinter::printFlags()
routine. Probably we can escape code duplication and / or simplify the
printFlags() method. But it's a task for separate commit.

Differential revision: https://reviews.llvm.org/D52027

llvm-svn: 345238
2018-10-25 05:39:27 +00:00

70 lines
3.8 KiB
Plaintext

RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-i386 --elf-output-style=GNU \
RUN: | FileCheck %s -check-prefix ELF32
RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-x86-64 --elf-output-style=GNU \
RUN: | FileCheck %s -check-prefix ELF64
RUN: llvm-readobj -h %p/Inputs/trivial.obj.elf-mipsel --elf-output-style=GNU \
RUN: | FileCheck %s -check-prefix MIPSEL
ELF32: ELF Header:
ELF32-NEXT: Magic: 7f 45 4c 46 01 01 01 03 00 00 00 00 00 00 00 00
ELF32-NEXT: Class: ELF32
ELF32-NEXT: Data: 2's complement, little endian
ELF32-NEXT: Version: 1 (current)
ELF32-NEXT: OS/ABI: UNIX - GNU
ELF32-NEXT: ABI Version: 0
ELF32-NEXT: Type: REL (Relocatable file)
ELF32-NEXT: Machine: Intel 80386
ELF32-NEXT: Version: 0x1
ELF32-NEXT: Entry point address: 0x0
ELF32-NEXT: Start of program headers: 0 (bytes into file)
ELF32-NEXT: Start of section headers: 200 (bytes into file)
ELF32-NEXT: Flags: 0x0
ELF32-NEXT: Size of this header: 52 (bytes)
ELF32-NEXT: Size of program headers: 0 (bytes)
ELF32-NEXT: Number of program headers: 0
ELF32-NEXT: Size of section headers: 40 (bytes)
ELF32-NEXT: Number of section headers: 10
ELF32-NEXT: Section header string table index: 7
ELF64: ELF Header:
ELF64-NEXT: Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
ELF64-NEXT: Class: ELF64
ELF64-NEXT: Data: 2's complement, little endian
ELF64-NEXT: Version: 1 (current)
ELF64-NEXT: OS/ABI: UNIX - GNU
ELF64-NEXT: ABI Version: 0
ELF64-NEXT: Type: REL (Relocatable file)
ELF64-NEXT: Machine: Advanced Micro Devices X86-64
ELF64-NEXT: Version: 0x1
ELF64-NEXT: Entry point address: 0x0
ELF64-NEXT: Start of program headers: 0 (bytes into file)
ELF64-NEXT: Start of section headers: 184 (bytes into file)
ELF64-NEXT: Flags: 0x0
ELF64-NEXT: Size of this header: 64 (bytes)
ELF64-NEXT: Size of program headers: 0 (bytes)
ELF64-NEXT: Number of program headers: 0
ELF64-NEXT: Size of section headers: 64 (bytes)
ELF64-NEXT: Number of section headers: 10
ELF64-NEXT: Section header string table index: 7
MIPSEL: ELF Header:
MIPSEL-NEXT: Magic: 7f 45 4c 46 01 01 01 03 00 00 00 00 00 00 00 00
MIPSEL-NEXT: Class: ELF32
MIPSEL-NEXT: Data: 2's complement, little endian
MIPSEL-NEXT: Version: 1 (current)
MIPSEL-NEXT: OS/ABI: UNIX - GNU
MIPSEL-NEXT: ABI Version: 0x0
MIPSEL-NEXT: Type: REL (Relocatable file)
MIPSEL-NEXT: Machine: MIPS R3000
MIPSEL-NEXT: Version: 0x1
MIPSEL-NEXT: Entry point address: 0x0
MIPSEL-NEXT: Start of program headers: 0 (bytes into file)
MIPSEL-NEXT: Start of section headers: 172 (bytes into file)
MIPSEL-NEXT: Flags: 0x50001000, o32, mips32
MIPSEL-NEXT: Size of this header: 52 (bytes)
MIPSEL-NEXT: Size of program headers: 0 (bytes)
MIPSEL-NEXT: Number of program headers: 0
MIPSEL-NEXT: Size of section headers: 40 (bytes)
MIPSEL-NEXT: Number of section headers: 9
MIPSEL-NEXT: Section header string table index: 6