summaryrefslogtreecommitdiff
path: root/includes/RtsAPI.h
diff options
context:
space:
mode:
authorBen.Lippmeier@anu.edu.au <unknown>2009-11-14 06:04:55 +0000
committerBen.Lippmeier@anu.edu.au <unknown>2009-11-14 06:04:55 +0000
commit8c84944d5782f2ee60d96c02977f15ba9e7ab935 (patch)
tree60e3d7766fc4057286f6a12f56398f5d761cbe98 /includes/RtsAPI.h
parentfcf0225457abec189ea630163fa56bc48c2d796d (diff)
downloadhaskell-8c84944d5782f2ee60d96c02977f15ba9e7ab935.tar.gz
Don't share low valued Int and Char closures with Windows DLLs
Diffstat (limited to 'includes/RtsAPI.h')
-rw-r--r--includes/RtsAPI.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/includes/RtsAPI.h b/includes/RtsAPI.h
index ff2bc1120a..03dbce22a5 100644
--- a/includes/RtsAPI.h
+++ b/includes/RtsAPI.h
@@ -162,10 +162,16 @@ rts_getSchedStatus (Capability *cap);
These are used by foreign export and foreign import "wrapper" stubs.
----------------------------------------------------------------------- */
-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
+// 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[];
+
+#define runIO_closure base_GHCziTopHandler_runIO_closure
+#define runNonIO_closure base_GHCziTopHandler_runNonIO_closure
/* ------------------------------------------------------------------------ */