mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
Rollup merge of #107234 - Rattenkrieg:bootstrap-fix-is_ci_llvm_available, r=albertlarsan68
Revisit fix_is_ci_llvm_available logic Fixes #107225 Now `supported_platforms` has a knowledge whether llvm asserts artifacts are available for particular host triple. ``@jyn514`` ``@albertlarsan68`` PTAL
This commit is contained in:
commit
04dfde4ea2
@ -965,6 +965,9 @@ impl Config {
|
||||
config.changelog_seen = toml.changelog_seen;
|
||||
|
||||
let build = toml.build.unwrap_or_default();
|
||||
if let Some(file_build) = build.build {
|
||||
config.build = TargetSelection::from_user(&file_build);
|
||||
};
|
||||
|
||||
set(&mut config.out, flags.build_dir.or_else(|| build.build_dir.map(PathBuf::from)));
|
||||
// NOTE: Bootstrap spawns various commands with different working directories.
|
||||
|
@ -19,6 +19,13 @@ fn download_ci_llvm() {
|
||||
assert_eq!(parse_llvm(""), if_available);
|
||||
assert_eq!(parse_llvm("rust.channel = \"dev\""), if_available);
|
||||
assert!(!parse_llvm("rust.channel = \"stable\""));
|
||||
assert!(parse_llvm("build.build = \"x86_64-unknown-linux-gnu\""));
|
||||
assert!(parse_llvm(
|
||||
"llvm.assertions = true \r\n build.build = \"x86_64-unknown-linux-gnu\" \r\n llvm.download-ci-llvm = \"if-available\""
|
||||
));
|
||||
assert!(!parse_llvm(
|
||||
"llvm.assertions = true \r\n build.build = \"aarch64-apple-darwin\" \r\n llvm.download-ci-llvm = \"if-available\""
|
||||
));
|
||||
}
|
||||
|
||||
// FIXME: add test for detecting `src` and `out`
|
||||
|
@ -180,43 +180,40 @@ pub(crate) fn is_ci_llvm_available(config: &Config, asserts: bool) -> bool {
|
||||
// https://doc.rust-lang.org/rustc/platform-support.html#tier-1
|
||||
let supported_platforms = [
|
||||
// tier 1
|
||||
"aarch64-unknown-linux-gnu",
|
||||
"i686-pc-windows-gnu",
|
||||
"i686-pc-windows-msvc",
|
||||
"i686-unknown-linux-gnu",
|
||||
"x86_64-unknown-linux-gnu",
|
||||
"x86_64-apple-darwin",
|
||||
"x86_64-pc-windows-gnu",
|
||||
"x86_64-pc-windows-msvc",
|
||||
("aarch64-unknown-linux-gnu", false),
|
||||
("i686-pc-windows-gnu", false),
|
||||
("i686-pc-windows-msvc", false),
|
||||
("i686-unknown-linux-gnu", false),
|
||||
("x86_64-unknown-linux-gnu", true),
|
||||
("x86_64-apple-darwin", true),
|
||||
("x86_64-pc-windows-gnu", true),
|
||||
("x86_64-pc-windows-msvc", true),
|
||||
// tier 2 with host tools
|
||||
"aarch64-apple-darwin",
|
||||
"aarch64-pc-windows-msvc",
|
||||
"aarch64-unknown-linux-musl",
|
||||
"arm-unknown-linux-gnueabi",
|
||||
"arm-unknown-linux-gnueabihf",
|
||||
"armv7-unknown-linux-gnueabihf",
|
||||
"mips-unknown-linux-gnu",
|
||||
"mips64-unknown-linux-gnuabi64",
|
||||
"mips64el-unknown-linux-gnuabi64",
|
||||
"mipsel-unknown-linux-gnu",
|
||||
"powerpc-unknown-linux-gnu",
|
||||
"powerpc64-unknown-linux-gnu",
|
||||
"powerpc64le-unknown-linux-gnu",
|
||||
"riscv64gc-unknown-linux-gnu",
|
||||
"s390x-unknown-linux-gnu",
|
||||
"x86_64-unknown-freebsd",
|
||||
"x86_64-unknown-illumos",
|
||||
"x86_64-unknown-linux-musl",
|
||||
"x86_64-unknown-netbsd",
|
||||
("aarch64-apple-darwin", false),
|
||||
("aarch64-pc-windows-msvc", false),
|
||||
("aarch64-unknown-linux-musl", false),
|
||||
("arm-unknown-linux-gnueabi", false),
|
||||
("arm-unknown-linux-gnueabihf", false),
|
||||
("armv7-unknown-linux-gnueabihf", false),
|
||||
("mips-unknown-linux-gnu", false),
|
||||
("mips64-unknown-linux-gnuabi64", false),
|
||||
("mips64el-unknown-linux-gnuabi64", false),
|
||||
("mipsel-unknown-linux-gnu", false),
|
||||
("powerpc-unknown-linux-gnu", false),
|
||||
("powerpc64-unknown-linux-gnu", false),
|
||||
("powerpc64le-unknown-linux-gnu", false),
|
||||
("riscv64gc-unknown-linux-gnu", false),
|
||||
("s390x-unknown-linux-gnu", false),
|
||||
("x86_64-unknown-freebsd", false),
|
||||
("x86_64-unknown-illumos", false),
|
||||
("x86_64-unknown-linux-musl", false),
|
||||
("x86_64-unknown-netbsd", false),
|
||||
];
|
||||
if !supported_platforms.contains(&&*config.build.triple) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let triple = &*config.build.triple;
|
||||
if (triple == "aarch64-unknown-linux-gnu" || triple.contains("i686")) && asserts {
|
||||
// No alt builder for aarch64-unknown-linux-gnu today.
|
||||
return false;
|
||||
if !supported_platforms.contains(&(&*config.build.triple, asserts)) {
|
||||
if asserts == true || !supported_platforms.contains(&(&*config.build.triple, true)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if CiEnv::is_ci() {
|
||||
|
Loading…
Reference in New Issue
Block a user