I spent a bit of time looking at the best way of improving our test coverage for RISC-V. I hope in this coming year more hardware suitable for this kind of workload will become available, but for now qemu-based builders seem the best option. This patch adds a builder using qemu user mode emulation (lower fidelity than full system emulation, but faster and makes better use of the host cores).
Currently, clang, clang-tools-extra, and lld are build and tested. It should be possible to enable libunwind, libcxx, and compiler-rt (as long as -DCOMPILER_RT_BUILD_SANITIZERS=OFF is set - the sanitizer tests won't run under qemu-user) once the following issues are resolved:
- Failing unwind_scalaable_vectors test
- Unsupported libcxx string capacity test (fixed in D143158)
- compiler-rt test timeouts (not yet studied in depth).
The plan for now is just to have it on the staging buildbot and see how it works out. I'd like to later augment or replace with a multi-stage bootstrap build, but this seems the most useful addition for now.
As the description above indicates, some further tweaks are expected - I'm curious whether _any_ change to the buildbot/**.py files in zorg require a scheduled buildbot master restart to take effect?
You may skip this, as it is False by default.