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

These are OpenBSD specific program headers.

OpenBSD commit:
https://github.com/openbsd/src/commit/d39116912b9536bd77326260dc5c6e593fd4ee24

It is required for fixing PR31288.

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

llvm-svn: 288831
diff --git a/llvm/test/tools/llvm-readobj/program-headers.test b/llvm/test/tools/llvm-readobj/program-headers.test
index 9bcd133..e507442 100644
--- a/llvm/test/tools/llvm-readobj/program-headers.test
+++ b/llvm/test/tools/llvm-readobj/program-headers.test
@@ -13,7 +13,10 @@
 ##
 ## 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:     ]
 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:   }