-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Enable and make stage0 landing pads optional #28717
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
cc @arielb1, thoughts? |
@@ -578,6 +578,7 @@ opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds" | |||
opt local-rust 0 "use an installed rustc rather than downloading a snapshot" | |||
opt llvm-static-stdcpp 0 "statically link to libstdc++ for LLVM" | |||
opt rpath 0 "build rpaths into rustc itself" | |||
opt landing-pads 1 "enable landing pads during bootstrap" |
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.
Perhaps this could be called stage0-landing-pads
to ensure it's not mistaken for disabling landing pads entirely?
91d2bc0
to
faef226
Compare
Whatever way this PR goes, IMHO it still would be great to fix compiletest to work with or without landing-pads. |
faef226
to
3f03032
Compare
@@ -170,7 +170,10 @@ RUST_LIB_FLAGS_ST3 += -C prefer-dynamic | |||
|
|||
# Landing pads require a lot of codegen. We can get through bootstrapping faster | |||
# by not emitting them. | |||
RUSTFLAGS_STAGE0 += -Z no-landing-pads | |||
|
|||
ifdef CFG_DISABLE_STAGE1_LANDING_PADS |
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.
Could this be called stage0 to mirror the option it's used for below? I guess it kinda depends on what a "stage1 bootstrap" means, which also depends on who you talk to! May be worth just keeping these numbers in sync though to alleviate confusion of the off-by-one nature?
Certainly! |
3f03032
to
cefadf0
Compare
This is a decent interim solution, but I would prefer a real one. |
⌛ Testing commit cefadf0 with merge e1f7470... |
💔 Test failed - auto-win-msvc-64-opt |
@bors retry |
@bors r- |
I got no way to investigate this failure, sadly. I could make pads disabled by default, but that makes this PR pretty useless IMO. |
I think that unwinding for MSVC 64-bit landed sometime after the last snapshot causing these problems (e.g. MSVC 64-bit in stage0 wants the old method of unwinding). If you tweak these cfgs to have 64-bit MSVC in stage0 routed to |
@alexcrichton can we get new snapshots instead? |
⌛ Testing commit 8cf5cf0 with merge 3f78603... |
💔 Test failed - auto-win-gnu-64-opt |
Well, at least MSVC didn’t fail, but it seems wiser to wait for snaps rather than trying to fix all windows’ landing pad implementations for stage0. |
Oh right, I think in stage0 x86_64-pc-windows-gnu needs to be routed to |
8cf5cf0
to
67c2d2a
Compare
OK, lets retry this. |
Looks like the travis failure may be legit |
67c2d2a
to
594b2a3
Compare
@bors try |
Part of #28710 Landing pads during stage0 are now enabled by defaullt. Since this has its downsides and upsides either way, I made it possible to change the option through configure.
@bors try- |
@bors r+ |
📌 Commit 594b2a3 has been approved by |
@bors: retry force |
⌛ Testing commit 594b2a3 with merge d319a17... |
💔 Test failed - auto-win-gnu-64-opt |
Aha, looks like stage0 64-bit gnu windows needs |
594b2a3
to
a7f2a78
Compare
Part of #28710 Landing pads during stage0 are now enabled by defaullt. Since this has its downsides and upsides either way, I made it possible to change the option through configure.
Part of #28710
Landing pads during stage0 are now enabled by defaullt. Since this has its downsides and upsides either way, I made it possible to change the option through configure.