hadrian: Windows fixes (bindists, CI)

This commit implements a few Windows-specific fixes which get us from a CI
job that can't even get as far as starting the testsuite driver, to a state
where we can run the entire testssuite (but have test failures to fix).

- Don't forget about a potential extension for the haddock program, when
  preparing the bindist.
- Build the timeout program, used by the testsuite driver on Windows in place
  of the Python script used elsewhere, using the boot compiler. We could
  alternatively build it with the compiler that we're going to test but this
  would be a lot more tedious to write.
- Implement a wrapper-script less installation procedure for Windows, in
  `hadrian/bindist/Makefile.
- Make dependencies a bit more accurate in the aforementioned Makefile.
- Update Windows/Hadrian CI job accordingly.

This patch fixes #17486.
22 jobs for master in 454 minutes and 7 seconds (queued for 16 seconds)
Status Job ID Name Coverage
  Lint
passed #257648
lint
lint-linters

00:00:17

passed #257651
lint
lint-submods-branch

00:00:22

passed #257649
lint
lint-testsuite

00:00:23

passed #257650
lint
typecheck-testsuite

00:00:22

 
  Quick Build
passed #257652
x86_64-linux
hadrian-ghc-in-ghci

00:19:24

 
  Build
passed #257653
x86_64-linux
validate-x86_64-linux-deb9-hadrian

03:07:16

 
  Full Build
failed #257656
aarch64-linux allowed to fail
validate-aarch64-linux-deb9

03:01:56

passed #257657
armv7-linux
validate-armv7-linux-deb9

04:06:13

passed #257658
x86_64-linux
validate-i386-linux-deb9

01:52:31

passed #257655
x86_64-darwin
validate-x86_64-darwin

01:10:11

failed #257659
x86_64-linux
validate-x86_64-linux-deb9-debug

00:00:01

failed #257661
x86_64-linux
validate-x86_64-linux-deb9-dwarf

00:00:01

failed #257660
x86_64-linux
validate-x86_64-linux-deb9-integer-simple

00:00:01

failed #257654
x86_64-linux
validate-x86_64-linux-deb9-unreg-hadrian

00:02:07

passed #257662
x86_64-linux
validate-x86_64-linux-fedora27

02:18:19

failed #257664
x86_64-windows allowed to fail
validate-x86_64-windows

failed #257663
x86_64-windows allowed to fail
validate-x86_64-windows-hadrian

 
  Cleanup
passed #257665
x86_64-darwin
cleanup-darwin

00:00:06

 
  Packaging
skipped #257666
x86_64-linux allowed to fail
doc-tarball
 
  Testing
skipped #257667
x86_64-linux allowed to fail manual
hackage
skipped #257668
x86_64-linux
perf-nofib
 
  Deploy
skipped #257669
x86_64-linux allowed to fail
pages
 
Name Stage Failure
failed
validate-aarch64-linux-deb9 Full Build
Uploading artifacts...
ghc-aarch64-linux-deb9.tar.xz: found 1 matching files
junit.xml: found 1 matching files

performance-metrics.tsv: found 1 matching files

Uploading artifacts to coordinator... ok
id=257656 responseStatus=201 Created token=4NEtUTng
Uploading artifacts...
junit.xml: found 1 matching files

Uploading artifacts to coordinator... ok
id=257656 responseStatus=201 Created token=4NEtUTng
ERROR: Job failed: exit code 1
failed
validate-x86_64-windows Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
validate-x86_64-windows-hadrian Full Build There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
validate-x86_64-linux-deb9-dwarf Full Build There has been a runner system failure, please try again
Running with gitlab-runner 11.9.2 (v11.9.2)
on turo-rudi-1 yPd13Twr
Using Docker executor with image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Pulling docker image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Using docker image sha256:6c55a3a4aa425795c9f67450daca976c58ec5658499970e84da9e8cfc9f26dbd for registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
ERROR: Job failed (system failure): Error response from daemon: Conflict. The container name "/runner-yPd13Twr-project-1-concurrent-1-predefined-0" is already in use by container "cf422f860bc69d71cbc71e6d570274ccc1099e3aa4e7fb7808246afacb2d5cc9". You have to remove (or rename) that container to be able to reuse that name. (executor_docker.go:932:0s)
failed
validate-x86_64-linux-deb9-integer-simple Full Build There has been a runner system failure, please try again
Running with gitlab-runner 11.9.2 (v11.9.2)
on turo-rudi-1 yPd13Twr
Using Docker executor with image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Pulling docker image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Using docker image sha256:6c55a3a4aa425795c9f67450daca976c58ec5658499970e84da9e8cfc9f26dbd for registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
ERROR: Job failed (system failure): Error response from daemon: Conflict. The container name "/runner-yPd13Twr-project-1-concurrent-1-predefined-0" is already in use by container "cf422f860bc69d71cbc71e6d570274ccc1099e3aa4e7fb7808246afacb2d5cc9". You have to remove (or rename) that container to be able to reuse that name. (executor_docker.go:932:0s)
failed
validate-x86_64-linux-deb9-debug Full Build There has been a runner system failure, please try again
Running with gitlab-runner 11.9.2 (v11.9.2)
on turo-rudi-1 yPd13Twr
Using Docker executor with image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Pulling docker image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Using docker image sha256:6c55a3a4aa425795c9f67450daca976c58ec5658499970e84da9e8cfc9f26dbd for registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
ERROR: Job failed (system failure): Error response from daemon: Conflict. The container name "/runner-yPd13Twr-project-1-concurrent-1-predefined-0" is already in use by container "cf422f860bc69d71cbc71e6d570274ccc1099e3aa4e7fb7808246afacb2d5cc9". You have to remove (or rename) that container to be able to reuse that name. (executor_docker.go:932:0s)
failed
validate-x86_64-linux-deb9-unreg-hadrian Full Build There has been a runner system failure, please try again
Running with gitlab-runner 11.9.2 (v11.9.2)
on turo-rudi-1 yPd13Twr
Using Docker executor with image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Pulling docker image registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
Using docker image sha256:6c55a3a4aa425795c9f67450daca976c58ec5658499970e84da9e8cfc9f26dbd for registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:408eff66aef6ca2b44446c694c5a56d6ca0460cc ...
ERROR: Job failed (system failure): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (executor_docker.go:932:120s)