-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Target stack-probe support configurable finely #80838
Conversation
|
☔ The latest upstream changes (presumably #80960) made this pull request unmergeable. Please resolve the merge conflicts. |
I'm a little worried about doing so, especially since other targets are tier 2 or below, untested. We're already gating the x86 version based on known bugs, but you haven't left any room for
I'm not sure clang is correct here. At least on Windows, |
I was torn between making this PR provide exhaustive set of options for various future use-cases, anticipated or not, or just the fairly minimal set of options that are useful today, with an anticipation that it would be fleshed out as new ones come up.
Okay, yeah fair. I'll just add another |
a25ddba
to
52a5736
Compare
☔ The latest upstream changes (presumably #77885) made this pull request unmergeable. Please resolve the merge conflicts. |
This adds capability to configure the target's stack probe support in a more precise manner than just on/off. In particular now we allow choosing between always inline-asm, always call or either one of those depending on the LLVM version on a per-target basis.
52a5736
to
007080b
Compare
@cuviper fyi I did adjust the PR. |
ba0a004
to
495e81b
Compare
495e81b
to
1b15ec6
Compare
@bors r+ |
📌 Commit 1b15ec6 has been approved by |
⌛ Testing commit 1b15ec6 with merge 8d234f8b7cfac73bfca027ae1c4f92be933642c3... |
💔 Test failed - checks-actions |
A job failed! Check out the build log: (web) (plain) Click to see the possible cause of the failure (guessed by this bot)
|
@bors retry Spurious network error |
☀️ Test successful - checks-actions |
To buy time on issue 83139, revert effect of PR 77885: We will not conditionally enable probe-stack=inline-asm on LLVM 11+ anymore on any of our targets that opted into doing so on PR rust-lang#77885 (and were subsequently configured to do so in a fine grained manner on PR rust-lang#80838). After we resolve 83139 (potentially by backporting a fix to LLVM, or potentially by deciding that one cannot rely on the quality of our DWARF output in the manner described in issue 83139), we can change this back. (Update: fixed formatting issue.)
…7885-for-issue-83139, r=nagisa [stable] probe-stack=call everywhere again, for now. To buy time on issue 83139, revert effect of PR 77885: We will not conditionally enable probe-stack=inline-asm on LLVM 11+ anymore on any of our targets that opted into doing so on PR rust-lang#77885 (and were subsequently configured to do so in a fine grained manner on PR rust-lang#80838). After we resolve 83139 (potentially by backporting a fix to LLVM, or potentially by deciding that one cannot rely on the quality of our DWARF output in the manner described in issue 83139), we can change this back. cc rust-lang#83139
This adds capability to configure the target's stack probe support in a
more precise manner than just on/off. In particular now we allow
choosing between always inline-asm, always call or either one of those
depending on the LLVM version.
Note that this removes the ability to turn off the generation of the
stack-probe attribute. This is valid to replace it with inline-asm for all targets because
probe-stack="inline-asm"
will not generate any machine code on targetsthat do not currently support stack probes. This makes support for stack
probes on targets that don't have any right now automatic with LLVM
upgrades in the future.
(This is valid to do based on the fact that clang unconditionally sets
this attribute when
-fstack-clash-protection
is used, AFAICT)cc #77885
r? @cuviper