summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-06-13 16:22:31 -0400
committerBen Gamari <ben@smart-cactus.org>2019-06-13 16:22:31 -0400
commit7d495356e732060922bdf9cb01fd0598f2554da9 (patch)
tree4495146023816319492efa450e8eaa896a146d8c
parent5ce63d52fed05371edb34b4f330c33bc85a45127 (diff)
downloadhaskell-7d495356e732060922bdf9cb01fd0598f2554da9.tar.gz
Disable optimisation when building Cabal lib for stage0
This disables optimisation when building Cabal for Hadrian and stage0 `ghc-cabal`. Cabal is performance critical in neither case nor will any performance difference here be visible to the end-user. See #16817.
-rw-r--r--hadrian/cabal.project6
-rw-r--r--utils/ghc-cabal/ghc.mk3
2 files changed, 9 insertions, 0 deletions
diff --git a/hadrian/cabal.project b/hadrian/cabal.project
index 176d1eef94..d9c329141f 100644
--- a/hadrian/cabal.project
+++ b/hadrian/cabal.project
@@ -1,2 +1,8 @@
packages: ./
../libraries/Cabal/Cabal/
+
+# N.B. Compile with -O0 since this is not a performance-critical executable
+# and the Cabal takes nearly twice as long to build with -O1. See #16817.
+package Cabal
+ optimization: False
+
diff --git a/utils/ghc-cabal/ghc.mk b/utils/ghc-cabal/ghc.mk
index 3de7a62798..02e8ccd71a 100644
--- a/utils/ghc-cabal/ghc.mk
+++ b/utils/ghc-cabal/ghc.mk
@@ -52,10 +52,13 @@ $(ghc-cabal_DIST_BINARY): $(wildcard libraries/Cabal/Cabal/Distribution/*/*/*.hs
$(ghc-cabal_DIST_BINARY): $(wildcard libraries/Cabal/Cabal/Distribution/*/*.hs)
$(ghc-cabal_DIST_BINARY): $(wildcard libraries/Cabal/Cabal/Distribution/*.hs)
+# N.B. Compile with -O0 since this is not a performance-critical executable
+# and the Cabal takes nearly twice as long to build with -O1. See #16817.
$(ghc-cabal_DIST_BINARY): $(CABAL_LEXER_DEP) utils/ghc-cabal/Main.hs $(TOUCH_DEP) | $$(dir $$@)/. bootstrapping/.
"$(GHC)" $(SRC_HC_OPTS) \
$(addprefix -optc, $(SRC_CC_OPTS) $(CONF_CC_OPTS_STAGE0)) \
$(addprefix -optl, $(SRC_LD_OPTS) $(CONF_GCC_LINKER_OPTS_STAGE0)) \
+ -O0 \
-hide-all-packages \
$(addprefix -package , $(CABAL_BUILD_DEPS)) \
--make utils/ghc-cabal/Main.hs -o $@ \