aboutsummaryrefslogtreecommitdiff
path: root/contrib/guix/patches/lief-fix-ppc64-nx-default.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/guix/patches/lief-fix-ppc64-nx-default.patch')
-rw-r--r--contrib/guix/patches/lief-fix-ppc64-nx-default.patch29
1 files changed, 0 insertions, 29 deletions
diff --git a/contrib/guix/patches/lief-fix-ppc64-nx-default.patch b/contrib/guix/patches/lief-fix-ppc64-nx-default.patch
deleted file mode 100644
index 101bc1ddc0..0000000000
--- a/contrib/guix/patches/lief-fix-ppc64-nx-default.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Correct default for Binary::has_nx on ppc64
-
-From the Linux kernel source:
-
- * This is the default if a program doesn't have a PT_GNU_STACK
- * program header entry. The PPC64 ELF ABI has a non executable stack
- * stack by default, so in the absence of a PT_GNU_STACK program header
- * we turn execute permission off.
-
-This patch can be dropped the next time we update LIEF.
-
-diff --git a/src/ELF/Binary.cpp b/src/ELF/Binary.cpp
-index a90be1ab..fd2d9764 100644
---- a/src/ELF/Binary.cpp
-+++ b/src/ELF/Binary.cpp
-@@ -1084,7 +1084,12 @@ bool Binary::has_nx() const {
- return segment->type() == SEGMENT_TYPES::PT_GNU_STACK;
- });
- if (it_stack == std::end(segments_)) {
-- return false;
-+ if (header().machine_type() == ARCH::EM_PPC64) {
-+ // The PPC64 ELF ABI has a non-executable stack by default.
-+ return true;
-+ } else {
-+ return false;
-+ }
- }
-
- return !(*it_stack)->has(ELF_SEGMENT_FLAGS::PF_X);