Skip to content

Hadrian GHC build fails with Not in scope: 'IntMul2Op'

Summary

I just updated my ghc repository from 4cbd5b47 to 7a51b587, and now hadrian/build.sh -j gives the following error:

compiler/GHC/StgToCmm/Prim.hs:1430:3: error:
    Not in scope: data constructor ‘IntMul2Op’
    Perhaps you meant one of these:
      ‘IntMulOp’ (imported from PrimOp),
      ‘Int8MulOp’ (imported from PrimOp)
     |
1430 |   IntMul2Op  -> \_ -> OpDest_CallishHandledLater $
     |   ^^^^^^^^^

I've attached the full output from Hadrian here: output

Maybe Hadrian is not rebuilding something which it should be rebuilding? After running hadrian/build.sh -j, the file `build/stage0/compiler/build/primop-data-decl.hs-incl' includes

...
  | IntMulOp
  | IntMul2Op
  | IntMulMayOfloOp
...

but the file `build/stage1/compiler/build/primop-data-decl.hs-incl' includes only

...
  | IntMulOp
  | IntMulMayOfloOp
...

Otherwise, the files are identical.

Steps to reproduce

From a fresh Ubuntu 19.10 install:

sudo apt update && sudo apt upgrade
sudo apt install build-essential curl libgmp-dev libffi-dev libncurses-dev autoconf
curl https://get-ghcup.haskell.org -sSf | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
source ~/.ghcup/env
ghcup install 8.8.1
ghcup set 8.8.1
git clone https://gitlab.haskell.org/ghc/ghc.git --recurse-submodules
git reset --hard 4cbd5b47
hadrian/build.sh -j --configure
git fetch origin master --recurse-submodules
git merge 7a51b587
hadrian/build.sh -j --configure

Just pulling 7a51b587 and building with Hadrian does not raise an error.

Environment

  • GHC version used: 8.8.1
  • Operating System: Ubuntu 19.10
  • System Architecture: Linux t480 5.3.0-24-generic #26-Ubuntu SMP Thu Nov 14 01:33:18 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Edited by Leif Metcalf
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information