Skip to content

Build the rust-std component for embedded targets #49382

Closed
@japaric

Description

@japaric

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:

  • Enabling rust-std builds for the 4 Thumb targets. Gating on core building for those targets.
  • Create some mechanism to let core / std build fail, and enable rust-std builds for the
    MSP430 target. We won't gate on core building for the MSP430 target.

cc @alexcrichton who can give more info about how to implement this
cc @pftbest

Metadata

Metadata

Assignees

No one assigned

    Labels

    P-highHigh priorityWG-embeddedWorking group: Embedded systems

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions