rust/library/std/src
Yuki Okushi d98e174497
Rollup merge of #110946 - RalfJung:tls-realstd, r=m-ou-se
avoid duplicating TLS state between test std and realstd

This basically re-lands https://github.com/rust-lang/rust/pull/100201 and https://github.com/rust-lang/rust/pull/106638, which got reverted by https://github.com/rust-lang/rust/pull/110861. This works around 2 Miri limitations:
- Miri doesn't support the magic linker section that our Windows TLS support relies on, and instead knows where in std to find the symbol that stores the thread callback.
- For macOS, Miri only supports at most one destructor to be registered per thread.

The 2nd would not be very hard to fix (though the intended destructor order is unclear); the first would be a lot of work to fix. Neither of these is a problem for regular Rust code, but in the std test suite we have essentially 2 copies of the std code and then these both become issues. To avoid that we have the std test crate import the TLS code from the real std instead of having its own copy.

r? ``````@m-ou-se``````
2023-05-05 12:46:25 +09:00
..
backtrace Use implicit capture syntax in format_args 2022-03-10 10:23:40 -05:00
collections rm const traits in libcore 2023-04-16 06:49:27 +00:00
env std: move "mod tests/benches" to separate files 2020-08-31 02:56:59 +00:00
error remove fn backtrace 2022-08-01 20:10:40 +00:00
f32 Remove some cfg(not(bootstrap)) 2022-12-11 01:20:18 -05:00
f64 Remove some cfg(not(bootstrap)) 2022-12-11 01:20:18 -05:00
ffi remove some unneeded imports 2023-04-12 19:27:18 +02:00
fs Correctly convert an NT path to a Win32 path 2023-05-03 10:24:56 +01:00
io replace version placeholders 2023-04-28 08:47:55 -07:00
net Inline AsInner implementations 2023-05-01 13:25:09 +02:00
num rustc_expand: Mark inner #![test] attributes as soft-unstable 2020-11-20 19:35:03 +03:00
os Inline AsRawFd implementations 2023-05-01 13:28:19 +02:00
panic review: fix nits and move panic safety tests to the correct place 2020-09-25 23:10:24 +02:00
path make many std tests work in Miri 2022-08-18 18:07:39 -04:00
personality Define UNWIND_DATA_REG for loongarch64 2023-04-08 00:09:54 +08:00
prelude correct std::prelude comment 2023-04-27 15:56:57 +02:00
process Implement read_buf for a few more types 2023-03-06 12:24:15 +01:00
sync replace version placeholders 2023-04-28 08:47:55 -07:00
sys Rollup merge of #110946 - RalfJung:tls-realstd, r=m-ou-se 2023-05-05 12:46:25 +09:00
sys_common Rollup merge of #105695 - joboet:remove_generic_parker, r=m-ou-se 2023-05-03 16:42:48 -07:00
thread avoid duplicating TLS state between test std and realstd 2023-04-28 17:24:16 +02:00
time Fix non-associativity of Instant math on aarch64-apple-darwin targets 2022-11-13 12:01:42 -08:00
alloc.rs Revert "Remove #[alloc_error_handler] from the compiler and library" 2023-04-25 00:08:35 +02:00
ascii.rs Add the basic ascii::Char type 2023-05-03 22:09:33 -07:00
backtrace.rs Replace libstd, libcore, liballoc in docs. 2022-12-30 14:00:40 +01:00
env.rs Rollup merge of #109894 - fleetingbytes:109893-var_os-never-returns-an-error, r=cuviper 2023-04-11 20:28:46 -07:00
error.rs remove cfg(bootstrap) 2022-09-26 10:14:45 +02:00
f32.rs Cover edge cases for {f32, f64}.hypot() docs 2023-04-13 22:41:55 +01:00
f64.rs Cover edge cases for {f32, f64}.hypot() docs 2023-04-13 22:41:55 +01:00
fs.rs Inline AsInner implementations 2023-05-01 13:25:09 +02:00
keyword_docs.rs Spelling library/ 2023-04-26 02:10:22 -04:00
lib.rs Revert "Report allocation errors as panics" 2023-04-25 00:08:37 +02:00
macros.rs Add tidy check for dbg 2022-12-31 15:32:09 +05:30
num.rs Add Saturating type (based on Wrapping type) 2021-08-10 19:27:01 +02:00
panic.rs review 2023-03-17 21:00:10 -07:00
panicking.rs Revert "Report allocation errors as panics" 2023-04-25 00:08:37 +02:00
path.rs Rollup merge of #109540 - marcospb19:edit-Path-with_file_name-example, r=m-ou-se 2023-05-01 17:10:22 +02:00
personality.rs Move personality functions to std 2022-08-23 16:12:58 +08:00
primitive_docs.rs Mention array<->tuple convs in docs 2023-05-03 20:34:47 +00:00
process.rs Inline AsInner implementations 2023-05-01 13:25:09 +02:00
rt.rs Replace libstd, libcore, liballoc in line comments. 2022-12-30 14:00:42 +01:00
time.rs update wasi_clock_time_api ref. 2023-04-29 19:04:16 +08:00