rust-lang / rust-lang/rustup

Support installing third-party tier-3 target support with rustup

Open
#4,635 17 comments 0 reactions 1 assignee View on GitHub

@rami3l is already working on this.

Since Dec 9, 2025.

enhancement
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
22h 40m
Merged PRs (30d)
46

Description

Problem you are trying to solve

I'd like to be able to install a tier-3 toolchain using rustup rather than the current solution of unzipping a file into $(rustc --print sysroot).

Currently we manually build zipfiles of the libstd for riscv32imac-unknown-xous-elf using the stable compiler and install this into $(rustc --print sysroot)/lib/rustlib. This works well as it allows for users to have the standard library without needing a C compiler (which is otherwise required to build libm).

These zipfiles are installed by the xtask pattern as part of the normal build, but it would be nice to have it managed in a standard way.

Solution you'd like

rustup supports having alternate distribution servers. These are mostly used for pre-release testing, but it would be possible to use it for tier-3 targets. For example, we could build packages for xous with ./x.py dist --target riscv32imac-unknown-xous-elf build-manifest rust-std and then use the build-manifest program to generate a dist server root.

The issue is that target add refuses to consult the dist server for the riscv32imac-unknown-xous-elf target triple, so even though that target exists and is available on that server it won't go looking for it.

Notes

Initially I was going to open an issue identical to https://github.com/rust-lang/rustup/issues/4590 because it took me a while to discover what the problem was. However I see as of https://github.com/rust-lang/rustup/issues/4006 it at least doesn't refer to rustc --print target-list anymore.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.