Auto merge of #137541 - onur-ozkan:fix-cargo-clippy-bin, r=jieyouxu

add `tool::CargoClippy` and `tool::Cargofmt` binary to target sysroot

When running `x build clippy`, we expect `stage1-tool-bin/cargo-clippy` and `stage2/bin/cargo-clippy` to be the same, but they aren't. This happens because `tool::CargoClippy` doesn't place its binary in the `stage2` directory. As a result, `stage1-tool-bin/cargo-clippy` comes from `tool::CargoClippy`, while `stage2/bin/cargo-clippy` comes from `tool::Cargo`. Same applies for `tool::Cargofmt`.

This PR fixes the issue by adding `tool::CargoClippy` and ``tool::Cargofmt`` binaries to the expected sysroot and makes sure both directories share the same binary.

To test this, run `x build --stage 2 compiler clippy rustfmt`, link the stage2 sysroot with rustup, and then call `cargo +stage2 fmt` and `cargo +stage2 clippy` on any rust project (it wouldn't work without this PR).
This commit is contained in:
bors 2025-03-09 04:31:52 +00:00
commit a96fa317d7
2 changed files with 15 additions and 4 deletions

View file

@ -1201,13 +1201,23 @@ fn run_tool_build_step(
}
}
tool_extended!(Cargofmt { path: "src/tools/rustfmt", tool_name: "cargo-fmt", stable: true });
tool_extended!(CargoClippy { path: "src/tools/clippy", tool_name: "cargo-clippy", stable: true });
tool_extended!(Cargofmt {
path: "src/tools/rustfmt",
tool_name: "cargo-fmt",
stable: true,
add_bins_to_sysroot: ["cargo-fmt"]
});
tool_extended!(CargoClippy {
path: "src/tools/clippy",
tool_name: "cargo-clippy",
stable: true,
add_bins_to_sysroot: ["cargo-clippy"]
});
tool_extended!(Clippy {
path: "src/tools/clippy",
tool_name: "clippy-driver",
stable: true,
add_bins_to_sysroot: ["clippy-driver", "cargo-clippy"]
add_bins_to_sysroot: ["clippy-driver"]
});
tool_extended!(Miri {
path: "src/tools/miri",
@ -1226,7 +1236,7 @@ tool_extended!(Rustfmt {
path: "src/tools/rustfmt",
tool_name: "rustfmt",
stable: true,
add_bins_to_sysroot: ["rustfmt", "cargo-fmt"]
add_bins_to_sysroot: ["rustfmt"]
});
#[derive(Debug, Clone, PartialEq, Eq, Hash)]

View file

@ -890,6 +890,7 @@ impl<'a> Builder<'a> {
gcc::Gcc,
llvm::Sanitizers,
tool::Rustfmt,
tool::Cargofmt,
tool::Miri,
tool::CargoMiri,
llvm::Lld,