[commit: ghc] master: We actually need to use -threaded/-debug when linking /all/ DLLs (b2cae55)

Ian Lynagh igloo at earth.li
Sun May 12 21:50:44 CEST 2013


Repository : http://darcs.haskell.org/ghc.git/

On branch  : master

https://github.com/ghc/ghc/commit/b2cae55fdd2b4b331bd609380b2667904d8a2eda

>---------------------------------------------------------------

commit b2cae55fdd2b4b331bd609380b2667904d8a2eda
Author: Ian Lynagh <igloo at earth.li>
Date:   Sun May 12 16:25:08 2013 +0100

    We actually need to use -threaded/-debug when linking /all/ DLLs
    
    Not just base, integer-gmp and ghc-prim.

>---------------------------------------------------------------

 ghc.mk                    | 18 ------------------
 rules/distdir-way-opts.mk | 12 ++++++++++++
 2 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/ghc.mk b/ghc.mk
index fcf3a73..4bd2de3 100644
--- a/ghc.mk
+++ b/ghc.mk
@@ -557,24 +557,6 @@ endif
 endif
 
 # ----------------------------------------
-# Special magic for the packages which link to the RTS
-# This is a rather ugly hack to fix dynamically linked GHC on Windows.
-# If GHC is linked with -threaded, then it links against libHSrts_thr.
-# But if base is linked against libHSrts, then both end up getting
-# loaded, and things go wrong. We therefore link the libraries that
-# link against the RTS with the same RTS flags that we link GHC with.
-ifeq "$(GhcThreaded)" "YES"
-libraries/ghc-prim_dist-install_MORE_HC_OPTS    += -threaded
-libraries/integer-gmp_dist-install_MORE_HC_OPTS += -threaded
-libraries/base_dist-install_MORE_HC_OPTS        += -threaded
-endif
-ifeq "$(GhcDebugged)" "YES"
-libraries/ghc-prim_dist-install_MORE_HC_OPTS    += -debug
-libraries/integer-gmp_dist-install_MORE_HC_OPTS += -debug
-libraries/base_dist-install_MORE_HC_OPTS        += -debug
-endif
-
-# ----------------------------------------
 # Workarounds for problems building DLLs on Windows
 
 ifeq "$(TargetOS_CPP)" "mingw32"
diff --git a/rules/distdir-way-opts.mk b/rules/distdir-way-opts.mk
index acf6882..f288d39 100644
--- a/rules/distdir-way-opts.mk
+++ b/rules/distdir-way-opts.mk
@@ -132,6 +132,18 @@ $1_$2_$3_GHC_LD_OPTS += \
 else ifeq "$$(TargetOS_CPP)" "darwin"
 $1_$2_$3_GHC_LD_OPTS += -optl-Wl,-headerpad_max_install_names
 endif
+
+# This is a rather ugly hack to fix dynamically linked GHC on Windows.
+# If GHC is linked with -threaded, then it links against libHSrts_thr.
+# But if base is linked against libHSrts, then both end up getting
+# loaded, and things go wrong. We therefore link the libraries with the
+# same RTS flags that we link GHC with.
+ifeq "$$(GhcThreaded)" "YES"
+$1_$2_$3_GHC_LD_OPTS += -threaded
+endif
+ifeq "$$(GhcDebugged)" "YES"
+$1_$2_$3_GHC_LD_OPTS += -debug
+endif
 endif
 endif
 





More information about the ghc-commits mailing list