Skip to content
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

dtors_in_dtors_in_dtors test fails on 32bit Windows targets #2754

Closed
RalfJung opened this issue Jan 9, 2023 · 2 comments · Fixed by rust-lang/rust#106638
Closed

dtors_in_dtors_in_dtors test fails on 32bit Windows targets #2754

RalfJung opened this issue Jan 9, 2023 · 2 comments · Fixed by rust-lang/rust#106638

Comments

@RalfJung
Copy link
Member

RalfJung commented Jan 9, 2023

Most Windows targets (both MSVC and GNU) deadlock on this test when running in Miri. Only x86_64-pc-windows-gnu target works fine.

I seem to recall that on the failing targets we do not use "native" thread-locals due to some linker issues or so.

But the real question is, why don't the destructors work the way they should?

@RalfJung
Copy link
Member Author

RalfJung commented Jan 9, 2023

Oh, something is even stranger. The test works fine when I extract it into a separate Miri test, but fails on the std test suite.

bors added a commit that referenced this issue Jan 9, 2023
add dtors_in_dtors_in_dtors

That's a pretty neat test from the standard library. Sadly not enough to check for #2754, but still worth having here.
@RalfJung
Copy link
Member Author

RalfJung commented Jan 9, 2023

Turns out to be a realstd issue. Fixed by rust-lang/rust#106638.

RalfJung pushed a commit to RalfJung/rust that referenced this issue Jan 9, 2023
…lfJung

add dtors_in_dtors_in_dtors

That's a pretty neat test from the standard library. Sadly not enough to check for rust-lang/miri#2754, but still worth having here.
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this issue Jan 12, 2023
std tests: use __OsLocalKeyInner from realstd

This is basically the same as rust-lang#100201, but for __OsLocalKeyInner:

Some std tests are failing in Miri on Windows because [this static](https://github.com/rust-lang/rust/blob/a377893da2cd7124e5a18c7116cbb70e16dd5541/library/std/src/sys/windows/thread_local_key.rs#L234-L239) is getting duplicated, and Miri does not handle that properly -- Miri does not support this magic `.CRT$XLB` linker section, but instead just looks up this particular hard-coded static in the standard library. This PR lets the test suite use the std static instead of having its own copy.

Fixes rust-lang/miri#2754
r? ``@thomcc``
thomcc pushed a commit to tcdi/postgrestd that referenced this issue May 31, 2023
std tests: use __OsLocalKeyInner from realstd

This is basically the same as rust-lang/rust#100201, but for __OsLocalKeyInner:

Some std tests are failing in Miri on Windows because [this static](https://github.com/rust-lang/rust/blob/a377893da2cd7124e5a18c7116cbb70e16dd5541/library/std/src/sys/windows/thread_local_key.rs#L234-L239) is getting duplicated, and Miri does not handle that properly -- Miri does not support this magic `.CRT$XLB` linker section, but instead just looks up this particular hard-coded static in the standard library. This PR lets the test suite use the std static instead of having its own copy.

Fixes rust-lang/miri#2754
r? `@thomcc`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant