Add SCHED constants for OpenBSD.
The constants are defined for improving the user experience when calling
the libc functions related to scheduling policies. Also helps with
unifiying the code as all these constants are already defined for other
operating systems.
Add pthread_set/get schedparam functions to FreeBSD.
FreeBSD has these functions and this provides an interface to use them.
In particular, the [`thread-priority`](https://github.com/vityafx/thread-priority/runs/5881232298) crate can't be built without those.
Remove use of `feature(static_nobundle)`
It's used in "rustc-dep-of-std" mode and prevents removal of this feature from rustc.
(No need to publish a new libc version right now, the rustc PR is still waiting on some other work being finished.)
Disable broken CI jobs
These are temporarily removed until someone comes to fix them.
The semver jobs have been broken for over a year now, but are ignored by bors. Now we just disable them completely since they cause confusion when reading the build logs.
The uclibc targets were recently broken by https://github.com/rust-lang/rust/pull/95688. They are missing a `si_addr()` function on `struct siginfo`.
The constants are defined for improving the user experience when calling
the libc functions related to scheduling policies. Also helps with
unifiying the code as all these constants are already defined for other
operating systems.
Two improvements of the latest i128 numbers change
Two improvements of #2719:
* First, a typo/grammar fix
* Second, a fix to avoid usage of the anti pattern of `==` inside an `assert` macro. Since a few releases, `assert` is usable inside `const` expressions, but for the purpose of `==`, superior alternatives exist that also work at compile time but print the two values at a mismatch. `assert_eq` is not yet usable in const contexts due to formatting.
This macro bases on the static_assert_size macro from the rust compiler.
Its advantage is greater compatibility with older rust versions as well
as better error messages on a mismatch, as both numbers are printed.
The assert macro does not print the mismatching numbers as it only gets
the bool from the == comparison.
This adds the following types to fixed_width_ints behind appropriate platform cfgs:
* __int128
* __int128_t
* __uint128
* __uint128_t
and user_fpsimd_struct to arm64 android and linux.
Horizon OS Nintendo 3DS - Fixed size of sockaddr_in
The original API for the platform included these zeroed bytes at the end of the `sockaddr_in` struct, but the socket address calls (like `getsockname`) only write 8 bytes inside `sockaddr_storage`, making checks like the one in 95561b336c/library/std/src/sys_common/net.rs (L109) faulty.
Since `sockaddr_in` is a struct *not* used in internal functionality, it shouldn't be a problem to just get rid of them.
Horizon (Nintendo 3DS) getrandom function and fixes
This PR adds `getrandom`, conforming to the [Linux spec](https://man7.org/linux/man-pages/man2/getrandom.2.html), to the `horizon` OS (Nintendo 3DS).
The 3DS doesn't have a full libc implementation, and its randomness API is pretty complicated: https://github.com/rust-random/getrandom/pull/248. For this reason (see the linked PR for more details), the randomness implementation is abstracted by using the Linux `getrandom` interface.
This PR also fixes some types on the horizon platform. See the commits and diff.
cc: `@ian-h-chamberlain` `@Meziu`