X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FRtsAPI.h;h=98bf7305fd41d4158ed9ddb4686d19aa3ed494e3;hb=70a2431f90fa932733ce015714ef7848640ed48f;hp=03dbce22a52fbbe642aa3e2c565a9ff68f56bcd0;hpb=8c84944d5782f2ee60d96c02977f15ba9e7ab935;p=ghc-hetmet.git diff --git a/includes/RtsAPI.h b/includes/RtsAPI.h index 03dbce2..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,13 +163,19 @@ rts_getSchedStatus (Capability *cap); These are used by foreign export and foreign import "wrapper" stubs. ----------------------------------------------------------------------- */ -// When producing Windows DLLs the compiler needs to know which symbols -// are in the local package/DLL vs external ones. -// DLL_IMPORT_BASE expands to __declspec(dllimport) when we're not compiling -// the the base package. - -DLL_IMPORT_BASE extern StgWord base_GHCziTopHandler_runIO_closure[]; -DLL_IMPORT_BASE extern StgWord base_GHCziTopHandler_runNonIO_closure[]; +// 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[]; +#endif #define runIO_closure base_GHCziTopHandler_runIO_closure #define runNonIO_closure base_GHCziTopHandler_runNonIO_closure