[llvm-readobj] - Teach readobj to print PT_OPENBSD_BOOTDATA header

These are OpenBSD specific program headers.

OpenBSD commit:
d39116912b

It is required for fixing PR31288.

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

llvm-svn: 288831
This commit is contained in:
George Rimar 2016-12-06 17:55:52 +00:00
parent 6d4444f931
commit 114d335bf9
3 changed files with 16 additions and 1 deletions

View File

@ -13,7 +13,10 @@ RUN: | FileCheck %s -check-prefix ELF-MIPS64
##
## test.s is an empty file.
## linker.script:
## PHDRS { text PT_LOAD FILEHDR PHDRS; foo 0x65a3dbe6; bar 0x65a3dbe7; }
## PHDRS { text PT_LOAD FILEHDR PHDRS; foo 0x65a3dbe6; bar 0x65a3dbe7; zed 0x65a41be6; }
## Where 0x65a3dbe6 is the value of PT_OPENBSD_RANDOMIZE,
## 0x65a3dbe7 is the value of PT_OPENBSD_WXNEEDED,
## 0x65a41be6 is the value of PT_OPENBSD_BOOTDATA
## SECTIONS { . = SIZEOF_HEADERS; .all : { *(.*) } : text }
RUN: llvm-readobj -program-headers %p/../../Object/Inputs/openbsd-phdrs.elf-x86-64 \
RUN: | FileCheck %s -check-prefix OPENBSD-X86-64
@ -175,3 +178,14 @@ OPENBSD-X86-64-NEXT: Flags [
OPENBSD-X86-64-NEXT: ]
OPENBSD-X86-64-NEXT: Alignment:
OPENBSD-X86-64-NEXT: }
OPENBSD-X86-64-NEXT: ProgramHeader {
OPENBSD-X86-64-NEXT: Type: PT_OPENBSD_BOOTDATA
OPENBSD-X86-64-NEXT: Offset:
OPENBSD-X86-64-NEXT: VirtualAddress:
OPENBSD-X86-64-NEXT: PhysicalAddress:
OPENBSD-X86-64-NEXT: FileSize:
OPENBSD-X86-64-NEXT: MemSize:
OPENBSD-X86-64-NEXT: Flags [
OPENBSD-X86-64-NEXT: ]
OPENBSD-X86-64-NEXT: Alignment:
OPENBSD-X86-64-NEXT: }

View File

@ -1160,6 +1160,7 @@ static const char *getElfSegmentType(unsigned Arch, unsigned Type) {
LLVM_READOBJ_ENUM_CASE(ELF, PT_OPENBSD_RANDOMIZE);
LLVM_READOBJ_ENUM_CASE(ELF, PT_OPENBSD_WXNEEDED);
LLVM_READOBJ_ENUM_CASE(ELF, PT_OPENBSD_BOOTDATA);
default: return "";
}