summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rts/RtsMain.c4
-rw-r--r--rts/win32/seh_excn.c5
2 files changed, 6 insertions, 3 deletions
diff --git a/rts/RtsMain.c b/rts/RtsMain.c
index e89445db25..435df420c5 100644
--- a/rts/RtsMain.c
+++ b/rts/RtsMain.c
@@ -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
}
diff --git a/rts/win32/seh_excn.c b/rts/win32/seh_excn.c
index 5da7579b10..da5f64d812 100644
--- a/rts/win32/seh_excn.c
+++ b/rts/win32/seh_excn.c
@@ -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