ghc-stage2 internal error on RiscV64 platform.
Summary
Build of HEAD fails due to ghc-stage2 internal error on RiscV64 platform.
Steps to reproduce
Obtain qemu-system-riscv64 (tested 5.1.0, 5.2.0, 6.1.0 here), make it working with OpenSuSE Thumbleweed image https://en.opensuse.org/openSUSE:RISC-V. This is so far the only linux image which provides registerised ghc 8.10.x. Try to build GHC HEAD with it. The build fails here with:
"inplace/bin/ghc-stage2" -hisuf dyn_hi -osuf dyn_o -hcsuf dyn_hc -fPIC -dynamic -O0 -H64m -Wall -hide-all-packages -package-env - -i -iutils/check-ppr/. -iutils/check-ppr/dist-install/build -Iutils/check-ppr/dist-install/build -iutils/check-ppr/dist-install/build/check-ppr/autogen -Iutils/check-ppr/dist-install/build/check-ppr/autogen -optP-include -optPutils/check-ppr/dist-install/build/check-ppr/autogen/cabal_macros.h -package-id base-4.16.0.0 -package-id bytestring-0.11.1.0 -package-id containers-0.6.4.1 -package-id directory-1.3.6.1 -package-id filepath-1.4.2.1 -package-id ghc-9.3 -Wall -XHaskell2010 -no-user-package-db -rtsopts -Wnoncanonical-monad-instances -outputdir utils/check-ppr/dist-install/build -c utils/check-ppr/./Main.hs -o utils/check-ppr/dist-install/build/Main.dyn_o
"inplace/bin/ghc-stage2" -hisuf dyn_hi -osuf dyn_o -hcsuf dyn_hc -fPIC -dynamic -O0 -H64m -Wall -hide-all-packages -package-env - -i -iutils/check-exact/. -iutils/check-exact/dist-install/build -Iutils/check-exact/dist-install/build -iutils/check-exact/dist-install/build/check-exact/autogen -Iutils/check-exact/dist-install/build/check-exact/autogen -optP-include -optPutils/check-exact/dist-install/build/check-exact/autogen/cabal_macros.h -package-id base-4.16.0.0 -package-id bytestring-0.11.1.0 -package-id containers-0.6.4.1 -package-id directory-1.3.6.1 -package-id filepath-1.4.2.1 -package-id ghc-9.3 -package-id ghc-boot-9.3 -package-id mtl-2.2.2 -Wall -XHaskell2010 -no-user-package-db -rtsopts -Wnoncanonical-monad-instances -outputdir utils/check-exact/dist-install/build -c utils/check-exact/./Types.hs -o utils/check-exact/dist-install/build/Types.dyn_o
"inplace/bin/ghc-stage2" -hisuf dyn_hi -osuf dyn_o -hcsuf dyn_hc -fPIC -dynamic -O0 -H64m -Wall -hide-all-packages -package-env - -i -iutils/count-deps/. -iutils/count-deps/dist-install/build -Iutils/count-deps/dist-install/build -iutils/count-deps/dist-install/build/count-deps/autogen -Iutils/count-deps/dist-install/build/count-deps/autogen -optP-include -optPutils/count-deps/dist-install/build/count-deps/autogen/cabal_macros.h -package-id base-4.16.0.0 -package-id containers-0.6.4.1 -package-id ghc-9.3 -Wall -XHaskell2010 -no-user-package-db -rtsopts -Wnoncanonical-monad-instances -outputdir utils/count-deps/dist-install/build -c utils/count-deps/./Main.hs -o utils/count-deps/dist-install/build/Main.dyn_o
ghc-stage2: internal error: ghc-stage2: internal error: evacuate: strange closure type 918375evacuate: strange closure type 918375ghc-stage2: internal error:
(GHC version 9.3.20211025 for riscv64_unknown_linux)
(GHC version 9.3.20211025 for riscv64_unknown_linux)
evacuate: strange closure type 918375 Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug
(GHC version 9.3.20211025 for riscv64_unknown_linux)
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug
make[1]: *** [utils/count-deps/ghc.mk:18: utils/count-deps/dist-install/build/Main.dyn_o] Aborted (core dumped)
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [utils/check-exact/ghc.mk:18: utils/check-exact/dist-install/build/Types.dyn_o] Aborted (core dumped)
make[1]: *** [utils/check-ppr/ghc.mk:18: utils/check-ppr/dist-install/build/Main.dyn_o] Aborted (core dumped)
make: *** [Makefile:128: all] Error 2
sorry for mixed messages from several concurrenlty run ghc-stage2.
Expected behavior
Build passes and ghc-stage2 is working.
Environment
- GHC version used: GHC 8.10.7
Optional:
- Operating System: OpenSuSE Thumbleweed
- System Architecture: RISC-V64