diff --git a/compiler/GHC/HsToCore/Foreign/C.hs b/compiler/GHC/HsToCore/Foreign/C.hs index fb6dea2f79a1bc5e1a976ed3afa05650151141b7..3a091a3de9e3acedef208ac61bb8a5bb9257ac1c 100644 --- a/compiler/GHC/HsToCore/Foreign/C.hs +++ b/compiler/GHC/HsToCore/Foreign/C.hs @@ -515,8 +515,7 @@ mkFExportCBits dflags c_nm maybe_target arg_htys res_hty is_IO_res_ty cc , text "rts_inCall" <> parens ( char '&' <> cap <> text "rts_apply" <> parens ( - cap <> - text "(HaskellObj)" + cap <> (if is_IO_res_ty then text "runIO_closure" else text "runNonIO_closure") diff --git a/rts/include/RtsAPI.h b/rts/include/RtsAPI.h index 226b4287b51e757666ffa74b06ffa86a9dea8bdb..f34f82ac4f9a1f482799cb3cea9d0ee37687020b 100644 --- a/rts/include/RtsAPI.h +++ b/rts/include/RtsAPI.h @@ -587,15 +587,15 @@ void rts_done (void); // the base package itself. // #if defined(COMPILING_WINDOWS_DLL) && !defined(COMPILING_GHC_INTERNAL_PACKAGE) -__declspec(dllimport) extern StgWord ghczminternal_GHCziInternalziTopHandler_runIO_closure[]; -__declspec(dllimport) extern StgWord ghczminternal_GHCziInternalziTopHandler_runNonIO_closure[]; +__declspec(dllimport) extern StgClosure ghczminternal_GHCziInternalziTopHandler_runIO_closure; +__declspec(dllimport) extern StgClosure ghczminternal_GHCziInternalziTopHandler_runNonIO_closure; #else -extern StgWord ghczminternal_GHCziInternalziTopHandler_runIO_closure[]; -extern StgWord ghczminternal_GHCziInternalziTopHandler_runNonIO_closure[]; +extern StgClosure ghczminternal_GHCziInternalziTopHandler_runIO_closure; +extern StgClosure ghczminternal_GHCziInternalziTopHandler_runNonIO_closure; #endif -#define runIO_closure ghczminternal_GHCziInternalziTopHandler_runIO_closure -#define runNonIO_closure ghczminternal_GHCziInternalziTopHandler_runNonIO_closure +#define runIO_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTopHandler_runIO_closure) +#define runNonIO_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTopHandler_runNonIO_closure) /* ------------------------------------------------------------------------ */