summaryrefslogtreecommitdiff
path: root/hadrian/README.md
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2018-12-16 08:58:41 +0000
committerMatthew Pickering <matthewtpickering@gmail.com>2019-01-09 14:32:21 +0000
commit6486c6e49c53e75f37ed732b38c5be7ae64785e8 (patch)
tree187785dd532474cd34aa4e66846b12f28f09f8b9 /hadrian/README.md
parent6b70cf611e5ddc475edaa54b893d20990699ddb8 (diff)
downloadhaskell-6486c6e49c53e75f37ed732b38c5be7ae64785e8.tar.gz
Hadrian: Add support for building stage3
This ticket enables the building of a `stage3` compiler by making the build logic more consistent and predictable in Hadrian. Two of the main changes are: 1. In order to build anything at stageN we use the package database present at stageN. Fixing #16069 2. `haddock` and `ghc-tags` are built as stage1 executables (with the stage1 compiler) rather than as stage2 compiler. Fixing [hadrian#661](https://github.com/snowleopard/hadrian/issues/661) In order to build a stage3 compiler, you have to set the new `finalStage` hadrian option to `Stage3`.
Diffstat (limited to 'hadrian/README.md')
-rw-r--r--hadrian/README.md13
1 files changed, 10 insertions, 3 deletions
diff --git a/hadrian/README.md b/hadrian/README.md
index 16a26d0cbe..dcb5e68f5d 100644
--- a/hadrian/README.md
+++ b/hadrian/README.md
@@ -183,17 +183,24 @@ $ ./configure [--prefix=PATH] && make install
workflow, for now.
+#### Building stage3
+
+It is possible to define a flavour which builds a `stage3` compiler, which is a
+compiler built using `stage2`. This is useful for cross-compilation. Detailed
+instructions can be found in the
+[user settings part of the manual](doc/user-settings.md#specifying-the-final-stage-to-build).
+
Troubleshooting
---------------
Here are a few simple suggestions that might help you fix the build:
-
+
* Hadrian is occasionally broken by changes in GHC. If this happens, you might want to switch
to an earlier GHC commit.
-
+
* If Hadrian fails with the message `Configuration file hadrian/cfg/system.config is missing`,
you have probably forgotten to pass the `--configure` flag during the first build.
-
+
* If you need help in debugging Hadrian, read the [wiki](https://github.com/snowleopard/hadrian/wiki)
and Shake's [debugging tutorial](https://shakebuild.com/debugging).