Blob Blame History Raw
diff -rupN --no-dereference gcc-14.1.1-20240508/libgcc/config/i386/enable-execute-stack-mingw32.c gcc-14.1.1-20240508-new/libgcc/config/i386/enable-execute-stack-mingw32.c
--- gcc-14.1.1-20240508/libgcc/config/i386/enable-execute-stack-mingw32.c	2024-05-08 10:21:32.000000000 +0200
+++ gcc-14.1.1-20240508-new/libgcc/config/i386/enable-execute-stack-mingw32.c	2024-05-11 23:12:31.938164618 +0200
@@ -25,6 +25,7 @@
 #define WIN32_LEAN_AND_MEAN
 #include <stdlib.h>
 #include <windows.h>
+#include <stdlib.h>
 
 extern void __enable_execute_stack (void *);
 
diff -rupN --no-dereference gcc-14.1.1-20240508/libgcc/config/i386/enable-execute-stack-mingw32.c.orig gcc-14.1.1-20240508-new/libgcc/config/i386/enable-execute-stack-mingw32.c.orig
--- gcc-14.1.1-20240508/libgcc/config/i386/enable-execute-stack-mingw32.c.orig	1970-01-01 01:00:00.000000000 +0100
+++ gcc-14.1.1-20240508-new/libgcc/config/i386/enable-execute-stack-mingw32.c.orig	2024-05-08 10:21:32.000000000 +0200
@@ -0,0 +1,40 @@
+/* Implement __enable_execute_stack for Windows32.
+   Copyright (C) 2011-2024 Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it under
+   the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 3, or (at your option) any later
+   version.
+
+   GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+   for more details.
+
+   Under Section 7 of GPL version 3, you are granted additional
+   permissions described in the GCC Runtime Library Exception, version
+   3.1, as published by the Free Software Foundation.
+
+   You should have received a copy of the GNU General Public License and
+   a copy of the GCC Runtime Library Exception along with this program;
+   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define WIN32_LEAN_AND_MEAN
+#include <stdlib.h>
+#include <windows.h>
+
+extern void __enable_execute_stack (void *);
+
+void
+__enable_execute_stack (void *addr)
+{
+  MEMORY_BASIC_INFORMATION b;
+
+  if (!VirtualQuery (addr, &b, sizeof(b)))
+    abort ();
+  VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE,
+		  &b.Protect);
+}