Skip to content

Commit bbb3f31

Browse files
authored
Rollup merge of rust-lang#107234 - Rattenkrieg:bootstrap-fix-is_ci_llvm_available, r=albertlarsan68
Revisit fix_is_ci_llvm_available logic Fixes rust-lang#107225 Now `supported_platforms` has a knowledge whether llvm asserts artifacts are available for particular host triple. `@jyn514` `@albertlarsan68` PTAL
2 parents d1f73fa + 9ef8407 commit bbb3f31

File tree

3 files changed

+41
-34
lines changed

3 files changed

+41
-34
lines changed

src/bootstrap/config.rs

+3
Original file line numberDiff line numberDiff line change
@@ -965,6 +965,9 @@ impl Config {
965965
config.changelog_seen = toml.changelog_seen;
966966

967967
let build = toml.build.unwrap_or_default();
968+
if let Some(file_build) = build.build {
969+
config.build = TargetSelection::from_user(&file_build);
970+
};
968971

969972
set(&mut config.out, flags.build_dir.or_else(|| build.build_dir.map(PathBuf::from)));
970973
// NOTE: Bootstrap spawns various commands with different working directories.

src/bootstrap/config/tests.rs

+7
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ fn download_ci_llvm() {
1919
assert_eq!(parse_llvm(""), if_available);
2020
assert_eq!(parse_llvm("rust.channel = \"dev\""), if_available);
2121
assert!(!parse_llvm("rust.channel = \"stable\""));
22+
assert!(parse_llvm("build.build = \"x86_64-unknown-linux-gnu\""));
23+
assert!(parse_llvm(
24+
"llvm.assertions = true \r\n build.build = \"x86_64-unknown-linux-gnu\" \r\n llvm.download-ci-llvm = \"if-available\""
25+
));
26+
assert!(!parse_llvm(
27+
"llvm.assertions = true \r\n build.build = \"aarch64-apple-darwin\" \r\n llvm.download-ci-llvm = \"if-available\""
28+
));
2229
}
2330

2431
// FIXME: add test for detecting `src` and `out`

src/bootstrap/native.rs

+31-34
Original file line numberDiff line numberDiff line change
@@ -180,43 +180,40 @@ pub(crate) fn is_ci_llvm_available(config: &Config, asserts: bool) -> bool {
180180
// https://doc.rust-lang.org/rustc/platform-support.html#tier-1
181181
let supported_platforms = [
182182
// tier 1
183-
"aarch64-unknown-linux-gnu",
184-
"i686-pc-windows-gnu",
185-
"i686-pc-windows-msvc",
186-
"i686-unknown-linux-gnu",
187-
"x86_64-unknown-linux-gnu",
188-
"x86_64-apple-darwin",
189-
"x86_64-pc-windows-gnu",
190-
"x86_64-pc-windows-msvc",
183+
("aarch64-unknown-linux-gnu", false),
184+
("i686-pc-windows-gnu", false),
185+
("i686-pc-windows-msvc", false),
186+
("i686-unknown-linux-gnu", false),
187+
("x86_64-unknown-linux-gnu", true),
188+
("x86_64-apple-darwin", true),
189+
("x86_64-pc-windows-gnu", true),
190+
("x86_64-pc-windows-msvc", true),
191191
// tier 2 with host tools
192-
"aarch64-apple-darwin",
193-
"aarch64-pc-windows-msvc",
194-
"aarch64-unknown-linux-musl",
195-
"arm-unknown-linux-gnueabi",
196-
"arm-unknown-linux-gnueabihf",
197-
"armv7-unknown-linux-gnueabihf",
198-
"mips-unknown-linux-gnu",
199-
"mips64-unknown-linux-gnuabi64",
200-
"mips64el-unknown-linux-gnuabi64",
201-
"mipsel-unknown-linux-gnu",
202-
"powerpc-unknown-linux-gnu",
203-
"powerpc64-unknown-linux-gnu",
204-
"powerpc64le-unknown-linux-gnu",
205-
"riscv64gc-unknown-linux-gnu",
206-
"s390x-unknown-linux-gnu",
207-
"x86_64-unknown-freebsd",
208-
"x86_64-unknown-illumos",
209-
"x86_64-unknown-linux-musl",
210-
"x86_64-unknown-netbsd",
192+
("aarch64-apple-darwin", false),
193+
("aarch64-pc-windows-msvc", false),
194+
("aarch64-unknown-linux-musl", false),
195+
("arm-unknown-linux-gnueabi", false),
196+
("arm-unknown-linux-gnueabihf", false),
197+
("armv7-unknown-linux-gnueabihf", false),
198+
("mips-unknown-linux-gnu", false),
199+
("mips64-unknown-linux-gnuabi64", false),
200+
("mips64el-unknown-linux-gnuabi64", false),
201+
("mipsel-unknown-linux-gnu", false),
202+
("powerpc-unknown-linux-gnu", false),
203+
("powerpc64-unknown-linux-gnu", false),
204+
("powerpc64le-unknown-linux-gnu", false),
205+
("riscv64gc-unknown-linux-gnu", false),
206+
("s390x-unknown-linux-gnu", false),
207+
("x86_64-unknown-freebsd", false),
208+
("x86_64-unknown-illumos", false),
209+
("x86_64-unknown-linux-musl", false),
210+
("x86_64-unknown-netbsd", false),
211211
];
212-
if !supported_platforms.contains(&&*config.build.triple) {
213-
return false;
214-
}
215212

216-
let triple = &*config.build.triple;
217-
if (triple == "aarch64-unknown-linux-gnu" || triple.contains("i686")) && asserts {
218-
// No alt builder for aarch64-unknown-linux-gnu today.
219-
return false;
213+
if !supported_platforms.contains(&(&*config.build.triple, asserts)) {
214+
if asserts == true || !supported_platforms.contains(&(&*config.build.triple, true)) {
215+
return false;
216+
}
220217
}
221218

222219
if CiEnv::is_ci() {

0 commit comments

Comments
 (0)