diff --git a/hadrian/cabal.project b/hadrian/cabal.project index d9c329141f68eca16c3a780ae147d39d6a95d1a5..0df6b15695966c4f927129745496610ccbf60a9d 100644 --- a/hadrian/cabal.project +++ b/hadrian/cabal.project @@ -1,8 +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. +-- 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/hadrian/src/Settings/Flavours/Development.hs b/hadrian/src/Settings/Flavours/Development.hs index 5fcc88be1e30013c81bbe027d8d3fa3617682d6d..08200dfa5a3c31f8be213b5ccad62e290071d288 100644 --- a/hadrian/src/Settings/Flavours/Development.hs +++ b/hadrian/src/Settings/Flavours/Development.hs @@ -2,6 +2,7 @@ module Settings.Flavours.Development (developmentFlavour) where import Expression import Flavour +import Packages import {-# SOURCE #-} Settings.Default -- Please update doc/flavours.md when changing this file. @@ -17,7 +18,10 @@ developmentArgs :: Stage -> Args developmentArgs ghcStage = do stage <- getStage sourceArgs SourceArgs - { hsDefault = pure ["-O", "-H64m"] + { hsDefault = mconcat [ pure ["-O", "-H64m"], + -- Disable optimization when building Cabal; + -- this saves many minutes of build time. + package cabal ? pure ["-O0"]] , hsLibrary = notStage0 ? arg "-dcore-lint" , hsCompiler = mconcat [stage0 ? arg "-O2", succ stage == ghcStage ? pure ["-O0", "-DDEBUG"]] diff --git a/mk/flavours/devel1.mk b/mk/flavours/devel1.mk index e062a57909d6425be08610f2b77de04c6e544357..1c03aff10b51fa08c0a24dbe7193a7f62b68ca8b 100644 --- a/mk/flavours/devel1.mk +++ b/mk/flavours/devel1.mk @@ -10,3 +10,7 @@ BUILD_SPHINX_PDF = NO BUILD_MAN = NO LAX_DEPENDENCIES = YES + +# Reduce optimisation when building Cabal; this makes a significant difference +# in overall build time. See #16817. +libraries/Cabal_dist-install_HC_OPTS += -O0 diff --git a/mk/flavours/devel2.mk b/mk/flavours/devel2.mk index 1c8e24f7450ecd1f983aec78313cb638a45a0fb9..2d7d3b38843cc83b50612fee44782044d1115315 100644 --- a/mk/flavours/devel2.mk +++ b/mk/flavours/devel2.mk @@ -10,3 +10,7 @@ BUILD_SPHINX_PDF = NO BUILD_MAN = NO LAX_DEPENDENCIES = YES + +# Reduce optimisation when building Cabal; this makes a significant difference +# in overall build time. See #16817. +libraries/Cabal_dist-install_HC_OPTS += -O0 diff --git a/mk/flavours/validate.mk b/mk/flavours/validate.mk index 3fd916afb0fb6b4a98b43f2afc379a5e99e45a6f..6395d2d62f187aa623f5a9b4dd7bc2c5a53caf62 100644 --- a/mk/flavours/validate.mk +++ b/mk/flavours/validate.mk @@ -27,6 +27,10 @@ endif WERROR = -Werror +# Reduce optimisation when building Cabal; this makes a significant difference +# in overall build time. See #16817. +libraries/Cabal_dist-install_HC_OPTS += -O0 + # DO NOT EDIT THIS FILE! Instead, create a file mk/validate.mk, whose settings # will override these. See also mk/custom-settings.mk. # @@ -36,6 +40,7 @@ WERROR = -Werror # # # Note [validate build settings] +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # Using GhcStage2HcOpts=-O (rather than -O0) here bringes my validate down from # 22mins to 16 mins. Compiling stage2 takes longer, but we gain a faster