From a2a32c2cc8659f2c6a9983edcfc24fe56871256a Mon Sep 17 00:00:00 2001 From: George Rimar Date: Tue, 6 Dec 2016 17:57:42 +0000 Subject: [PATCH] [ELF] - Teach LLD to recognize PT_OPENBSD_BOOTDATA Minor patch to fix PR31288 OpenBSD commit: https://github.com/openbsd/src/commit/d39116912b9536bd77326260dc5c6e593fd4ee24 Differential revision: https://reviews.llvm.org/D27458 llvm-svn: 288832 --- lld/ELF/LinkerScript.cpp | 1 + lld/test/ELF/linkerscript/openbsd-bootdata.s | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 lld/test/ELF/linkerscript/openbsd-bootdata.s diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index 366902c..f126ef0 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -1859,6 +1859,7 @@ unsigned ScriptParser::readPhdrType() { .Case("PT_GNU_RELRO", PT_GNU_RELRO) .Case("PT_OPENBSD_RANDOMIZE", PT_OPENBSD_RANDOMIZE) .Case("PT_OPENBSD_WXNEEDED", PT_OPENBSD_WXNEEDED) + .Case("PT_OPENBSD_BOOTDATA", PT_OPENBSD_BOOTDATA) .Default(-1); if (Ret == (unsigned)-1) { diff --git a/lld/test/ELF/linkerscript/openbsd-bootdata.s b/lld/test/ELF/linkerscript/openbsd-bootdata.s new file mode 100644 index 0000000..3e90574 --- /dev/null +++ b/lld/test/ELF/linkerscript/openbsd-bootdata.s @@ -0,0 +1,7 @@ +# RUN: llvm-mc -filetype=obj -triple=i686-unknown-linux %s -o %t.o +# RUN: echo "PHDRS { boot PT_OPENBSD_BOOTDATA; }" > %t.script +# RUN: ld.lld --script %t.script %t.o -o %t +# RUN: llvm-readobj --program-headers -s %t | FileCheck %s + +# CHECK: ProgramHeader { +# CHECK: Type: PT_OPENBSD_BOOTDATA (0x65A41BE6) -- 2.7.4