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 5c22072..8869c56 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
 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,
         typed_test, run_one_test, check_heap_stats, main, test): Replace
index 2b73935..be3d5ec 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 ad2fb4b..874dc2a 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;