The PT_GNU_PROPERTY is generated by a linker to describe the .note.gnu.property section. The Linux kernel uses this program header to locate the .note.gnu.property section. If there is a program property that requires the kernel to perform some action before loading and ELF file such as AArch64 BTI or intel CET then the program won't load unless the PT_GNU_PROPERTY program header is present. This patch adds the definition and support in llvm-readobj, llvm-objdump to print it out. Support is also added to obj2yaml so that we can write a test for it. This patch is a pre-requisite for adding support for PT_GNU_PROPERTY generation in LLD.
The definition of PT_GNU_PROPERTY can be found in https://github.com/hjl-tools/linux-abi/wiki/linux-abi-draft.pdf
Seems most of the comments from elf-pt-gnu-property.test below can also be applied for this test case.