summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-08-03 10:34:11 +0100
committerDouglas Wilson <douglas.wilson@gmail.com>2022-08-03 10:37:58 +0100
commit55f8541f6d5cc666d97e02cefacaf6eb4afe7e0d (patch)
tree47afba7834d3b1c826e4f95b0ba9277b035b14f0
parente5a895dea7ace56ea9c8fb46f3594dffdab14560 (diff)
downloadhaskell-55f8541f6d5cc666d97e02cefacaf6eb4afe7e0d.tar.gz
ghc-9.4: make buildsystem: build stage0 cabal with older process
Cabal has grown a bound process >= 1.6.14.0 to work around a bug in process. Making process a stage0 package proved difficult, so instead we carefully build stage0 cabal --exact-configuration including boot package-db's process. This is very ugly, but is only necessary on the 9.4 branch as the make build system will not be supported in the future.
-rw-r--r--ghc.mk14
1 files changed, 14 insertions, 0 deletions
diff --git a/ghc.mk b/ghc.mk
index 19d8ffe856..51f79c9d2a 100644
--- a/ghc.mk
+++ b/ghc.mk
@@ -484,6 +484,20 @@ libraries/template-haskell_CONFIGURE_OPTS += --flags=+vendor-filepath
libraries/ghc-bignum_CONFIGURE_OPTS += -f $(BIGNUM_BACKEND)
+CABAL_DEPS = text transformers mtl parsec Cabal/Cabal-syntax
+CABAL_BOOT_DEPS = process array filepath base bytestring containers deepseq time unix pretty directory
+
+BOOT_PKG_DEPS := \
+ $(foreach p,$(CABAL_BOOT_DEPS),\
+ --dependency="$p=$p-$(shell $(GHC_PKG) --simple-output field $p version)")
+
+STAGE0_PKG_DEPS := \
+ $(foreach d,$(CABAL_DEPS),\
+ $(foreach p,$(basename $(notdir $(wildcard libraries/$d/*.cabal))),\
+ --dependency="$p=$p-$(shell grep -i "^Version:" libraries/$d/$p.cabal | sed "s/[^0-9.]//g")"))
+
+libraries/Cabal/Cabal_dist-boot_CONFIGURE_OPTS += --exact-configuration $(BOOT_PKG_DEPS) $(STAGE0_PKG_DEPS)
+
ifeq "$(BIGNUM_BACKEND)" "gmp"
GMP_ENABLED = YES
libraries/ghc-bignum_CONFIGURE_OPTS += --configure-option="--with-gmp"