[ci,qemu] `earlgrey_1.0.0` local QEMU override build depends on host Rust toolchain
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
### Description
The local QEMU override build in Bazel (used primarily for manual QEMU development) uses `rules_foreign_cc` to use hermetic C/C++ tooling from Bazel, but still relies on the host rust toolchain. This recently lead to a breakage in `earlgrey_1.0.0` CI where the public Github runner rust version was updated to a new version which introduced changes that broke one of QEMU's rust dependencies. This was fixed in #30903 by bumping the appropriate dependencies, but this could still break again in the future.
Ideally, we should try and find some way to make this QEMU build rely on Bazel's hermetic rust toolchain instead.
Contributor guide
Research direction
Start with the Bazel local QEMU override and its rules_foreign_cc configuration, using the earlgrey_1.0.0 CI failure and #30903 as context. Determine how the build currently selects the host Rust toolchain and how Bazel's hermetic Rust toolchain can be used instead. Done means the local QEMU override no longer depends on the host Rust version and the earlgrey_1.0.0 build remains successful.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, rust
- Domain
- build-system, ci-cd
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 45/100