[PATCH] D86208: [llvm-readelf] - Start recognizing 'PT_OPENBSD_*' segment types.
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 19 05:49:59 PDT 2020
grimar created this revision.
grimar added reviewers: jhenderson, MaskRay.
Herald added subscribers: rupprecht, krytarowski, emaste.
Herald added a reviewer: espindola.
Herald added a project: LLVM.
grimar requested review of this revision.
Its a follow-up for D85830 <https://reviews.llvm.org/D85830>, it stops ignoring 'PT_OPENBSD_*' segment types.
Now them are recognized properly.
GNU readelf does not handle them properly, I've reported a bug to binutils:
https://sourceware.org/bugzilla/show_bug.cgi?id=26405#c0
https://reviews.llvm.org/D86208
Files:
llvm/test/tools/llvm-readobj/ELF/program-headers.test
llvm/tools/llvm-readobj/ELFDumper.cpp
Index: llvm/tools/llvm-readobj/ELFDumper.cpp
===================================================================
--- llvm/tools/llvm-readobj/ELFDumper.cpp
+++ llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -1706,8 +1706,7 @@
static std::string getGNUPtType(unsigned Arch, unsigned Type) {
StringRef Seg = segmentTypeToString(Arch, Type);
- // GNU doesn't recognize PT_OPENBSD_*.
- if (Seg.empty() || Seg.startswith("PT_OPENBSD_"))
+ if (Seg.empty())
return std::string("<unknown>: ") + to_string(format_hex(Type, 1));
// E.g. "PT_ARM_EXIDX" -> "EXIDX".
Index: llvm/test/tools/llvm-readobj/ELF/program-headers.test
===================================================================
--- llvm/test/tools/llvm-readobj/ELF/program-headers.test
+++ llvm/test/tools/llvm-readobj/ELF/program-headers.test
@@ -48,9 +48,9 @@
# ELF32-NEXT: GNU_STACK 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
# ELF32-NEXT: GNU_RELRO 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
# ELF32-NEXT: GNU_PROPERTY 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
-# ELF32-NEXT: <unknown>: 0x65a3dbe6 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
-# ELF32-NEXT: <unknown>: 0x65a3dbe7 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
-# ELF32-NEXT: <unknown>: 0x65a41be6 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
+# ELF32-NEXT: OPENBSD_RANDOMIZE 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
+# ELF32-NEXT: OPENBSD_WXNEEDED 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
+# ELF32-NEXT: OPENBSD_BOOTDATA 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
# ELF32-NEXT: <unknown>: 0x6fffffff 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
# ELF32-NEXT: <unknown>: 0x70000000 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
# ELF32-NEXT: <unknown>: 0x70000001 0x000314 0x00001000 0x00001000 0x00003 0x00003 0x1
@@ -78,9 +78,9 @@
# ELF64-NEXT: GNU_STACK 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
# ELF64-NEXT: GNU_RELRO 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
# ELF64-NEXT: GNU_PROPERTY 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
-# ELF64-NEXT: <unknown>: 0x65a3dbe6 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
-# ELF64-NEXT: <unknown>: 0x65a3dbe7 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
-# ELF64-NEXT: <unknown>: 0x65a41be6 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
+# ELF64-NEXT: OPENBSD_RANDOMIZE 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
+# ELF64-NEXT: OPENBSD_WXNEEDED 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
+# ELF64-NEXT: OPENBSD_BOOTDATA 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
# ELF64-NEXT: <unknown>: 0x6fffffff 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
# ELF64-NEXT: <unknown>: 0x70000000 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
# ELF64-NEXT: <unknown>: 0x70000001 0x000548 0x0000000000001000 0x0000000000001000 0x000003 0x000003 0x1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D86208.286538.patch
Type: text/x-patch
Size: 3225 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200819/df093ada/attachment.bin>
More information about the llvm-commits
mailing list