Commit graph

254163 commits

Author SHA1 Message Date
bors
82a8059755 Auto merge of #3562 - RalfJung:unsupported, r=RalfJung
only show the 'basic API common for this target' message when this is a missing foreign function

Follow-up to https://github.com/rust-lang/miri/pull/3558
2024-05-04 18:58:20 +00:00
Ralf Jung
cdf3f3c202 only show the 'basic API common for this target' message when this is a missing foreign function 2024-05-04 20:56:51 +02:00
bors
d0e77727b1 Auto merge of #3561 - RalfJung:rustup, r=RalfJung
Rustup
2024-05-04 17:36:03 +00:00
bors
7eda989cc9 Auto merge of #3557 - RalfJung:getaffinity, r=RalfJung
Move sched_getaffinity back to Linux

This reverts commit c1a3f8576ea12b0bed68ad3dedf4069ca3d9816f. The shim isn't actually useful for anything, and it is untested on FreeBSD. On Linux it exists solely because std and num_cpus are trying this before falling back to `sysconf`, but on FreeBSD that's not how they work, so there's no reason I can see to have this stub shim on FreeBSD.
2024-05-04 17:11:02 +00:00
Ralf Jung
a040df7e4e remove some dead code 2024-05-04 19:09:40 +02:00
Ralf Jung
c6e273cccd bless and fmt 2024-05-04 18:40:02 +02:00
Ralf Jung
0c989293ce Merge from rustc 2024-05-04 18:37:35 +02:00
Ralf Jung
adb74ae486 Preparing for merge from rustc 2024-05-04 18:37:23 +02:00
bors
c3f270174c Auto merge of #3560 - RalfJung:sync-check-id, r=RalfJung
sync: better error in invalid synchronization primitive ID

