Skip to content

Commit

Permalink
libffi: backport noexecstack fix for x86/win32.S
Browse files Browse the repository at this point in the history
Got detected by gentoo's QA preinstall hook:
 * RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6.0.2
 * RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so
 * RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_p.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_l.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_debug.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_debug.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_l.a:win32.o
 * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_p.a:win32.o

Signed-off-by: Sergei Trofimovich <siarheit@google.com>

Test Plan: built ghc-7.10.1 binary and checked stacks as NX

Reviewers: rwbarton, hvr, austin

Reviewed By: austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D764

GHC Trac Issues: #10208
  • Loading branch information
trofi committed Apr 2, 2015
1 parent afcfb62 commit 47f821a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
3 changes: 3 additions & 0 deletions libffi/ghc.mk
Expand Up @@ -67,6 +67,9 @@ $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
# will use cygwin symbolic links which cannot be read by mingw gcc.
chmod +x libffi/ln

# don't report nonselinux systems as selinux
( cd libffi/build && "$(PATCH_CMD)" -p0 < ../libffi.x86-execstack.patch; )

# We need to use -MMD rather than -MD, as otherwise we get paths
# like c:/... in the dependency files on Windows, and the extra
# colons break make
Expand Down
24 changes: 24 additions & 0 deletions libffi/libffi.x86-execstack.patch
@@ -0,0 +1,24 @@
* RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6.0.2
* RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so
* RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_p.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_l.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_debug.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_debug.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_l.a:win32.o
* !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_p.a:win32.o

http://bugs.gentoo.org/511634
http://sourceware.org/ml/libffi-discuss/2014/msg00058.html

--- src/x86/win32.S
+++ src/x86/win32.S
@@ -1304,3 +1304,6 @@

#endif /* !_MSC_VER */

+#if defined __ELF__ && defined __linux__
+ .section .note.GNU-stack,"",@progbits
+#endif

0 comments on commit 47f821a

Please sign in to comment.