rustup icon indicating copy to clipboard operation
rustup copied to clipboard

miri dependency not available on Linux ARM64

Open kdowney-lot49 opened this issue 7 months ago • 4 comments

Verification

  • [x] I searched for recent similar issues at https://github.com/rust-lang/rustup/issues?q=is%3Aissue+is%3Aopen%2Cclosed and found no duplicates.
  • [x] I am on the latest version of Rustup according to https://github.com/rust-lang/rustup/tags and am still able to reproduce my issue.

Problem

I am getting this error:

error: some components are unavailable for download for channel '1.86.0': 'miri' for target 'aarch64-unknown-linux-gnu', 'rustc-codegen-cranelift' for target 'aarch64-unknown-linux-gnu'

From the project's rust-toolchain config, it has this and nothing else:

[toolchain]
channel = "1.86.0"

Source, in case you want to reference any other config files: https://github.com/pantsbuild/pants/src/rust.

Steps

As noted above, this error is reported immediately upon running Rust, e.g. rustc.

This is observed on Ubuntu 24.04, running in Docker on Apple Silicon, ARM64.

Possible Solution(s)

No response

Notes

No response

Rustup version

$ rustup --version
rustup 1.28.2 (e4f3ad6f8 2025-04-28)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: syncing channel updates for '1.86.0-aarch64-unknown-linux-gnu'
info: latest update on 2025-04-03, rust version 1.86.0 (05f9846f8 2025-03-31)

Installed toolchains

$ rustup show
Default host: aarch64-unknown-linux-gnu
rustup home:  /usr/local/rustup

info: syncing channel updates for '1.86.0-aarch64-unknown-linux-gnu'
info: latest update on 2025-04-03, rust version 1.86.0 (05f9846f8 2025-03-31)
installed toolchains
--------------------
stable-aarch64-unknown-linux-gnu (default)

active toolchain
----------------
no active toolchain

OS version

$ uname -a
Linux 158204fd7093 6.8.0-50-generic #51-Ubuntu SMP PREEMPT_DYNAMIC Sat Nov  9 18:03:35 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

kdowney-lot49 avatar May 14 '25 22:05 kdowney-lot49

In case this is environment-specific for our project, I was able to resolve by running:

rustup set profile default

The VS Code dev container where this was observed was defaulting to the complete profile.

kdowney-lot49 avatar May 14 '25 22:05 kdowney-lot49

@0xg0nz0 Hello, thanks for filing this issue!

It is true that both miri and rustc-codegen-cranelift are nightly-exclusive components as for now, so complete failing to install might indicate an inconsistency somewhere in the interpretation of that particular profile.

AFAIK rustup simply extract the profile definitions from the manifest:

https://github.com/rust-lang/rustup/blob/a92432fc8b6d5d4e56ebd08ca1c45b7b1294c1bd/src/dist/manifest.rs#L313-L317

... so in this case it could indicate an error straight in the manifest.

rami3l avatar May 15 '25 20:05 rami3l

@pietroalbini Looking towards the end of the stable multirust-channel-manifest.toml I have found the following section:

[profiles]
complete = ["rustc", "cargo", "rust-std", "rust-mingw", "rust-docs", "rustfmt-preview", "clippy-preview", "rust-analyzer-preview", "rust-src", "llvm-tools-preview", "rust-analysis", "miri-preview", "rustc-codegen-cranelift-preview"]

... where miri-preview and rustc-codegen-cranelift-preview are clearly unavailable in this context. Is that the expected behavior?

rami3l avatar May 16 '25 07:05 rami3l

I don't think this is intended behavior. I would change build-manifest to do this filtering.

pietroalbini avatar May 17 '25 06:05 pietroalbini