-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bootstrap: download-ci-llvm = "if-available"
tries to download alt artifacts that don't exist on tier 2 platforms
#107225
Comments
@rustbot label +T-bootstrap +T-infra
|
@albertlarsan68 thank you for response! All clear with 1. 3. 4. |
I meant that the default is |
T-infra said in the meeting today that it's intentional that we don't distribute alt artifacts for tier 2 platforms: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/meeting.202022-01-23/near/323042755. @albertlarsan68 is going to confirm today that this is limited to alt artifacts.
👍 this seems useful as long as the error is a 404, but we shouldn't build from source if static.rust-lang.org is having trouble (people should have to explicitly opt-in). Separately, we may also want to distinguish tier 1 from tier 2 platforms in bootstrap, and not attempt to download the alt artifacts in the first place for tier 2 platforms.
I don't like this idea, we shouldn't silently change the platform we're building (and mixing x86 with aarch64 won't work anyway I don't think). For this specific case we could suggest setting |
download-ci-llvm = "if-available"
tries to download alt artifacts that don't exist on tier 2 platforms
Can confirm, that download attempt and following failure happening when either Thank you for clarification @jyn514 Seems we may want to remove "aarch64-apple-darwin" from the list of supported platforms. Also bear in mind, that only |
This isn't the right fix because it will regress the experience for people using llvm without assertions. See my message above for what I think we should do. |
Ah, I believe I'm getting it. The problem is that |
Patching if triple == "aarch64-apple-darwin" && asserts {
// No alt builder for aarch64-apple-darwin today.
return false;
} did the trick for me. |
@Rattenkrieg are you interested in making a patch like that for all the tier 2 targets? :) you can find a list here: https://doc.rust-lang.org/nightly/rustc/platform-support.html (it will probably be easier to have a separate tier 1 and tier 2 list so you don't have to duplicate the names) |
@jyn514 sure, let me try. if !supported_platforms.contains(&(&*config.build.triple, asserts)) {
if asserts == true || !supported_platforms.contains(&(&*config.build.triple, true)) {
return false;
}
} Not sure which one is cleaner/easier to maintain, I'm going to experiment with both. |
…vm_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
Since there is no
-alt
variation of CI action for dist-aarch64-apple, prebuilt llvm is never published for arm macs.Hence compete bootstrap like
> ./x.py build library
will always fail on arm macs withAlthough it's straightforward to fix by following the hint from error message and finding correct
config.codegen.toml
(among other config.toml's), bootstrap experience could be better:Config::download_ci_llvm()
could point to correct config file, since there are really few of them;Config::llvm_from_ci
could be set tofalse
for those host triplets that have no published llvm;dist-aarch64-apple
ie creatingdist-aarch64-apple-alt
CI action;rust-dev-nightly-x86_64-apple-darwin.tar.xz
is fallback forrust-dev-nightly-aarch64-apple-darwin.tar.xz
.The text was updated successfully, but these errors were encountered: