-
Notifications
You must be signed in to change notification settings - Fork 13.9k
Description
This is a P-high embedded-WG issue that needs to be fixed to make embedded Rust work on stable.
Targets like thumbv7m-none-eabi need to use Xargo, which requires nightly, because there's no
pre-compiled core crate (i.e. rustup target add thumbv7m-none-eabi doesn't work).
To fastest way to remove this nightly dependency is to provide a rust-std component (pre-compiled
core) for the embedded targets. Then users would be able to use rustup target thumbv7m-none-eabi; cargo build --target thumbv7m-none-eabi for embedded development.
The embedded targets rustc currently supports are:
thumbv6m-none-eabithumbv7m-none-eabithumbv7em-none-eabithumbv7em-none-eabihfmsp430-none-elf
The Thumb targets have a more stable LLVM backend so we can commit to always building core for
that target. The MSP430 backend is slightly less stable so we don't want to block the PR pipeline if
building core for the MSP430 target breaks.
This issue can be split in two parts:
- Enabling
rust-stdbuilds for the 4 Thumb targets. Gating oncorebuilding for those targets. - Create some mechanism to let
core/stdbuild fail, and enablerust-stdbuilds for the
MSP430 target. We won't gate oncorebuilding for the MSP430 target.
cc @alexcrichton who can give more info about how to implement this
cc @pftbest