-
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
[experiment] Enable link-time thread local support on MinGW #102243
Conversation
(rust-highfive has picked a reviewer for you, use r? to override) |
|
Note that i686 windows-msvc also does not have thread-local enabled because the last attempt failed (see #95429). This might or might not be related to TLS issues with the Rust compiler. |
I've tried togging it in the past but EmuTLS used by GCC is just too messed up and causes problems for all languages that use TLS. |
The job Click to see the possible cause of the failure (guessed by this bot)
|
FYI there are multiple links regarding bugs in GCC's TLS for Windows here: msys2/MINGW-packages#2519 |
Does MinGW use COFF TLS the same way as MSVC? If not, this will break cg_clif for MinGW. |
MinGW is only the CRT (a bit like glibc or musl on Linux). |
Is there any documentation on emuTLS for implementing it in Cranelift? |
I have no idea, I'm not familiar with GCC code. |
r? compiler I don't think I have enough context on this platform right now to properly review this. |
r? compiler |
Since this is still a draft I'm going to mark it as waiting on the author. @rustbot author |
☔ The latest upstream changes (presumably #106087) made this pull request unmergeable. Please resolve the merge conflicts. |
closing this as it was an experiment |
I read somewhere that GCC supports link-time TLS on Windows. That would simplify the TLS handling code in
std
by a bit and would also hopefully improve performance.Uses the CI runners for testing as I don't have a Windows machine.