Build failure -- missing dependency? Help!

Viktor Dukhovni ietf-dane at
Mon Mar 15 08:17:47 UTC 2021

> On Mar 14, 2021, at 6:53 PM, Simon Peyton Jones via ghc-devs <ghc-devs at> wrote:
> I’m getting this (with ‘sh validate –legacy’).  Oddly
> 	• It does not happen on HEAD
> 	• It does happen on wip/T19495, a tiny patch with one innocuous change to GHC.Tc.Gen.HsType
> I can’t see how my patch could possible cause “missing files” in ghc-bignum!
> I’m guessing that there is a missing dependency that someone doesn’t show up in master, but does in my branch, randomly.
> There’s something funny about ghc-bignum; it doesn’t seem to be a regular library
> Can anyone help?

I managed to reproduce the issue on my machine, and noticed that after:

 $ cd libraries/ghc-bignum/
 $ gmake
 $ cd ../..
 $ ./validate --legacy --no-clean

the build continues OK.  So it looks like the legacy parallel build
has a missing dependency on the completion of the build of
libraries/ghc-bignum at the point when it is trying to run:

  $ "inplace/bin/ghc-stage1" -v1 \
    -hisuf hi  \
    -osuf o  \
    -hcsuf hc  \
    -static -O0 -H64m -Wall -fllvm-fill-undef-with-garbage -Werror  \
    -this-unit-id base-  \
    -hide-all-packages -package-env - -i \
    -ilibraries/base/. \
    -ilibraries/base/dist-install/build \
    -Ilibraries/base/dist-install/build  \
    -ilibraries/base/dist-install/build/./autogen \
    -Ilibraries/base/dist-install/build/./autogen  \
    -Ilibraries/base/include \
    -Ilibraries/base/dist-install/build/include \
    -optP-include  \
    -optPlibraries/base/dist-install/build/./autogen/cabal_macros.h  \
    -package-id ghc-bignum-1.0  \
    -package-id ghc-prim-0.8.0  \
    -package-id rts  \
    -this-unit-id base  \
    -Wcompat -Wnoncanonical-monad-instances  \
    -XHaskell2010 -O  \
    -dcore-lint -dno-debug-output  \
    -no-user-package-db  \
    -rtsopts  \
    -Wno-trustworthy-safe -Wno-deprecated-flags -Wnoncanonical-monad-instances  \
    -outputdirlibraries/base/dist-install/build  \
    -dynamic-too  \
    -c libraries/base/./GHC/Exception/Type.hs-boot  \
    -o libraries/base/dist-install/build/GHC/Exception/Type.o-boot  \
    -dyno libraries/base/dist-install/build/GHC/Exception/Type.dyn_o-boot

My best guess is that the problem command fires via
libraries/base/dist-install/ which
is created by cabal, and things get rather complicated
from there...


More information about the ghc-devs mailing list