File mono-5.4.0.56-gc.patch of Package mingw64-mono
--- mono-5.4.0.56/libgc/include/private/gcconfig.h 2017-07-28 11:53:59.864051901 +0200
+++ mono-5.4.0.56/libgc/include/private/gcconfig.h 2017-07-28 11:16:19.808939294 +0200
@@ -454,7 +454,7 @@
# define CYGWIN32
# define mach_type_known
# endif
-# if defined(__MINGW32__)
+# if defined(__MINGW32__) && !defined(mach_type_known)
# define I386
# define MSWIN32
# define mach_type_known
--- mono-5.4.0.56/libgc/mark.c 2017-06-23 12:11:07.000000000 +0200
+++ mono-5.4.0.56/libgc/mark.c 2017-07-28 11:20:04.305411009 +0200
@@ -267,7 +267,7 @@
/* register values. */
/* We hold the allocation lock. In the case of */
/* incremental collection, the world may not be stopped.*/
-#ifdef MSWIN32
+#if defined(MSWIN32) && defined(I386)
/* For win32, this is called after we establish a structured */
/* exception handler, in case Windows unmaps one of our root */
/* segments. See below. In either case, we acquire the */
@@ -402,7 +402,7 @@
}
-#ifdef MSWIN32
+#if defined(MSWIN32) && defined(I386)
# ifdef __GNUC__
@@ -522,7 +522,7 @@
return ret_val;
}
-#endif /* MSWIN32 */
+#endif /* MSWIN32 && I386 */
GC_bool GC_mark_stack_empty()