`@devnexen` this should fix the ICE in your PR (but it won't fix the code, it will just report proper UB instead).
2024-05-04 16:30:38 +00:00
Ralf Jung
9503c41ecc also test pthread_condattr_getclock 2024-05-04 18:28:37 +02:00
Ralf Jung
86d7dff0b8 factor some pthread offset into constants 2024-05-04 18:08:41 +02:00
Ralf Jung
98bb8acb5b sync: better error in invalid synchronization primitive ID 2024-05-04 17:52:50 +02:00
bors
37537d1485 Auto merge of #3559 - RalfJung:weak-extern-static, r=RalfJung
add helper function to declare an extern static for a weak symbol

and use it to make `statx` a regular function and get rid of the syscall
2024-05-04 13:22:53 +00:00
Ralf Jung
19aa8a021d make statx a regular function (so we don't need to support the syscall) 2024-05-04 15:21:08 +02:00
Ralf Jung
823e31d9fa add helper function to declare an extern static for a weak symbol 2024-05-04 14:42:58 +02:00
bors
d7ea27808d Auto merge of #124703 - matthiaskrgr:rollup-2lljptd, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #123356 (Reduce code size of `thread::set_current`)
 - #124159 (Move thread parking to `sys::sync`)
 - #124293 (Let miri and const eval execute intrinsics' fallback bodies)
 - #124677 (Set non-leaf frame pointers on Fuchsia targets)
 - #124692 (We do not coerce `&mut &mut T -> *mut mut T`)
 - #124698 (Rewrite `rustdoc-determinism` test in Rust)
 - #124700 (Remove an unnecessary cast)
 - #124701 (Docs: suggest `uN::checked_sub` instead of check-then-unchecked)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-04 12:41:40 +00:00
bors
3a6faee1e2 Auto merge of #3554 - RalfJung:freebsd, r=RalfJung
document unofficially supported OSes

Also tweak the freeBSD testing a bit.
2024-05-04 12:33:22 +00:00
bors
fd15dc391b Auto merge of #3558 - RalfJung:unsupported, r=RalfJung
update 'unsupported' message

Instead of "the interpreter", just say Miri.

Also be a more more clear about what is expected to be supported and what not (Cc https://github.com/rust-lang/miri/issues/2325).
2024-05-04 12:07:24 +00:00
Ralf Jung
05e7850d7a make some tests not need output (so they work on wasm) 2024-05-04 14:07:17 +02:00
Ralf Jung
38598e68c5 document unofficially supported OSes 2024-05-04 14:07:17 +02:00
Ralf Jung
6df585ade5 freebsd: test std threadname and fs APIs
also reorder foreign_items to fix the grouping, and reorder the tests_minimal invocations to be more consistent
2024-05-04 14:07:17 +02:00
Ralf Jung
8b4b259da2 update 'unsupported' message 2024-05-04 13:45:54 +02:00
Ralf Jung
e1c3d67d21 Revert "moving out sched_getaffinity interception from linux'shim, FreeBSD supporting it too."
This reverts commit c1a3f8576ea12b0bed68ad3dedf4069ca3d9816f.
2024-05-04 13:36:39 +02:00
bors
49cd705189 Auto merge of #3552 - RalfJung:ci, r=RalfJung
even out CI runner times
2024-05-04 11:18:42 +00:00
bors
9d4eea1369 Auto merge of #3556 - RalfJung:intrinsics, r=RalfJung
move intrinsics tests into dedicated folder

And separate them from "shims" (which are for extern functions we link against).
2024-05-04 10:48:35 +00:00
Ralf Jung
52bf84f3cf move some minimal targets over to the macOS runner, to even out CI times 2024-05-04 12:43:48 +02:00
Ralf Jung
a4355bbbb1 fix grouping of target-specific LLVM shims 2024-05-04 12:39:37 +02:00
Matthias Krüger
5f4f4fbb98
Rollup merge of #124701 - scottmcm:unchecked_sub_docs, r=Nilstrieb
Docs: suggest `uN::checked_sub` instead of check-then-unchecked

As of #124114 it's exactly the same in codegen, so might as well not use `unsafe`.

Note that this is only for *unsigned*, since the overflow conditions for `iN::checked_sub` are more complicated.
2024-05-04 12:37:24 +02:00
Matthias Krüger
770567101c
Rollup merge of #124700 - scottmcm:unneeded_cast, r=Nilstrieb
Remove an unnecessary cast

Very minor thing, obviously, but I randomly saw this unnecessary cast showing up in the UbChecks, so might as well get rid of it.
2024-05-04 12:37:24 +02:00
Matthias Krüger
b8711373cd
Rollup merge of #124698 - JoverZhang:test-rustdoc-determinism, r=jieyouxu
Rewrite `rustdoc-determinism` test in Rust

Rewrite the `rustdoc-determinism` test from #121876.

r? `@jieyouxu`
2024-05-04 12:37:23 +02:00
Matthias Krüger
b0715b4e57
Rollup merge of #124692 - workingjubilee:document-no-double-pointer-coercion-happens, r=compiler-errors
We do not coerce `&mut &mut T -> *mut mut T`

Resolves #34117 by declaring it to be "working as intended" until someone RFCs it or whatever other lang proposal would be required. It seems a bit of a footgun, but perhaps there are strong reasons to allow it anyways. Seeing as how I often have to be mindful to not allow a pointer to coerce the wrong way in my FFI work, I am inclined to think not, but perhaps it's fine in some use-case and that's actually more common?
2024-05-04 12:37:23 +02:00
Matthias Krüger
81b43b759c
Rollup merge of #124677 - djkoloski:set_fuchsia_frame_pointer, r=tmandry
Set non-leaf frame pointers on Fuchsia targets

This is part of our work to enable shadow call stack sanitization on Fuchsia, see [this Fuchsia issue](https://g-issues.fuchsia.dev/issues/327643884).

r? ``@tmandry``
2024-05-04 12:37:22 +02:00
Matthias Krüger
ceb7b5e70e
Rollup merge of #124293 - oli-obk:miri_intrinsic_fallback_body, r=RalfJung
Let miri and const eval execute intrinsics' fallback bodies

fixes https://github.com/rust-lang/miri/issues/3397

r? ``@RalfJung``
2024-05-04 12:37:22 +02:00
Matthias Krüger
cc51f91455
Rollup merge of #124159 - joboet:move_pal_thread_parking, r=ChrisDenton
Move thread parking to `sys::sync`

Part of #117276.

I'll leave the platform-specific API abstractions in `sys::pal`, as per the initial proposal. I'm not entirely sure whether we'll want to keep it that way, but that remains to be seen.

r? ``@ChrisDenton`` (if you have time)
2024-05-04 12:37:21 +02:00
Matthias Krüger
b8fa047398
Rollup merge of #123356 - joboet:set_current_size, r=ChrisDenton
Reduce code size of `thread::set_current`

#123265 introduced a rather large binary size regression, because it added an `unwrap()` call on a `Result<(), Thread>`, which in turn pulled its rather heavy `Debug` implementation. This PR fixes this by readding the `rtassert!` that was removed.
2024-05-04 12:37:20 +02:00
Ralf Jung
3046dbe7de move intrinsics implementations and tests into dedicated folder
and make them separate from 'shims'
2024-05-04 12:34:42 +02:00
bors
7dd170fccb Auto merge of #124345 - Urgau:compiletest-check-cfg, r=jieyouxu
Enable `--check-cfg` by default in UI tests

This PR enables-by-default `--check-cfg` in UI tests, now that it has become stable.

To do so this PR does 2 main things:
 - it introduce the `no-auto-check-cfg` directive to `compiletest`, to prevent any `--check-cfg` args (only to be used for `--check-cfg` tests)
 - it updates the _remaining_[^1] UI tests by either:
     - allowing the lint when neither expecting the lint nor giving the check-cfg args make sense
     - give the appropriate check-cfg args
     - or expect the lint, when it useful

[^1]: some preparation work was done in #123577 #123702

I highly recommend reviewing this PR commit-by-commit.

r? `@jieyouxu`
2024-05-04 10:31:49 +00:00
Ralf Jung
57ff16bb5f rename integer test 2024-05-04 12:30:52 +02:00
Ralf Jung
be874a468b move available-parallelism tests into shims/ folder 2024-05-04 12:01:18 +02:00
bors
7b57f122b9 Auto merge of #3533 - Luv-Ray:file-descriptors-to-refcount-references, r=RalfJung
Make file descriptors into refcount references

fixes #3525

Remove `fn dup` in `trait FileDescription`, define `struct FileDescriptor(Rc<RefCell<dyn FileDescription>>)`, and use `BTreeMap<i32, FileDescriptor>` in `FdTable`.

---

There are some refactors similar to the following form:
```rust
{  // origin:
    if let Some(file_descriptor) = this.machine.fds.get_mut(fd) {
        // write file_descriptor
        this.try_unwrap_io_result(result)
    } else {
        this.fd_not_found()
    }
}
{  // now:
    let Some(mut file_descriptor) = this.machine.fds.get_mut(fd) else {
        return this.fd_not_found();
    };
    // write file_descriptor
    drop(file_descriptor);
    this.try_unwrap_io_result(result)
}
```
The origin form can't compile because as using `RefCell` to get interior mutability, `fn get_mut` return `Option<std::cell::RefMut<'_, dyn FileDescription>>` instead of `Option<&mut dyn FileDescription>` now, and the `deref_mut` on `file_descriptor: RefMut` will cause borrow `this` as mutable more than once at a time.
So this form of refactors and manual drops are are implemented to avoid borrowing `this` at the same time.
2024-05-04 09:52:39 +00:00
Ralf Jung
502ed4965f show time taken in run_tests_minimal 2024-05-04 11:46:52 +02:00
Ralf Jung
d130eaac1f speed up Windows runner: don't run GC_STRESS test 2024-05-04 11:46:52 +02:00
Urgau
d4e26fbb53 compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
Urgau
517374150c compiletest: add no-auto-check-cfg directive
this directive prevents compiletest from adding any implicit and
automatic --check-cfg arguments
2024-05-04 11:30:38 +02:00
Urgau
ed81578820 tests/ui: prepare some tests for --check-cfg by default 2024-05-04 11:30:38 +02:00
Luv-Ray
459c6ce944 Make file descriptors into refcount references
take ownership of self and return `io::Result<()>` in `FileDescription::close`

Co-authored-by: Ralf Jung <post@ralfj.de>
2024-05-04 17:24:18 +08:00
bors
705d48cff9 Auto merge of #3551 - RalfJung:getentropy, r=RalfJung
macos: use getentropy from libc

This has been added in the mean time.
2024-05-04 09:20:04 +00:00
Ralf Jung
07a517a6ba macos: use getentropy from libc 2024-05-04 10:52:25 +02:00
bors
82456b4ce3 Auto merge of #3550 - RalfJung:unix-tls, r=RalfJung
tls dtors: treat all unixes uniformly
2024-05-04 08:50:21 +00:00
Ralf Jung
6559342058 tls dtors: treat all unixes uniformly 2024-05-04 10:45:54 +02:00