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-eabi
thumbv7m-none-eabi
thumbv7em-none-eabi
thumbv7em-none-eabihf
msp430-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:
cc @alexcrichton who can give more info about how to implement this
cc @pftbest
This is a P-high embedded-WG issue that needs to be fixed to make embedded Rust work on stable.
Targets like
thumbv7m-none-eabineed to use Xargo, which requires nightly, because there's nopre-compiled
corecrate (i.e.rustup target add thumbv7m-none-eabidoesn't work).To fastest way to remove this nightly dependency is to provide a
rust-stdcomponent (pre-compiledcore) for the embedded targets. Then users would be able to use
rustup target thumbv7m-none-eabi; cargo build --target thumbv7m-none-eabifor embedded development.The embedded targets
rustccurrently supports are:thumbv6m-none-eabithumbv7m-none-eabithumbv7em-none-eabithumbv7em-none-eabihfmsp430-none-elfThe Thumb targets have a more stable LLVM backend so we can commit to always building
coreforthat target. The MSP430 backend is slightly less stable so we don't want to block the PR pipeline if
building
corefor the MSP430 target breaks.This issue can be split in two parts:
rust-stdbuilds for the 4 Thumb targets. Gating oncorebuilding for those targets.core/stdbuild fail, and enablerust-stdbuilds for theMSP430 target. We won't gate on
corebuilding for the MSP430 target.cc @alexcrichton who can give more info about how to implement this
cc @pftbest