summaryrefslogtreecommitdiff
path: root/rts/Linker.c
diff options
context:
space:
mode:
authorClemens Fruhwirth <clemens@endorphin.org>2008-01-01 15:40:17 +0000
committerClemens Fruhwirth <clemens@endorphin.org>2008-01-01 15:40:17 +0000
commit086bab42386098009471c46139013c41f40856a2 (patch)
treeee2eaf044b75c66ab44a877e0ce7cc1b50253b5e /rts/Linker.c
parenta759dad95859bf3be8eeb0ed18baeb67397a0795 (diff)
downloadhaskell-086bab42386098009471c46139013c41f40856a2.tar.gz
Link libgmp.a statically into libHSrts.dll on Windows
Diffstat (limited to 'rts/Linker.c')
-rw-r--r--rts/Linker.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/rts/Linker.c b/rts/Linker.c
index 7793801325..e2391842a2 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -463,6 +463,23 @@ typedef struct _RtsSymbolVal {
SymX(stg_ap_pppppp_ret)
#endif
+/* On Windows, we link libgmp.a statically into libHSrts.dll */
+#ifdef mingw32_HOST_OS
+#define GMP_SYMS \
+ SymX(__gmpz_cmp) \
+ SymX(__gmpz_cmp_si) \
+ SymX(__gmpz_cmp_ui) \
+ SymX(__gmpz_get_si) \
+ SymX(__gmpz_get_ui)
+#else
+#define GMP_SYMS \
+ SymExtern(__gmpz_cmp) \
+ SymExtern(__gmpz_cmp_si) \
+ SymExtern(__gmpz_cmp_ui) \
+ SymExtern(__gmpz_get_si) \
+ SymExtern(__gmpz_get_ui)
+#endif
+
#define RTS_SYMBOLS \
Maybe_Stable_Names \
Sym(StgReturn) \
@@ -502,12 +519,7 @@ typedef struct _RtsSymbolVal {
SymX(__encodeDouble) \
SymX(__encodeFloat) \
SymX(addDLL) \
- SymExtern(__gmpn_gcd_1) \
- SymExtern(__gmpz_cmp) \
- SymExtern(__gmpz_cmp_si) \
- SymExtern(__gmpz_cmp_ui) \
- SymExtern(__gmpz_get_si) \
- SymExtern(__gmpz_get_ui) \
+ GMP_SYMS \
SymX(__int_encodeDouble) \
SymX(__int_encodeFloat) \
SymX(andIntegerzh_fast) \