diff options
author | Sergei Trofimovich <siarheit@google.com> | 2015-04-02 22:02:57 +0100 |
---|---|---|
committer | Sergei Trofimovich <siarheit@google.com> | 2015-04-02 22:03:26 +0100 |
commit | 47f821a1a24553dc29b9581b1a259a9b1394c955 (patch) | |
tree | 4d0abe63c707287b383a2fb2dbb3903272cd4afe /libffi | |
parent | afcfb62b748c41d31b8c8e3ef7f623fa00a1cfd2 (diff) | |
download | haskell-47f821a1a24553dc29b9581b1a259a9b1394c955.tar.gz |
libffi: backport noexecstack fix for x86/win32.S
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
Diffstat (limited to 'libffi')
-rw-r--r-- | libffi/ghc.mk | 3 | ||||
-rw-r--r-- | libffi/libffi.x86-execstack.patch | 24 |
2 files changed, 27 insertions, 0 deletions
diff --git a/libffi/ghc.mk b/libffi/ghc.mk index a5645de9ba..59e089d88e 100644 --- a/libffi/ghc.mk +++ b/libffi/ghc.mk @@ -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 diff --git a/libffi/libffi.x86-execstack.patch b/libffi/libffi.x86-execstack.patch new file mode 100644 index 0000000000..baea18fc27 --- /dev/null +++ b/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 |