For now, turn off the SEH code on Win64
authorIan Lynagh <igloo@earth.li>
Fri, 16 Mar 2012 15:56:04 +0000 (15:56 +0000)
committerIan Lynagh <igloo@earth.li>
Fri, 16 Mar 2012 15:56:04 +0000 (15:56 +0000)
rts/RtsMain.c
rts/win32/seh_excn.c

index e89445d..435df42 100644 (file)
@@ -108,11 +108,11 @@ int hs_main (int argc, char *argv[],     // program args
     progmain_closure = main_closure;
     rtsconfig = rts_config;
 
-#if defined(mingw32_HOST_OS)
+#if defined(mingw32_HOST_OS) && defined(i386_HOST_ARCH)
     BEGIN_CATCH
 #endif
     real_main();
-#if defined(mingw32_HOST_OS)
+#if defined(mingw32_HOST_OS) && defined(i386_HOST_ARCH)
     END_CATCH
 #endif
 }
index 5da7579..da5f64d 100644 (file)
@@ -1,9 +1,11 @@
+#include "ghcconfig.h"
 #include "seh_excn.h"
 
 /*
  * Exception / signal handlers.
  */
-#if defined(__MINGW32__)
+#if defined(mingw32_HOST_OS)
+#if defined(i386_HOST_ARCH)
 jmp_buf seh_unwind_to;
 unsigned long seh_excn_code; /* variable used to communicate what kind of exception we've caught;nice. */
 
@@ -39,4 +41,5 @@ catchDivZero(struct _EXCEPTION_RECORD* rec,
      return ExceptionContinueSearch;
 }
 #endif
+#endif