Unregisterised Cross-compilation to 32-bit platform from 64-bit build platform broken
As of %9.2.2, unregisterised cross-compilation is currently broken from 64-bit to 32-bit platforms. Specifically, the build will fail with something like:
$ ./boot
$ ./configure --target=arm-linux-gnueabihf --enable-unregisterised
$ hadrian/build-cabal -j9
.
.
.
Command line: _build/stage0/bin/arm-linux-gnueabihf-ghc -Wall -dynamic-too -hisuf hi -osuf o -hcsuf hc -static -hide-all-packages -no-user-package-db '-package-env -' '-package-db _build/stage1/lib/package.conf.d' '-this-unit-id ghc-prim-0.8.0' '-package-id rts-1.0.2' -i -i/mnt/ghc/ghc/ghc/_build/stage1/libraries/ghc-prim/build -i/mnt/ghc/ghc/ghc/_build/stage1/libraries/ghc-prim/build/autogen -i/mnt/ghc/ghc/ghc/libraries/ghc-prim -Iincludes -I_build/stage1/lib -I_build/stage1/libraries/ghc-prim/build -I/home/ben/ghc/ghc/_build/stage1/lib/arm-linux-ghc-9.2.2/rts-1.0.2/include -I_build/stage1/lib -optc-I_build/stage1/lib -optP-include -optP_build/stage1/libraries/ghc-prim/build/autogen/cabal_macros.h -optc-marm -outputdir _build/stage1/libraries/ghc-prim/build -Wnoncanonical-monad-instances -optc-Wno-error=inline -optP-Wno-nonportable-include-path -c _build/stage1/libraries/ghc-prim/build/GHC/PrimopWrappers.hs -o _build/stage1/libraries/ghc-prim/build/GHC/PrimopWrappers.o -O2 -H32m -this-unit-id ghc-prim -XHaskell2010 -no-global-package-db -package-db=/home/ben/ghc/ghc/_build/stage1/lib/package.conf.d -ghcversion-file=/home/ben/ghc/ghc/_build/stage1/lib/ghcversion.h -haddock -Wno-deprecated-flags -Wno-trustworthy-safe
Exit code: 1
Stderr and Stdout:
arm-linux-gnueabihf-ghc: panic! (the 'impossible' happened)
(GHC version 9.2.2:
pprCallishMachOp_for_C: MO_x64_Ne not supported!
I suspect that this was introduced by 52e52083, which lowers the 64-bit primops to CallishMachoOps which the C backend does not support.