Add x86_64-linux-android support
When rust add support for x86_64-linux-android, the tests may be run with:
`rustup target add x86_64-linux-android && bash ci/run-docker.sh x86_64-linux-android`.
Android x86_64 emulator does not work without hardware acceleration, so we are not able to run tests on travis.
- some tests are failing
- remove readlink, timegm and sig* functions in favor of the
unix/mod.rs definitions
- remove time64_t (it is not defined for aarch64)
- move some definitions to android/b32.rs and create appropriated
definitions in android/b64.rs
This helps caching between runs and can help speed up turnaround time for
various operations. The old android container didn't work out for some reason
due to permissions so the definition has now been vendored locally to just
rebuild it each time.
FreeBSD svn r262489 removed some *_MAXID definitions in sys/sysctl.h. They never
should've been used outside of the FreeBSD base system anyway. Mark them as
deprecated, hide them from the API docs, and disable their tests.
r273250 removed MAP_RENAME and MAP_NORESERVE, flags used by mmap(2), but old
binaries that use them will still work. Suppress their test errors.
r294930 changed stack_t.ss_sp from a char* to a void*. Suppress its test error.
Sadly, the sysinfo struct varies slightly between Musl and Glibc / Bionic.
This means that users need to be careful when using the uptime, and should
always cast it to a signed value. Why uptime can be signed is beyond me...
Removed CODE, as its definition and name varies too wildy and I
have no current code using it to test permutations with.
Moved LOG_NFACILITIES down, as Mac OS X defines this value
differently.
Added Mac OS X specific LOG_* facilities.
Added FreeBSD / DragonFly BSD specific LOG_* facilities.
Moved LOG_PERROR down, as all platforms bar Solaris define this.
Moved LOG_CRON down, as Solaris defines this with a different value.
Moved LOG_AUTHPRIV and LOG_FTP down, as all platforms bar Solaris
define these.
Looks like Solaris is suffering from the bit rot of commercial Unix...
As with `getrlimit` and `setrlimit`, the glibc wrappers have a non-`int`
for the `resource` argument, eg:
extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
const struct rlimit *__new_limit,
struct rlimit *__old_limit) __THROW;
Use now available link name "signal" instead of "bsd_signal"
On android, the `bsd_signal` is gone, the `signal` is available.
While this is the most obvious solution, I am not sure of a few things:
- How are we going to keep compatibility with older NDKs where `signal` does not exist;
- Was something dependent on this being different on android and thus would break (for example, the rust compiler uses this function, so it may break somewhere).
Fixes#236.
There are many constants defined by langinfo, but we have the
new types, locale_t and nl_item.
We also have several functions, not all of which exist for every
platform:
nl_langinfo
nl_langinfo_l
newlocale
duplocale
freelocale
uselocale
querylocale
It was updated recently, so the test is known to fail depending on the
libc version of the test environment.
Signed-off-by: NODA, Kai <nodakai@gmail.com>
The functions were added for Apple in #202. Adding them to other
platforms was pending an amendment to RFC 1291 to expand the scope of
libc to include libutil. The amendment was merged as
https://github.com/rust-lang/rfcs/pull/1529
See comments https://github.com/rust-lang/libc/pull/194.
Note on struct utsname: Neither using a constant, nor a conditional
macro seems to work, so I just created an ugly utsname with conditions
on each field. This should also fix the CI fallout. #[cfg] on macros
doesn't work?
As DragonFly only supports one platform, I merged x86_64.rs into
dragonfly/mod.rs.