Add TCGETS2 and TCSETS2 (and variants) ioctl constants for Linux.
I noticed that the `termios2` struct is already exposed, but the ioctl constants to use it are not. This PR adds the `TCGETS2`, `TCSETS2`, `TCSETSW2` and `TCSETSF2` on Linux so that you can actually do something with the `termios2` struct.
The `powerpc` architecture is notably missing, because it does not seem to support the `TCGETS2`/`TCSETS2` ioctls.
I *think* the constants are correct for all platforms, but I'm also not 100% sure. Do the unit tests verify the values for all supported platforms, by any chance?
The UAPI version of sched.h contains the newest flags that may not have
been added to the libc's sched.h yet (for example CLONE_PIDFD). It was
alreaded included by test_android(), but was missing from test_linux().
Add fexecve() to DragonFly
DragonFly 6.0 added support for `fexecve(2)`.
Implementing it with a mismatched signature from what C exposes, as outlined in #1272, for consistency with other platforms.
Tested with https://github.com/nix-rust/nix/pull/1577
Properly expose more constants on FreeBSD
The freebsd12 and freebsd13 modules should only be used for symbols that
_change_ in those versions, not for newly added symbols. Mostly they
should be used for versioned ELF symbols. It does no harm to publish
ordinary constants in the base FreeBSD module even if they weren't
defined in the lowest supported version of FreeBSD, but it does make it
much easier for consumers to use them.
The freebsd12 and freebsd13 modules should only be used for symbols that
_change_ in those versions, not for newly added symbols. Mostly they
should be used for versioned ELF symbols. It does no harm to publish
ordinary constants in the base FreeBSD module even if they weren't
defined in the lowest supported version of FreeBSD, but it does make it
much easier for consumers to use them.
uclibc: fix semver files, add misc symbols
This commit gets uclibc support working again, and fixes the semver lists to segregate gnu- and musl- specific symbols to those libc variants.
There is a [separate PR](https://github.com/rust-lang/rust/pull/88952) against rust itself to add armv7-unknown-linux-uclibceabihf as a tier 3 platform, and this commit is in support of that effort. Until that's done, we should not use the CI for that platform, but I'm including the CI file here in anticipation of turning it on in the not-too-distant future.