| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fix: CMSG_HEADER_ALIGNMENT was not properly equal to the C Header file in illumos
A small fix for illumos so we can add more archs to the definition. This aligns the defintions in libc with the corresponding C Headers.
I ran all the steps it asked me and only got an issue with `cc1: note: unrecognized command-line option '-Wno-unknown-warning-option' may have been intended to silence earlier diagnostics` although that seems to me like I am using a different gcc that CI.
This is part of the ARM work goin on at the moment.
CC: `@richlowe` and `@jclulow` for coordination.
|
| |
| |
| |
| |
| |
| | |
illumos
Signed-off-by: Till Wegmueller <toasterson@gmail.com>
|
|/
|
|
|
|
|
|
| |
- And a definition for `RLIM64_INFINITY` on linux_like platforms.
- Declare the `sync` function on Android and solarish.
- Solaris: https://docs.oracle.com/cd/E26502_01/html/E29032/sync-2.html
- Illumos: https://illumos.org/man/2/sync
- Enable `FICLONE` and `FICLONERANGE` on more architectures.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Solaris (and any other platform that supports it), the `getrandom(2)`
syscall has signature:
```rust
fn getrandom(buf: *mut c_void, buflen: size_t, flags: c_uint) -> ssize_t;
```
so the flag constants (`GRND_NONBLOCK`, `GRND_RANDOM`, etc...) should be
of type `c_uint`.
I'm not sure if this sort of "bug fix" counts as a breaking change.
Signed-off-by: Joe Richey <joerichey@google.com>
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
r=JohnTitor
fix wrong definitions of getpwent_r and getgrent_r on solarish os
Closes #2908
* [man page for `getpwent_r`](https://illumos.org/man/3C/getpwnam)
* [man page for `getgrent_r`](https://illumos.org/man/3C/getgrnam)
You may find the definitions for `getpwnam_r/getpwuid_r/getgrnam_r/getgruid_r` exposed by `libc` are also wrong:
```c
struct passwd *getpwnam_r(const char *name, struct passwd *pwd,
char *buffer, int buflen);
```
```rust
pub fn getpwnam_r(
name: *const ::c_char,
pwd: *mut passwd,
buf: *mut ::c_cha
buflen: ::size_t,
result: *mut *mut passwd,
) -> ::c_int;
```
But actually they are **correct** as there are the POSIX-conforming definitions (see `Standard conforming` section of above man pages):
```
Standard conforming
cc [ flag...] file... -D_POSIX_PTHREAD_SEMANTICS [ library... ]
int getpwnam_r(const char *name, struct passwd *pwd, char *buffer,
size_t bufsize, struct passwd **result);
int getpwuid_r(uid_t uid, struct passwd *pwd, char *buffer,
size_t bufsize, struct passwd **result);
```
`getpwent_r/getgrent_r` don't get lucky, they do not have the POSIX-conforming alternatives.
To double check this, I searched its [source code](https://github.com/illumos/illumos-gate/blob/master/usr/src/lib/libc/port/gen/getpwnam_r.c):
```shell
$ rg "__posix_getpwnam_r"
port/mapfile-vers
1582: __posix_getpwnam_r;
port/gen/getpwnam_r.c
152:__posix_getpwnam_r(const char *name, struct passwd *pwd, char *buffer,
$ rg "__posix_getpwent_r"
$
```
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | | |
illumos: Remove obsolete (and private) a.out define
This cleans up an obsolete definition which [has been removed](https://github.com/illumos/illumos-gate/commit/fec047081731fd77caf46ec0471c501b2cb33894#diff-33b9ac79706b16f65c95e909fde32771b388f896bee74a006d13fefdf877fe91L163) in upstream illumos, and thus is causing libc-test to fail on up-to-date machines.
|
| | | |
|
|/ / |
|
| | |
|
|\ \
| |/
|/|
| | |
solarish amd64 regset constants
|
| | |
|
|/ |
|
|\
| |
| |
| | |
Solaris TCP_KEEPINTVL and TCP_KEEPCNT have wrong values
|
| | |
|
|\ \
| | |
| | |
| | | |
fcntl F_DUPFD_CLOEXEC has different values on Solaris and Illumos
|
| |/ |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| | |
illumos add few fcntl consts
|
| | |
|
| |
| |
| |
| |
| |
| | |
This will bring illumos (and Solaris) functionality in line with the
other UNIX (and UNIX-like) platforms, where unions often hamper access
to those data fields.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
As per https://illumos.org/man/3EXT/sendfile a separate header and
library are required to access sendfile() and sendfilev() on illumos
systems.
|
|
|
|
|
|
| |
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.
|
| |
|
|\
| |
| |
| | |
illumos SOL_FILTER socket option.
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|