diff options
-rw-r--r-- | rts/RtsMain.c | 4 | ||||
-rw-r--r-- | rts/win32/seh_excn.c | 5 |
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 |