This patch is in use by Cygwin for years, upstream to GCC.
Committed to trunk.

        * gcc/config/i386/mingw.opt (fset-stack-executable): Removed.
        * gcc/config/i386/cygming.opt (fset-stack-executable): Moved
        from mingw.opt.
        * gcc/config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED
        * libgcc/config.host (*-cygwin): Include file from mingw
        config/i386/enable-execute-stack-mingw32.c

--
Index: gcc/config/i386/cygming.opt
===================================================================
--- gcc/config/i386/cygming.opt (revision 250913)
+++ gcc/config/i386/cygming.opt (working copy)
@@ -50,6 +50,10 @@
 Target Condition({defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS)})
 Compile code that relies on Cygwin DLL wrappers to support C++ operator
new/delete replacement.

+fset-stack-executable
+Common Report Var(flag_setstackexecutable) Init(1) Optimization
+For nested functions on stack executable permission is set.
+
 posix
 Driver

Index: gcc/config/i386/cygwin.h
===================================================================
--- gcc/config/i386/cygwin.h    (revision 250913)
+++ gcc/config/i386/cygwin.h    (working copy)
@@ -153,3 +153,7 @@
 #endif
 #define LIBGCC_SONAME "cyggcc_s" LIBGCC_EH_EXTN "-1.dll"

+/* Make stack executable to avoid DEP problems with trampolines.  */
+#define HAVE_ENABLE_EXECUTE_STACK
+#undef  CHECK_EXECUTE_STACK_ENABLED
+#define CHECK_EXECUTE_STACK_ENABLED flag_setstackexecutable
Index: gcc/config/i386/mingw.opt
===================================================================
--- gcc/config/i386/mingw.opt   (revision 250913)
+++ gcc/config/i386/mingw.opt   (working copy)
@@ -28,8 +28,4 @@
 C ObjC C++ ObjC++ Var(warn_pedantic_ms_format) Init(1) Warning
 Warn about none ISO msvcrt scanf/printf width extensions.

-fset-stack-executable
-Common Report Var(flag_setstackexecutable) Init(1) Optimization
-For nested functions on stack executable permission is set.
-
 ; Need to retain blank line above.
Index: libgcc/config.host
===================================================================
--- libgcc/config.host  (revision 250913)
+++ libgcc/config.host  (working copy)
@@ -324,6 +324,9 @@
 i[34567]86-*-mingw* | x86_64-*-mingw*)
   enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
   ;;
+i[34567]86-*-cygwin* | x86_64-*-cygwin*)
+  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
+  ;;
 *)
   enable_execute_stack=enable-execute-stack-empty.c;
   ;;

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to