From f09812ded085223d3f9dcb50c2c9cdc912984844 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sun, 6 May 2012 15:54:13 +0100 Subject: Fix RTS DLL references on Win64 --- rts/Linker.c | 6 +++++- rts/win32/ThrIOManager.c | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'rts') diff --git a/rts/Linker.c b/rts/Linker.c index 26f734c758..2899ee1a29 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -1316,7 +1316,11 @@ typedef struct _RtsSymbolVal { #define SymI_NeedsProto(vvv) extern void vvv(void); #if defined(COMPILING_WINDOWS_DLL) #define SymE_HasProto(vvv) SymE_HasProto(vvv); -#define SymE_NeedsProto(vvv) extern void _imp__ ## vvv (void); +# if defined(x86_64_HOST_ARCH) +# define SymE_NeedsProto(vvv) extern void __imp_ ## vvv (void); +# else +# define SymE_NeedsProto(vvv) extern void _imp__ ## vvv (void); +# endif #else #define SymE_NeedsProto(vvv) SymI_NeedsProto(vvv); #define SymE_HasProto(vvv) SymI_HasProto(vvv) diff --git a/rts/win32/ThrIOManager.c b/rts/win32/ThrIOManager.c index 234d4dcfe4..41a1505de0 100644 --- a/rts/win32/ThrIOManager.c +++ b/rts/win32/ThrIOManager.c @@ -153,7 +153,11 @@ ioManagerStart (void) if (io_manager_event == INVALID_HANDLE_VALUE) { cap = rts_lock(); #if defined(COMPILING_WINDOWS_DLL) +# if defined(x86_64_HOST_ARCH) + rts_evalIO(&cap,__imp_base_GHCziConcziIO_ensureIOManagerIsRunning_closure,NULL); +# else rts_evalIO(&cap,_imp__base_GHCziConcziIO_ensureIOManagerIsRunning_closure,NULL); +# endif #else rts_evalIO(&cap,&base_GHCziConcziIO_ensureIOManagerIsRunning_closure,NULL); #endif -- cgit v1.2.1