libffi: backport noexecstack fix for x86/win32.S
authorSergei Trofimovich <siarheit@google.com>
Thu, 2 Apr 2015 21:02:57 +0000 (22:02 +0100)
committerSergei Trofimovich <siarheit@google.com>
Thu, 2 Apr 2015 21:03:26 +0000 (22:03 +0100)
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

libffi/ghc.mk
libffi/libffi.x86-execstack.patch [new file with mode: 0644]

index a5645de..59e089d 100644 (file)
@@ -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 (file)
index 0000000..baea18f
--- /dev/null
@@ -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