[PATCH] D25616: [llvm-readobj] - Teach readobj to print PT_OPENBSD_RANDOMIZE/PT_OPENBSD_WXNEEDED headers.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 14 06:53:29 PDT 2016


grimar created this revision.
grimar added reviewers: rafael, davide, echristo.
grimar added subscribers: llvm-commits, grimar, evgeny777, ruiu.
Herald added a subscriber: mehdi_amini.

These are OpenBSD specific program headers and 
currently we support them in LLD.

Description of headers (just in case) available here:
http://man.openbsd.org/OpenBSD-current/man5/elf.5

OpenBSD commits were:
For PT_OPENBSD_RANDOMIZE:
https://github.com/openbsd/src/commit/c494713c450d98da3f2e1451ee8c7fb675a7c461
For PT_OPENBSD_WXNEEDED:
https://github.com/openbsd/src/commit/2a5a8fc7e30928c2cff57cfe5fb491c90d8478ad


https://reviews.llvm.org/D25616

Files:
  test/Object/Inputs/openbsd-phdrs.elf-x86-64
  test/tools/llvm-readobj/program-headers.test
  tools/llvm-readobj/ELFDumper.cpp


Index: tools/llvm-readobj/ELFDumper.cpp
===================================================================
--- tools/llvm-readobj/ELFDumper.cpp
+++ tools/llvm-readobj/ELFDumper.cpp
@@ -1154,6 +1154,10 @@
 
   LLVM_READOBJ_ENUM_CASE(ELF, PT_GNU_STACK);
   LLVM_READOBJ_ENUM_CASE(ELF, PT_GNU_RELRO);
+
+  LLVM_READOBJ_ENUM_CASE(ELF, PT_OPENBSD_RANDOMIZE);
+  LLVM_READOBJ_ENUM_CASE(ELF, PT_OPENBSD_WXNEEDED);
+
   default: return "";
   }
 }
Index: test/tools/llvm-readobj/program-headers.test
===================================================================
--- test/tools/llvm-readobj/program-headers.test
+++ test/tools/llvm-readobj/program-headers.test
@@ -6,6 +6,8 @@
 RUN:     | FileCheck %s -check-prefix ELF-MIPS
 RUN: llvm-readobj -program-headers %p/../../Object/Inputs/program-headers.mips64 \
 RUN:     | FileCheck %s -check-prefix ELF-MIPS64
+RUN: llvm-readobj -program-headers %p/../../Object/Inputs/openbsd-phdrs.elf-x86-64 \
+RUN:     | FileCheck %s -check-prefix OPENBSD-X86-64
 
 ELF-I386:      ProgramHeaders [
 ELF-I386-NEXT:   ProgramHeader {
@@ -140,3 +142,29 @@
 ELF-MIPS64-NEXT:     Alignment: 65536
 ELF-MIPS64-NEXT:   }
 ELF-MIPS64-NEXT: ]
+
+OPENBSD-X86-64:      ProgramHeaders [
+OPENBSD-X86-64:        ProgramHeader {
+OPENBSD-X86-64:          Type:  PT_OPENBSD_RANDOMIZE
+OPENBSD-X86-64-NEXT:     Offset: 0xB4
+OPENBSD-X86-64-NEXT:     VirtualAddress: 0xB4
+OPENBSD-X86-64-NEXT:     PhysicalAddress: 0xB4
+OPENBSD-X86-64-NEXT:     FileSize: 8
+OPENBSD-X86-64-NEXT:     MemSize: 8
+OPENBSD-X86-64-NEXT:     Flags [ (0x4)
+OPENBSD-X86-64-NEXT:       PF_R (0x4)
+OPENBSD-X86-64-NEXT:     ]
+OPENBSD-X86-64-NEXT:     Alignment: 1
+OPENBSD-X86-64-NEXT:   }
+OPENBSD-X86-64-NEXT:   ProgramHeader {
+OPENBSD-X86-64-NEXT:     Type:  PT_OPENBSD_WXNEEDED
+OPENBSD-X86-64-NEXT:     Offset: 0x0
+OPENBSD-X86-64-NEXT:     VirtualAddress: 0x0
+OPENBSD-X86-64-NEXT:     PhysicalAddress: 0x0
+OPENBSD-X86-64-NEXT:     FileSize: 0
+OPENBSD-X86-64-NEXT:     MemSize: 0
+OPENBSD-X86-64-NEXT:     Flags [ (0x4)
+OPENBSD-X86-64-NEXT:       PF_R (0x4)
+OPENBSD-X86-64-NEXT:     ]
+OPENBSD-X86-64-NEXT:     Alignment: 0
+OPENBSD-X86-64-NEXT:   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25616.74678.patch
Type: text/x-patch
Size: 2202 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161014/8df17427/attachment.bin>


More information about the llvm-commits mailing list