]> granicus.if.org Git - gc/commitdiff
2009-05-27 Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
authorhboehm <hboehm>
Thu, 28 May 2009 00:12:25 +0000 (00:12 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 26 Jul 2011 17:06:45 +0000 (21:06 +0400)
(diff39)
* include/private/gcconfig.h: refine MINGW32 test.
* mark.c: Add win64/gcc tests.

ChangeLog
include/private/gcconfig.h
mark.c

index 5c22072bb1dedadfdfc4ff1db8f831a52ccb1921..8869c56267bd8d16910d0420ed16589f98cae399 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
+       (diff39)
+       * include/private/gcconfig.h: refine MINGW32 test.
+       * mark.c: Add win64/gcc tests.
+
 2009-05-27  Hans Boehm <Hans.Boehm@hp.com> (Really Ivan Maidanski)
        (diff86_cvs, resembling diff28, diff32, diff33, diff38, diff68 partly)
        * test.c (fork_a_thread, reverse_test, alloc8bytes, tree_test,
index 2b739356245f29d85f474aa0703750d7a4ec38da..be3d5ec3e0b8e3c2c6d6418dbfda2a2f7164d4ec 100644 (file)
 #   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
diff --git a/mark.c b/mark.c
index ad2fb4b6dff54bd96a0bc74675555969c5385ac2..874dc2adb1b331b56bc9d3cde2285cf6819b3aea 100644 (file)
--- a/mark.c
+++ b/mark.c
@@ -281,7 +281,8 @@ void GC_initiate_gc(void)
 
 static void alloc_mark_stack(size_t);
 
-# if defined(MSWIN32) || defined(USE_PROC_FOR_LIBRARIES) && defined(THREADS)
+# if defined(MSWIN32) && (!defined(__GNUC__) || !defined(_WIN64)) \
+       || defined(USE_PROC_FOR_LIBRARIES) && defined(THREADS)
     /* Under rare conditions, we may end up marking from nonexistent memory. */
     /* Hence we need to be prepared to recover by running GC_mark_some      */
     /* with a suitable handler in place.                                    */
@@ -428,7 +429,7 @@ static void alloc_mark_stack(size_t);
 }
 
 
-#if defined(MSWIN32) && defined(__GNUC__)
+#if defined(MSWIN32) && defined(__GNUC__) && !defined(_WIN64)
 
     typedef struct {
       EXCEPTION_REGISTRATION ex_reg;