Store a destination step in the block descriptor
[ghc-hetmet.git] / includes / RtsAPI.h
index ff2bc11..a4d210a 100644 (file)
@@ -162,10 +162,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
 
 /* ------------------------------------------------------------------------ */