If you're on a recent Linux system, then you should be able to get a working build environment by installing the following packages using your system's package manager.
If you are familiar with docker and comfortable doing all your work in the docker container with a default bash shell. This is a 1 step install for a development image (ghc build requirements plus a few development related tools). The runghc binary can not be run outside of the docker container because GHC will be compiled with paths only available in the container.
First cd into your ghc directory that you should check out according to Building/GettingTheSources, then
sudo docker run --rm -i -t -v `pwd`:/home/ghc gregweber/ghc-haskell-dev /bin/bash
This mounts your ghc source code into the docker container.
This way you can still hack on ghc with Emacs, etc, but you are just building from the docker container.
Note that arc (the GHC patch submission tool) is installed in the image (although you can also use it from your docker host) along with vim-tiny for editing commit messages.
Due to the nature of Debian, you may have difficulty building GHC >7.6 due to version incompatibilities with the Happy and Alex packages. To alleviate this issue simply install both packages using the haskell-platform provided cabal.
cabal install alex happy
If you install alex and happy using cabal as shown above, you will need to add the cabal installation directory to PATH before running the configure script.
sudo pacman -S ghc ghc-static perl gcc make happy alex cabal-install autoconf automake python python3-sphinx libedit numactl
Note that due to questionable decisions made by Arch's Haskell packaging (namely the decision to package only dynamic objects), it's quite important that you do not attempt to use the haskell-* packages to bootstrap your GHC tree.
The recommended way to create an environment in which to build GHC is to use Alp's ghc.nix repository.
Clone https://github.com/alpmestan/ghc.nix into your ghc folder.
You can then perform a build by running
Enable parallel builds in the nix build environment: