Some of the type information in the machine context types, with
particular focus on the padding unions, was not quite right. It seems
we have used the somewhat baroque "long double" in the system headers,
and Rust does not have a type that matches that data layout. I have
adjusted the structs to omit that member, but to be explicitly aligned
to match the C version.
I also gagged a test for the "fp_reg_set" member which is of an
anonymous union type.
Portions contributed by: Patrick Mooney <pmooney@pfmooney.com>
The semver regression checks in #2109 included the "SO_REUSEPORT"
constant, which we do not yet have on illumos systems. Move it out to
platform-specific files.
The test suite flagged that incorrect values for some fcntl(2) constants
were added in #2083. I have fixed the values so that they are correct
for 64-bit programs, which Rust programs always are on illumos.
Add 400-series syscalls to musl riscv64 definitions
This PR adds 19 missing syscalls to the riscv64 musl definitions. The missing calls were copied directly from the riscv64 GNU definitions. The missing definitions (in particular `SYS_clone3`) are preventing compiling `std` for `riscv64gc-unknown-linux-musl`.
Gate PartialEq and Eq on freebsd objects behind extra_traits
This fixes the failure in https://github.com/rust-lang/rust/pull/93351#issuecomment-1024049582.
These derives were recently added in #2565. Other PartialEq/Eq derives in the project (and this file) are all behind the `extra_traits` gate.
ARMv6K Horizon OS support
Added support for the Horizon OS Nintendo 3DS system `Newlib` declarations.
Edit: after some changes, networking is now stable with standardized API.
Release 0.2.115 to crates.io.
Needed by https://github.com/rust-lang/rust/pull/93351.
Should have included this in my prior PR but hadn't finished reading CONTRIBUTING.md. Sorry for the extra traffic!
Define DT_UNKNOWN on Fuchsia.
It looks like this constant is relied on in the new `remove_dir_all` logic and we need to reference it to be able to use the CVE fix correctly on Fuchsia.
Define the `MFD_HUGE_*` macros for Linux and Android.
This defines the `MFD_HUGE_*` flags which can accompany the `MEMFD_HUGETLB`
flag in Linux's [`memfd_create`] call.
[`memfd_create`]: https://man7.org/linux/man-pages/man2/memfd_create.2.html
Consolodate the Linux `*_SUPER_MAGIC` constants.
Move the Linux `*_SUPER_MAGIC` constants out of
android/uclibc/gnu-specific directories and into the common `linux_like` directory
so that they're available on all Linux-family platforms, and so that that all
Linux-family platforms have all the constants.