diff options
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | mk/config.mk.in | 2 | ||||
-rw-r--r-- | rules/distdir-way-opts.mk | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 533ea297e9..378578a50b 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/mk/config.mk.in b/mk/config.mk.in index d26684e8d1..c210cd3b4f 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -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 # diff --git a/rules/distdir-way-opts.mk b/rules/distdir-way-opts.mk index 898485c0ca..0a6d84e951 100644 --- a/rules/distdir-way-opts.mk +++ b/rules/distdir-way-opts.mk @@ -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 |