summaryrefslogtreecommitdiff
path: root/mk/flavours
Commit message (Collapse)AuthorAgeFilesLines
* Update `make` based build systemSylvain Henry2020-06-176-6/+6
| | | | * replace integer-* package selection with ghc-bignum backend selection
* gitlab-ci: Fix doc-tarball jobBen Gamari2019-07-031-2/+2
| | | | | | | Previously we used the deb9-debug job which used the `validate` build flavour which disabled `BUILD_SPHINX_PDF`. Fix this. Fixes #16890.
* Disable optimisation when building Cabal in development flavoursBen Gamari2019-06-153-0/+13
| | | | | | | | | | This updates the make and Hadrian build flavours targetting developers to disable optimisation when building the Cabal library. Cabal tends to tickle some very bad compiler performance cases (e.g. #16577) so disabling optimisation here makes a sizeable impact on overall build time. See #16817.
* Add `-haddock` to prepare-system.sh and .gitlab-ci.ymlTakenobu Tani2019-06-021-1/+1
| | | | | | To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option to `.circleci/prepare-system.sh` and .gitlab-ci.yml. after including `mk/flavours/*`.
* Add `-haddock` to perf.mk rather than prepare-system.shTakenobu Tani2019-06-021-1/+1
| | | | | | | | | | To cover ci conditions from ghc8.6 to 8.9, I add `-haddock` option to `mk/flavours/perf.mk` rather than `.circleci/prepare-system.sh`. Because in windows condition of ghc-8.9, `mk/flavours/*` is included after `prepare-system.sh`. In addition, in linux condition of ghc-8.6, `mk/flavors/perf.mk` is used.
* Update Trac ticket URLs to point to GitLabRyan Scott2019-03-151-1/+1
| | | | | This moves all URL references to Trac tickets to their corresponding GitLab counterparts.
* Rip out object splittingBen Gamari2019-03-0518-18/+0
| | | | | | | | | | | | | | | The splitter is an evil Perl script that processes assembler code. Its job can be done better by the linker's --gc-sections flag. GHC passes this flag to the linker whenever -split-sections is passed on the command line. This is based on @DemiMarie's D2768. Fixes Trac #11315 Fixes Trac #9832 Fixes Trac #8964 Fixes Trac #8685 Fixes Trac #8629
* gitlab-ci: Produce DWARF-enabled binary distributionBen Gamari2019-03-011-0/+14
|
* Use O2 on stage1 for faster overall build times with make.klebinger.andreas@gmx.at2019-01-319-9/+9
| | | | | | | | | | | | | | Build times when using the quick flavour: stage1 opt | time (wall) | time (user) -O1 | 13m | 53m -O2 | 13m | 51m So even when we compile stage2 with -O0 (quick) using -O2 on stage1 is already faster. The difference is even bigger when freezing stage1 and doing multiple builds or compiling stage2 with optimizations.
* Adds *-cross-ncg flavour.Moritz Angermann2018-03-023-0/+50
| | | | | | | | | | | | | | | Our *-cross flavours force -fllvm, this adds flavours for cross compilation to x86_64, where we can use our native code generator. Test Plan: ./validate Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4443
* Add -dno-debug-output to validate GhcStage1HcOptsMatthew Pickering2017-03-061-2/+2
| | | | | | | | | | | | | | | | | | | | This flag only affects whether WARNs are printed to the build log. ASSERT fails will still be printed and cause an abort. Most of the WARNs in the compiler are speculative and meant to help with debugging rather than indicative of any real errors. This causes a lot of noise in the build log which is not helpful and makes them very long. Test Plan: Check that the build log is less than 27000 lines long Reviewers: austin, bgamari, rwbarton Reviewed By: bgamari Subscribers: thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3213
* Add SplitSections = NO to build flavors with SplitObjs = NOReid Barton2017-03-0611-0/+11
| | | | | | | | | | | | Test Plan: harbormaster Reviewers: nomeata, austin, bgamari Reviewed By: bgamari Subscribers: thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3276
* Add flag allowing convenient disabling of terminfo supportBen Gamari2017-02-283-0/+3
| | | | | | | | | | | | | This is a common thing that users who cross-compile must fight against. It turns out that it's pretty straightforward to make is convenient. Test Plan: Cross compile without a target `ncurses` available Reviewers: danharaj, hvr, erikd, austin, rwbarton Subscribers: rwbarton, thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3177
* Adds llvm-prof flavourMoritz Angermann2016-12-151-0/+12
| | | | | | | | | | Reviewers: austin, bgamari, RyanGlScott Reviewed By: bgamari, RyanGlScott Subscribers: RyanGlScott, thomie Differential Revision: https://phabricator.haskell.org/D2824
* Early error when crosscompiling + haddock/docsThomas Miedema2016-02-0914-14/+0
| | | | | | | | | | | | | | | | | | | | When CrossCompiling=YES or Stage1Only=YES, building the haddocks and the User's Guide should be skipped, because haddock and mkUserGuidePart depend on the GHC API. See Note [No stage2 packages when CrossCompiling or Stage1Only] for details. There are several places in the build system where the variables HADDOCK_DOCS and BUILD_SPHINX_* are checked. Instead of also checking for the variables CrossCompiling or Stage1Only in all those places, `make` will now exit with a nice error message when the user requests the impossible. Reviewers: rwbarton, austin, bgamari Reviewed By: bgamari Differential Revision: https://phabricator.haskell.org/D1882
* validate: enable -DDEBUG in stage 1 by defaultÖmer Sinan Ağacan2016-02-071-1/+1
| | | | | | | | | | | | | | | | | | Since the whole point of validation is to test the compiler, assertions should be enabled at least for some part of the build. Previously assertions were only enabled (1) in stage 2 compiler (2) when "slow" setting is used. With this patch we enable assertions in stage 1 compiler in all settings, to test them on (1) the compiler itself (2) the libraries, even with the "fast" setting. This will make "fast" setting slower, but the difference should be quite modest - I didn't realize a significant difference in validation times. Reviewers: bgamari, austin, thomie Reviewed By: thomie Differential Revision: https://phabricator.haskell.org/D1890
* Test for undef bugs in the LLVM backend when validatingReid Barton2016-01-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | In an attempt to catch bugs involving using undef values, replace undef literals by values likely to cause crashes or test failures. We do this only when validating since it is a deoptimization. This depends on D1857 to catch such bugs in the RTS (such as #11487). Test Plan: Did a build with ``` BuildFlavour = quick-llvm SRC_HC_OPTS_STAGE1 = -fllvm-fill-undef-with-garbage ``` The build crashed when running ghc-stage2, as expected. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1858
* Build profiling libraries on `validate --slow` (#11496)Thomas Miedema2016-01-271-1/+5
|
* Disable man building for most quick build styles.Edward Z. Yang2015-10-0911-0/+11
| | | | Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
* Move user's guide to ReStructuredTextBen Gamari2015-10-0314-42/+42
|
* Build system: make *-cross BuildFlavours consistent (#10223)Thomas Miedema2015-09-082-4/+4
| | | | | | | | | | | | | | | | | | This is a follow up to 841924c9587c10488a18e307b573720977bf4f13, where `-fllvm` was explicitly removed from GhcStage1HcOpts for perf-cross. After removing -fllvm from GhcStage1HcOpts, it should be removed from SRC_HC_OPTS as well, because SRC_HC_OPTS are added to every Haskell compilation. That's what this patch does. BuildFlavour bench-cross (added in ddf79ebf69fe4a6e69d69d451a6040a53b1ea12c), is probably never used. But for consistency, also use -fllvm here, for building stage2 and the libraries. Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1228
* Build system: delete the InstallExtraPackages variableThomas Miedema2015-09-081-3/+6
| | | | | | | | | | | | | | Just install all packages that are built. Don't make an exception for the dph and extra packages. You can control whether the dph and extra packages should be build using the variables BUILD_DPH and BUILD_EXTRA_PKGS. These variables didn't exist before. But now that they do, InstallExtraPackages isn't really needed anymore. Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1227
* Build system: simplify *-llvm BuildFlavours (#10223)Thomas Miedema2015-09-073-9/+9
| | | | | | | | | | | | | Note that SRC_HC_OPTS are added to every Haskell compilation. So there isn't any need to also add `-fllvm` to GhcStage1HcOpts, GhcStage2HcOpts and GhcLibHcOpts. Small bug fix: make sure we test for -fllvm in SRC_HC_OPTS, to check whether the bootstrap compiler is affected by bug #9439. Reviewed by: austin Differential Revision: https://phabricator.haskell.org/D1188
* Build system: put each BuildFlavour in a separate file (#10223)Thomas Miedema2015-09-0714-0/+195
This allows easier diffing of different BuildFlavours, including `mk/flavours/validate.mk`. Reviewed By: bgamari, austin Differential Revision: https://phabricator.haskell.org/D1050