X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRtsAPI.h;h=98bf7305fd41d4158ed9ddb4686d19aa3ed494e3;hb=e7145eeefd01106cedb16a22866eb5160ccfb030;hp=ff2bc1120af74e811cb13ceb2272d7cb70cb5780;hpb=d20d32d788e2d6c088e6b03776c428df5bb004d3;p=ghc-hetmet.git diff --git a/includes/RtsAPI.h b/includes/RtsAPI.h index ff2bc11..98bf730 100644 --- a/includes/RtsAPI.h +++ b/includes/RtsAPI.h @@ -48,6 +48,7 @@ extern void getProgArgv ( int *argc, char **argv[] ); extern void setProgArgv ( int argc, char *argv[] ); extern void getFullProgArgv ( int *argc, char **argv[] ); extern void setFullProgArgv ( int argc, char *argv[] ); +extern void freeFullProgArgv ( void ) ; #ifndef mingw32_HOST_OS extern void shutdownHaskellAndSignal (int sig); @@ -162,10 +163,22 @@ rts_getSchedStatus (Capability *cap); These are used by foreign export and foreign import "wrapper" stubs. ----------------------------------------------------------------------- */ +// When producing Windows DLLs the we need to know which symbols are in the +// local package/DLL vs external ones. +// +// Note that RtsAPI.h is also included by foreign export stubs in +// the base package itself. +// +#if defined(mingw32_TARGET_OS) && defined(__PIC__) && !defined(COMPILING_BASE_PACKAGE) +__declspec(dllimport) extern StgWord base_GHCziTopHandler_runIO_closure[]; +__declspec(dllimport) extern StgWord base_GHCziTopHandler_runNonIO_closure[]; +#else extern StgWord base_GHCziTopHandler_runIO_closure[]; extern StgWord base_GHCziTopHandler_runNonIO_closure[]; -#define runIO_closure base_GHCziTopHandler_runIO_closure -#define runNonIO_closure base_GHCziTopHandler_runNonIO_closure +#endif + +#define runIO_closure base_GHCziTopHandler_runIO_closure +#define runNonIO_closure base_GHCziTopHandler_runNonIO_closure /* ------------------------------------------------------------------------ */