-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Upgrade Emscripten targets to use upstream LLVM backend #65251
Conversation
d5fcc26
to
2be4141
Compare
@bors: delegate+ Looks good to me! As discussed here looks like we're going to disable the asmjs tests here but enable the wasm32-unknown-emscripten ones instead. These should execute much more quickly and continue to be within our time limits on CI @tlively I'm assuming this is basically #63649 plus that change for the final pass, so once CI comes back green feel free to r=me! |
✌️ @tlively can now approve this pull request |
2be4141
to
4fb2e51
Compare
☔ The latest upstream changes (presumably #64873) made this pull request unmergeable. Please resolve the merge conflicts. |
src/liballoc/tests/str.rs.rej
Outdated
@@ -0,0 +1,10 @@ | |||
diff a/src/liballoc/tests/str.rs b/src/liballoc/tests/str.rs (rejected hunks) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why this file is included?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should not be! Thanks for the catch.
4fb2e51
to
92b4e40
Compare
I have no idea why all those tests started failing suddenly, and I can't reproduce it locally. I'll just rebase on master and push again and see if it goes away 😕 |
915c2ff
to
19c6feb
Compare
Your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
Well I guess I'll just wait until docker hub is back up 🙃 |
☔ The latest upstream changes (presumably #65454) made this pull request unmergeable. Please resolve the merge conflicts. |
- Compatible with Emscripten 1.38.46-upstream or later upstream. - Refactors the Emscripten target spec to share code with other wasm targets. - Replaces the old incorrect wasm32 C call ABI with the correct one, preserving the old one as wasm32_bindgen_compat for wasm-bindgen compatibility. - Updates the varargs ABI used by Emscripten and deletes the old one. - Removes the obsolete wasm32-experimental-emscripten target. - Uses EMCC_CFLAGS on CI to avoid the timeout problems with rust-lang#63649.
2476553
to
4b26d9c
Compare
@bors r+ @alexcrichton No major tweaks since you last accepted this. The only possibly sketchy thing is the use of NO_CHANGE_USER in the asmjs and wasm32 docker files in 4b26d9c. But hopefully that's less sketchy than the shenanigans committed upon the emsdk install before that commit. |
📌 Commit c0aa7cb has been approved by |
Upgrade Emscripten targets to use upstream LLVM backend - Compatible with Emscripten 1.38.46-upstream or later upstream. - Refactors the Emscripten target spec to share code with other wasm targets. - Replaces the old incorrect wasm32 C call ABI with the correct one, preserving the old one as wasm32_bindgen_compat for wasm-bindgen compatibility. - Updates the varargs ABI used by Emscripten and deletes the old one. - Removes the obsolete wasm32-experimental-emscripten target. - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649. r? @alexcrichton
☀️ Test successful - checks-azure |
Tested on commit rust-lang/rust@a16dca3. Direct link to PR: <rust-lang/rust#65251> 🎉 rls on linux: test-fail → test-pass (cc @Xanewok, @rust-lang/infra).
Thanks again @tlively for helping to push this over the finish line! |
With rust-lang#65251 landed there's no need to build two LLVM backends and ship them with rustc, every target we have now uses the same LLVM backend! This removes the `src/llvm-emscripten` submodule and additionally removes all support from rustbuild for building the emscripten LLVM backend. Multiple codegen backend support is left in place for now, and this is intended to be an easy 10-15 minute win on CI times by avoiding having to build LLVM twice.
…end, r=Mark-Simulacrum Remove `src/llvm-emscripten` submodule With rust-lang#65251 landed there's no need to build two LLVM backends and ship them with rustc, every target we have now uses the same LLVM backend! This removes the `src/llvm-emscripten` submodule and additionally removes all support from rustbuild for building the emscripten LLVM backend. Multiple codegen backend support is left in place for now, and this is intended to be an easy 10-15 minute win on CI times by avoiding having to build LLVM twice.
With rust-lang#65251 landed there's no need to build two LLVM backends and ship them with rustc, every target we have now uses the same LLVM backend! This removes the `src/llvm-emscripten` submodule and additionally removes all support from rustbuild for building the emscripten LLVM backend. Multiple codegen backend support is left in place for now, and this is intended to be an easy 10-15 minute win on CI times by avoiding having to build LLVM twice.
…-Simulacrum Remove `src/llvm-emscripten` submodule With #65251 landed there's no need to build two LLVM backends and ship them with rustc, every target we have now uses the same LLVM backend! This removes the `src/llvm-emscripten` submodule and additionally removes all support from rustbuild for building the emscripten LLVM backend. Multiple codegen backend support is left in place for now, and this is intended to be an easy 10-15 minute win on CI times by avoiding having to build LLVM twice.
Marking as relnotes for myself in the future, as the previous PR was marked as such and I assume it's still desired to include in the release notes of the release. |
wasm32-experimental-emscripten was removed in rust-lang/rust#63649 (or rust-lang/rust#65251).
@@ -1,3 +1,4 @@ | |||
// ignore-emscripten compiled with panic=abort by default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The test is about variadics, not panics, so I do not understand this comment.
(I realize it's been a while, but I just coincidentally noticed this comment and traced it back to where it was added...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My guess is that compiling with panic=abort
changes the codegen in such a way that some of the CHECK lines no longer pass (particularly down in test_c_variadic_call
, which does not have an explicit panic annotation).
targets.
preserving the old one as wasm32_bindgen_compat for wasm-bindgen
compatibility.
r? @alexcrichton