Disable optimisation when building Cabal lib for stage0
authorBen Gamari <ben@smart-cactus.org>
Thu, 13 Jun 2019 20:22:31 +0000 (16:22 -0400)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Sun, 16 Jun 2019 03:32:38 +0000 (23:32 -0400)
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.

hadrian/cabal.project
utils/ghc-cabal/ghc.mk

index 176d1ee..d9c3291 100644 (file)
@@ -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
+
index 3de7a62..02e8ccd 100644 (file)
@@ -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 $@ \