several illumos fixes, and some additional termios constants
I wanted to add some of the new baud rate constants that [we added recently](https://www.illumos.org/issues/13975). On the way there, I had to make a variety of fixes to get the tests to pass on illumos systems.
We added baud rate constants that are source compatible with Linux
systems when used with the cfsetspeed() family, in:
https://www.illumos.org/issues/13975
Various small fixes to the tests to include all the required headers,
and to add some constants that are now part of the "unix" semver list,
and to drop "sethostid()" which is not something we have on our
platform, etc.
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.