Setup CI for RISCV64
Motivation
The RISCV64 NCG has been merged to master
(!13105 (merged)), the RISCV64 LLVM backend has been around for a quite some time. As the RISC-V architecture is getting more popular, it would be great to:
- prevent regressions
- provide binary distribution packages
These are tasks for the CI.
Proposal
Unfortunately, there's no cheap & powerful RISC-V hardware, yet. And, the market is progressing so quickly that buying expensive machines doesn't make much sense right now.
So, it would be good to have:
- One CI job building a cross-compiler (build == host, host != target) with the NCG and running tests in usermode Qemu (emulated)
- One CI job building a cross-compiler (build == host, host != target) with the LLVM backend and running tests in usermode Qemu (emulated)
- Once Hadrian can cross-build GHC compilers (build != host, host == target), build binary distributions
- Alternatively, we build GHC inside a fully emulated RISC-V system (Qemu system emulation) - If we get this Qemu system emulation working, we wouldn't have to wait for Hadrian efforts
There already is a PR in draft state to provide a cross-compilation toolchain in Debian 12 CI images: ci-images!151 (merged)