Explicitly version test for package key support.
authorEdward Z. Yang <ezyang@cs.stanford.edu>
Wed, 13 Aug 2014 10:30:26 +0000 (11:30 +0100)
committerEdward Z. Yang <ezyang@cs.stanford.edu>
Wed, 13 Aug 2014 14:33:14 +0000 (15:33 +0100)
Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
configure.ac
mk/config.mk.in
rules/distdir-way-opts.mk

index 533ea29..378578a 100644 (file)
@@ -162,6 +162,11 @@ FP_COMPARE_VERSIONS([$GhcVersion],[-gt],[7.7],
                     CMM_SINK_BOOTSTRAP_IS_NEEDED=NO)
 AC_SUBST(CMM_SINK_BOOTSTRAP_IS_NEEDED)
 
+FP_COMPARE_VERSIONS([$GhcVersion],[-lt],[7.9],
+                    SUPPORTS_PACKAGE_KEY=NO,
+                    SUPPORTS_PACKAGE_KEY=YES)
+AC_SUBST(SUPPORTS_PACKAGE_KEY)
+
 # GHC is passed to Cabal, so we need a native path
 if test "${WithGhc}" != ""
 then
index d26684e..c210cd3 100644 (file)
@@ -484,6 +484,8 @@ GHC_PACKAGE_DB_FLAG = @GHC_PACKAGE_DB_FLAG@
 
 CMM_SINK_BOOTSTRAP_IS_NEEDED = @CMM_SINK_BOOTSTRAP_IS_NEEDED@
 
+SUPPORTS_PACKAGE_KEY = @SUPPORTS_PACKAGE_KEY@
+
 #-----------------------------------------------------------------------------
 # C compiler
 #
index 898485c..0a6d84e 100644 (file)
@@ -81,9 +81,15 @@ define distdir-way-opts # args: $1 = dir, $2 = distdir, $3 = way, $4 = stage
 # $1_$2_$3_MOST_HC_OPTS is also passed to C compilations when we use
 # GHC as the C compiler.
 
+ifeq "$(SUPPORTS_PACKAGE_KEY)" "NO"
+ifeq "$4" "0"
+$4_USE_PACKAGE_KEY=NO
+endif
+endif
+
 # ToDo: It would be more accurate to version test this against what version of
 # GHC we're using to see if it understands package-key
-ifeq "$4" "0"
+ifeq "$($4_USE_PACKAGE_KEY)" "NO"
 $1_$2_$4_DEP_OPTS = \
  $$(foreach pkg,$$($1_$2_DEPS),-package $$(pkg))
 $4_THIS_PACKAGE_KEY = -package-name