Tools are not available on cross compiled platforms since #61861 #62558
Description
Moved from rust-lang/rust-clippy#4267
#61861 was merged in #61962, since then Rustfmt fails to build when cross compiling which is the case for almost all non Tier 1 platforms.
Clippy and RLS are failing with similar error.
Error on aarch64-unknown-linux-gnu
:
[01:14:03] error[E0464]: multiple matching crates for `rustc_macros`
[01:14:03] --> /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_target-491.0.0/abi/mod.rs:10:5
[01:14:03] |
[01:14:03] | use syntax_pos::symbol::{sym, Symbol};
[01:14:03] | ^^^^^^^^^^
[01:14:03] |
[01:14:03] = note: candidates:
[01:14:03] crate `rustc_macros`: /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_macros-97bf1e9c420f9886.so
[01:14:03] crate `rustc_macros`: /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps/librustc_macros-2f4546e1163449fb.so
[01:14:03]
[01:14:03] error[E0461]: couldn't find crate `rustc_macros` with expected target triple x86_64-unknown-linux-gnu which `syntax_pos` depends on
[01:14:03] --> /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_target-491.0.0/abi/mod.rs:10:5
[01:14:03] |
[01:14:03] 10 | use syntax_pos::symbol::{sym, Symbol};
[01:14:03] | ^^^^^^^^^^
[01:14:03] |
[01:14:03] = note: the following crate versions were found:
[01:14:03] crate `rustc_macros`, target triple aarch64-unknown-linux-gnu: /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/aarch64-unknown-linux-gnu/release/deps/librustc_macros-55389246a2ce204b.so
[01:14:03]
[01:14:03] error: aborting due to 2 previous errors
https://api.travis-ci.com/v3/job/209363492/log.txt
@rustbot modify labels: T-dev-tools A-rustbuild
Metadata
Assignees
Labels
Area: Cross compilationCategory: This is a bug.Target: 32-bit Arm processors (armv6, armv7, thumb...), including 64-bit Arm in AArch32 stateOperating system: FreeBSDRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the dev-tools subteam, which will review and decide on the PR/issue.Relevant to the infrastructure team, which will review and decide on the PR/issue.Performance or correctness regression from one stable version to another.