lowRISC / lowRISC/opentitan

[ci,qemu] `earlgrey_1.0.0` local QEMU override build depends on host Rust toolchain

Open
#30,905 0 comments 0 reactions 0 assignees View on GitHub
Component:QEMU Component:Software
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.