Skip to content

Hadrian fails to run test cases

Summary

Compiling utils/check-exact/Preprocess.hs fails with unknown symbol 'allocateWrite'.

Steps to reproduce

On a fresh extracted tree (in my case 20210402) run:

hadrian/build clean
hadrian/build --flavour=devel2 -j2 -c

hadrian/build test --flavour=devel2 --freeze1 -j2 --only=break012 stage2:exe:ghc-bin

The first 2 commands work well. However the third fails before running the test case:

Up to date
| Successfully generated _build/ghc-stage2.
| Make '_build/ghc-stage2' executable.
# bash (for _build/test/bin/ghc-config)
| Copy file: testsuite/timeout/timeout.py => _build/testsuite/timeout/install-inplace/bin/timeout.py
| Make '_build/testsuite/timeout/install-inplace/bin/timeout' executable.
Linking _build/test/bin/ghc-config ...
# ghc-config (for _build/test/ghcconfig)
| Successfully generated _build/stage2/lib/ghcversion.h.
| Successfully generated _build/stage2/lib/ghcplatform.h.
| Successfully generated _build/stage2/lib/ghcautoconf.h.
# cabal-read (for OracleQ (PackageDataKey (Package {pkgType = Program, pkgName = "check-ppr", pkgPath = "utils/check-ppr"})))
# cabal-read (for OracleQ (PackageDataKey (Package {pkgType = Program, pkgName = "check-exact", pkgPath = "utils/check-exact"})))
# ghc (for _build/test/bin/check-ppr)
# ghc (for _build/test/bin/check-exact)
[1 of 1] Compiling Main             ( /home/roland/Projekte/ghchead/utils/check-ppr/Main.hs, /home/roland/Projekte/ghchead/utils/check-ppr/Main.o ) [Data.Data changed]
[1 of 8] Compiling Types            ( utils/check-exact/Types.hs, utils/check-exact/Types.o ) [Data.Data changed]
Linking /home/roland/Projekte/ghchead/_build/test/bin/check-ppr ...
[2 of 8] Compiling Lookup           ( utils/check-exact/Lookup.hs, utils/check-exact/Lookup.o ) [GHC.Base changed]
[3 of 8] Compiling Utils            ( utils/check-exact/Utils.hs, utils/check-exact/Utils.o ) [Control.Arrow changed]
[4 of 8] Compiling Transform        ( utils/check-exact/Transform.hs, utils/check-exact/Transform.o ) [Control.Monad.Fail changed]
[5 of 8] Compiling Preprocess       ( utils/check-exact/Preprocess.hs, utils/check-exact/Preprocess.o )
ghc: /home/roland/Projekte/ghchead/_build/stage1/lib/x86_64-linux-ghc-9.1.20210402/ghci-9.1/HSghci-9.1.o: unknown symbol `allocateWrite'
ghc: Could not load Object Code /home/roland/Projekte/ghchead/_build/stage1/lib/x86_64-linux-ghc-9.1.20210402/ghci-9.1/HSghci-9.1.o.

ghc: unable to load unit `ghci-9.1'
Error when running Shake build system:
  at want, called at src/Main.hs:104:30 in main:Main
* Depends on: test
  at need, called at src/Rules/Test.hs:135:9 in main:Rules.Test
* Depends on: _build/test/bin/check-exact
  at cmd, called at src/Rules/Test.hs:85:13 in main:Rules.Test
* Raised the exception:
Development.Shake.cmd, system command failed
Command line: /home/roland/Projekte/ghchead/_build/stage1/bin/ghc -package Cabal -package base -package bytestring -package containers -package directory -package filepath -package ghc -package ghc-boot -package mtl -o /home/roland/Projekte/ghchead/_build/test/bin/check-exact /home/roland/Projekte/ghchead/utils/check-exact/Main.hs -iutils/check-exact
Exit code: 1
Stderr:
ghc: /home/roland/Projekte/ghchead/_build/stage1/lib/x86_64-linux-ghc-9.1.20210402/ghci-9.1/HSghci-9.1.o: unknown symbol `allocateWrite'
ghc: Could not load Object Code /home/roland/Projekte/ghchead/_build/stage1/lib/x86_64-linux-ghc-9.1.20210402/ghci-9.1/HSghci-9.1.o.

ghc: unable to load unit `ghci-9.1'

The issue doesn't occur on an older tree with newest commit c83e4d05.

Expected behavior

Hadrian should build all necessary programs and run the test case.

Environment

  • GHC version used: 8.10.2 and 9.0.1

Optional:

  • Operating System: Debian 10
  • System Architecture: x86_64
Edited by Roland Senn
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information