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:
- In order to build anything at stageN we use the package database present at stageN. Fixing Trac #16069
- haddock and ghc-tags are built as stage1 executables (with the stage1 compiler) rather than as stage2 compiler. Fixing hadrian#661
- In order to build a stage3 compiler, you have to add the right packages to the packages variable.