Commit Graph

577 Commits

Author SHA1 Message Date
gnzlbg 2543b7c8ed bump kernel headers to 4.4.2-2 2019-05-27 22:23:02 +02:00
gnzlbg 1cbc523e50 [breaking change] MADV_SOFT_OFFLINE is undefined on MIPS 2019-05-27 22:23:02 +02:00
gnzlbg 8f403e5ac2 Update MUSL Linux kernel headers and re-enable Linux tests 2019-05-27 22:23:02 +02:00
gnzlbg 7437d0a6f1 Add a FreeBSD 12 build job and test FreeBSD12 APIs
This commits adds a second FreeBSD 12 build job,
and splits the implementation of the FreeBSD module
into two modules, one for FreeBSD 11, and one for FreeBSD 12.

The FreeBSD 11 module is compiled always by default, and is
mostly forward compatible with FreeBSD 12 systems.

The FreeBSD 12 module is only built for now in libc's CI,
and uses FreeBSD 12 data types and APIs, linking to symbols
that are only available in FreeBSD 12.

Basically, when LIBC_CI env variable is defined, and the host
system is a FreeBSD 12 system, then the FreeBSD 12 module is
automatically built and tested. Conditional compilation is done
using a `cfg(freebsd12)` flag.

This commit also re-enables many tests, and documents why
some remain disabled.
2019-05-24 20:04:17 +02:00
gnzlbg 4ac26afa83 Deprecate `use_std` cargo feature: use `std` instead .
Related to #657 .
2019-05-24 13:22:03 +02:00
bors f775bea997 Auto merge of #1344 - gnzlbg:fix_android_bj, r=gnzlbg
Fix Android build jobs
2019-05-23 18:12:55 +00:00
gnzlbg ccad8b426c Fix musl build jobs 2019-05-23 19:09:39 +02:00
gnzlbg 7f8b946cc2 Document what is wrong with sighandler_t 2019-05-23 16:31:05 +02:00
gnzlbg 3efe23b1c0 Enable more tests on Android 2019-05-23 16:30:51 +02:00
gnzlbg 30c853f59f [breaking change] remove __progname 2019-05-23 16:30:51 +02:00
gnzlbg 8c70f498f2 Enable more tests (some related to issue 1272) on Android 2019-05-23 16:30:36 +02:00
gnzlbg d52732581a Test strerror_r on Android and Linux 2019-05-23 16:29:28 +02:00
gnzlbg 003c04d952 [breaking change] fix types of stat/stat64 structs, atime/mtime/ctime fields on Android 2019-05-23 16:29:28 +02:00
gnzlbg 4774fc1c9f Deprecate ENOATTR on Linux and Android 2019-05-23 16:29:28 +02:00
gnzlbg eea0102308 Enable more tests on Android 2019-05-23 16:29:08 +02:00
bors d14bbca96b Auto merge of #1351 - jbaublitz:nl_consts_pr, r=gnzlbg
Netlink constants for use with the route netlink subsystem

Reopening a PR to close #1059. I'll be adding a few more constants but want to make sure CI works on Github first.
2019-05-22 19:30:03 +00:00
gnzlbg 7b45788a01 Refactor OpenBSD-like module into OpenBSD 2019-05-22 14:20:13 +02:00
gnzlbg 759c837611 [breaking change] incorrect API of gettimeofday
The second argument of `gettimeofday` was a `*mut c_void` on all targets,
but that type is incorrect in the following targets, where it should be
a `*mut timezone` instead:

On these other targets it appears that the signature of gettimeofday was incorrect (it takes a time-zone pointer instead of a void pointer):

linux+gnu: http://man7.org/linux/man-pages/man2/gettimeofday.2.html
freebsd: https://www.freebsd.org/cgi/man.cgi?query=gettimeofday&apropos=0&sektion=2&manpath=FreeBSD+11.2-stable&arch=default&format=html
openbsd: https://man.openbsd.org/gettimeofday.2
android: https://github.com/ricardoquesada/android-ndk/blob/master/usr/include/sys/time.h
dragonfly: https://www.dragonflybsd.org/cgi/web-man?command=gettimeofday&section=2

This commit corrects the type on these targets, which is a breaking change. Due
to how this API is commonly used (e.g. passing `ptr::null_mut` to the second
argument), breakage should be minimal. Users wanting to support both versions
can just write `ptr as *mut _` instead.

Closes #1338.
2019-05-22 10:39:06 +02:00
John Baublitz f70a98773c Fix builds by adding trailing commas 2019-05-21 13:18:22 -04:00
John Baublitz e39ed74cd9 Fix builds by including linux/rtnetlink.h and linux/if_addr.h 2019-05-21 10:14:24 -04:00
bors 6bc42d40e5 Auto merge of #1342 - sunfishcode:master, r=gnzlbg
Update to the latest wasi-sysroot.

 - Rename `wasm32-unknown-wasi` to `wasm32-wasi`.
 - `__wasilibc_rmfileat` was renamed to `__wasilibc_unlinkat`
 - Add bindings for a few more functions and typedefs.
2019-05-16 21:51:36 +00:00
Linus Färnstrand 72463fc155 Add futex.h to test 2019-05-16 20:40:18 +02:00
Dan Gohman 215cd1549e Update to the latest wasi-sysroot.
- Rename `wasm32-unknown-wasi` to `wasm32-wasi`.
 - `__wasilibc_rmfileat` was renamed to `__wasilibc_unlinkat`
 - Add bindings for a few more functions and typedefs.
2019-05-16 06:40:50 -07:00
gnzlbg 9183c00f7e Remove unecessarily disabling a warning on FreeBSD 2019-05-16 11:03:12 +02:00
gnzlbg 9df115b67f Update Ubuntu images to 19.04 2019-05-16 09:15:12 +02:00
gnzlbg 1a7ee21aec Define DEPRECATED_SCANF macro to use older scanf,sscanf,fscanf symbols 2019-05-16 09:15:12 +02:00
gnzlbg 4aa5a45af1 Correct assert for mips+musl 2019-05-16 09:15:12 +02:00
gnzlbg be36f6859b execinfo not available in emscripten 2019-05-16 09:15:12 +02:00
gnzlbg bf76ded067 Test the Elf32/64 types sperately
These types have a p_types field, but the resolv.h
header defines p_types __p_types macro that breaks them.
2019-05-16 09:15:11 +02:00
gnzlbg f67f831aad readd netfilter headers 2019-05-16 09:15:11 +02:00
gnzlbg 352ee1c37d Include Linux headers after sys headers 2019-05-16 09:15:11 +02:00
gnzlbg cb3a9db378 Include aio.h as the last header 2019-05-16 09:15:11 +02:00
gnzlbg 54fcb89354 Add missing sysctl header to freebsd tests 2019-05-16 09:15:11 +02:00
gnzlbg 9da2fd5ace Add missing utmpx.h header to freebsd tests 2019-05-16 09:15:11 +02:00
gnzlbg dc7311bec7 Include aio.h before sys/mount.h on linux 2019-05-16 09:15:11 +02:00
gnzlbg 426f91bd25 Fix typo in Linux checking 2019-05-16 09:15:11 +02:00
gnzlbg bb2f29641a Add missing netinet/ip.h header 2019-05-16 09:15:11 +02:00
gnzlbg 0f96e543b1 Remove conflicting linux/netfilter_ipv6.h header file due to conflicting definitions 2019-05-16 09:15:11 +02:00
gnzlbg bee2611368 Remove conflicting linux/netfilter_ipv4.h header file due to conflicting definitions 2019-05-16 09:15:11 +02:00
gnzlbg 3956bf056b Skip verification of gettimeofday on FreeBSD 2019-05-16 09:15:11 +02:00
gnzlbg ac90c574e5 Refactor Linux target 2019-05-14 12:00:45 +02:00
gnzlbg b976dc2055 Refactor FreeBSD target 2019-05-14 12:00:45 +02:00
gnzlbg 3c2284c435 Remove OpenBSD-related dead-code 2019-05-14 12:00:45 +02:00
gnzlbg 0af80cae53 Refactor Android target 2019-05-14 10:06:23 +02:00
Dan Gohman ef7ae73239 Fix dirent to match WASI libc's definition.
dirent contains a flexible array member, so don't test its sizeof, don't
allow it to be copied, and don't represent it with an artificial size.
2019-04-23 15:03:23 -07:00
Dan Gohman 49c0dc98d0 Don't add "struct" to "DIR" or "fd_set". 2019-04-23 15:03:23 -07:00
Dan Gohman 3aa0188f1d Add headers for WASI to libc-test/build.rs 2019-04-23 15:03:23 -07:00
bors 363ba93ac4 Auto merge of #1314 - alexcrichton:wasi-ci, r=gnzlbg
Add binding for new `__wasilibc_find_relpath` API

This'll be used in libstd upstream, and this also enables wasi on CI!
2019-04-08 16:01:57 +00:00
Alex Crichton cc0310146e Add binding for new `__wasilibc_find_relpath` API
Added recently and will be used in libstd!
2019-04-08 07:56:47 -07:00
Kevin Kuehler 03481551dd
add login_tty api from libutil 2019-04-05 14:26:08 -07:00
Alex Crichton 8662b47b27 Address some PR feedback 2019-03-27 11:21:44 -07:00
Alex Crichton 87def1fb80 Add intiial support for wasm32-unknown-wasi
This target is [being proposed][LINK] int he rust-lang/rust repository
and this is intended to get coupled with that proposal. The definitions
here all match the upstream reference-sysroot definitions and the
functions all match the reference sysroot as well. The linkage here is
described more in detail on the Rust PR itself, but in general it's
similar to musl.

Automatic verification has been implemented in the same manner as other
targets, and it's been used locally to develop this PR and catch errors
in the bindings already written (also to help match the evolving sysroot
of wasi). The verification isn't hooked up to CI yet though because
there is no wasi target distributed via rustup just yet, but once that's
done I'll file a follow-up PR to execute verification on CI.

[LINK]:
2019-03-27 09:24:48 -07:00
gnzlbg 0a9511eb21 Move inotify_event to the linux and android sub-modules 2019-03-25 19:43:58 +01:00
Sébastien Marie 917ff60a4b adjust PTHREAD_STACK_MIN to current value on OpenBSD
while here, generate the right file in test_openbsd()
2019-03-02 13:14:17 +01:00
bors b905aef340 Auto merge of #1281 - semarie:openbsd-test, r=gnzlbg
cleanup libc-test for OpenBSD

here a cleanup for libc-test for OpenBSD

Some elements (compat for old and now unsupported OpenBSD versions) could be removed, but I think it is better to address them after this PR is merged.

the testsuite for OpenBSD still pass with it (well, with #1280)

r? @gnzlbg
2019-02-24 17:27:39 +00:00
Sébastien Marie 91748de469 cleanup libc-test for OpenBSD 2019-02-24 15:47:06 +01:00
gnzlbg 722b3e5337 Formatting 2019-02-24 15:14:02 +01:00
gnzlbg 70e0c4e877 Cleanup DragonflyBSD in libc-test/build.rs 2019-02-24 15:13:47 +01:00
gnzlbg 87f10ab9ee Cleanup NetBSD logic in libc-test/build.rs 2019-02-24 15:02:08 +01:00
gnzlbg 09afebe655 Clean up Redox, Solaris, and CloudABI 2019-02-24 14:38:01 +01:00
gnzlbg 0980cf593a Cleanup Windows libc-test build.rs 2019-02-24 13:11:14 +01:00
gnzlbg f5cbdbc2b9 Clean libc-test for apple targets
This cleans up the build.rs of `libc-test` for apple targets.

I wanted to update the docker containers of some targets so that we can start
testing newer currently-skipped APIs properly, but it is impossible to figure
out which headers and APIs are skipped for each target.

This PR separates the testing of apple targets into its own self-contained
function. This allows seeing exactly which headers are included, and which items
are skipped. A lot of work will be required to separate the testing of all major
platforms and make the script reasonable.

During the clean up, I discovered that, at least for apple targets, deprecated
but not removed APIs are not tested. I re-enabled testing for those, and fixed
`daemon`, which was not properly linking its symbol. I also added the
`#[deprecated]` attribute to the `#[deprecated]` APIs of the apple targets. The
attribute is available since Rust 1.9.0 and the min. Rust version we support is
Rust 1.13.0.

Many other APIs are also currently not tested "because they are weird" which I
interpret as "the test failed for an unknown reason", as a consequence:

* the signatures of execv, execve, and execvp are incorrect (see
  https://github.com/rust-lang/libc/issues/1272)

* the `sig_t` type is called `sighandler_t` in libc for some reason:
  https://github.com/rust-lang/libc/issues/1273

This probably explains why some other things, like the
`sa_handler`/`sa_sigaction` fields of `sigaction` were skipped. The field is
actually a union, which can be either a `sig_t` for the `sa_handler` field, or
some other type for the `sa_sigaction` field, but because the distinction was
not made, the field was not checked.

The latest ctest version can check volatile pointers, so a couple of skipped
tests are now tested using this feature.
2019-02-22 19:18:02 +01:00
bors 577fdc86b2 Auto merge of #1248 - Ralith:flowinfo, r=gnzlbg
Expose IPV6_FLOWINFO* on Linux
2019-02-21 09:21:11 +00:00
bors c2904a70fa Auto merge of #1261 - glebpom:master, r=gnzlbg
Add AF_ALG constants and structures
2019-02-20 08:43:11 +00:00
Gleb Pomykalov 34c96d74e1 Add comment on ALG_SET_AEAD_* exclusion 2019-02-19 18:14:01 +03:00
Gleb Pomykalov d0f4c6e0fc Ignore ALG_SET_AEAD_* constants on MUSL tests 2019-02-19 16:35:25 +03:00
bors 0e1fbe33e9 Auto merge of #1257 - vi:ORIGDSTADDR, r=gnzlbg
Add IP_ORIGDSTADDR and others on FreeBSD.

A follow-up from #1252.

CC @asomers.

r? @gnzlbg
2019-02-18 16:00:56 +00:00
Gleb Pomykalov 32226f5d85 Include if_alg.h. Limit AF_ALG constants to only linux and android. 2019-02-18 18:19:29 +03:00
Vitaly _Vi Shukela 486de2ba2b
Ignore IP_ORIGDSTADDR in test for FreeBSD for now. 2019-02-14 02:37:01 +03:00
gnzlbg c1e0a3f3b1 Always use the latest ctest 2019-02-12 18:34:56 +01:00
Benjamin Saunders b59eb6b423 Expose IPV6_FLOW* on Linux 2019-02-08 12:50:25 -08:00
gnzlbg 0a5484ea72 Check style using rustfmt and reformat 2019-02-07 11:13:38 +01:00
Alan Somers 38cf5b15c6 Add an integration test for the cmsg(3) functions.
Since these are defined in C as macros, they must be reimplemented in
libc as Rust functions.  They're hard to get exactly right, and they
vary from platform to platform.  The test builds custom C code that uses
the real macros, and compares its output to the Rust versions' output
for various inputs.

Skip the CMSG_NXTHDR test on sparc64 linux because it hits a Bus Error.

Issue #1239

Skip the entire cmsg test program on s390x because it dumps core
seemingly before the kernel finishes booting.

Issue #1240
2019-02-05 08:26:17 -07:00
bors 942f6ae707 Auto merge of #1217 - Susurrus:rfc_2235, r=gnzlbg
RFC 2235 - Implement PartialEq,Eq,Hash,Debug for all types

First pass at implementing [RFC2235](https://github.com/rust-lang/rfcs/blob/master/text/2235-libc-struct-traits.md). I just started with `PartialEq`/`Eq` and tested locally on my x64 Linux system. Definitely going to run into other types for other platforms that need this treatment, but thought I'd start small.

Open question is whether this should also rely on the `align` feature, which should improve which types can be auto-derived versus manually implemented (as it removed a lot of odd-sized padding arrays). My first pass here doesn't do that, but I might test it out to see if it does simplify quite a few structs. I think it might also be nice to have as it makes it easier for contributors to add new structs.

Part of rust-lang/rust#57715
2019-02-05 07:38:45 +00:00
Vincent Dagonneau dfb7c0caba Added the proper libc header to libc-test; Removed some defines as they seem to be too new. 2019-02-04 09:11:21 +01:00
Bryant Mairs 868a85d05d Implement PartialEq,Eq for all types 2019-02-02 13:06:58 -08:00
Vincent Dagonneau da27966859 Fixed typo; Added inotify headers to the libc-test. 2019-01-28 20:56:15 +01:00
Vincent Dagonneau eb3e48c62f Added inotify headers to the libc-test. 2019-01-28 19:41:29 +01:00
gnzlbg 5a7b4e7796 MFD_HUGETLB does not appear to be available on x86_64-android 2019-01-21 20:34:43 +01:00
Sébastien Marie 1451f19067 mincore has been removed from OpenBSD 6.5 2019-01-13 09:06:05 +01:00
Alex Zepeda 5a3a0c2a95 Remove sys/ioctl_compat.h from DragonFlyBSD tests.
Per the mailing list[1], sys/ioctl_compat.h has been removed.

1: http://lists.dragonflybsd.org/pipermail/commits/2018-April/672079.html
2019-01-03 21:09:15 -08:00
Mackenzie Clark af19934f29 normalize to common name sighandler_t 2018-12-17 19:31:31 -08:00
Mackenzie Clark 4c32b9f4b9 move everything back into window mod with the type alias for msvc 2018-12-17 17:57:37 -08:00
Mackenzie Clark 2f25aaa235 add edge case for mingw 2018-12-17 17:24:37 -08:00
Mackenzie Clark 313483ba2e add signal and raise bindings
separate for gnu and msvc


scope resolve c_int

these types are not allowed, and more scope resolution


use size_t
2018-12-16 16:23:53 -08:00
Tobias Klauser df277e295b Add MFD_HUGETLB const for linux
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2018-12-13 13:27:00 +01:00
Craig M. Brandenburg 6d22f54440 Add support for SysV semaphores on Apple platform 2018-12-08 06:50:19 -07:00
Tobias Klauser cc22997fd2 Add AF_XDP, PF_XDP and SOL_XDP consts for linux 2018-12-04 21:04:13 +01:00
dependabot[bot] 406877e891
Bump ctest from 0.2.7 to 0.2.8
Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/alexcrichton/ctest/releases)
- [Commits](https://github.com/alexcrichton/ctest/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-28 07:00:26 +00:00
bors 4113bf258d Auto merge of #1150 - rust-lang:dependabot/cargo/ctest-0.2.7, r=alexcrichton
Bump ctest from 0.2.6 to 0.2.7

Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.6 to 0.2.7.
<details>
<summary>Commits</summary>

- See full diff in [compare view](https://github.com/alexcrichton/ctest/commits/0.2.7)
</details>
<br />

[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=ctest&package-manager=cargo&previous-version=0.2.6&new-version=0.2.7)](https://dependabot.com/compatibility-score.html?dependency-name=ctest&package-manager=cargo&previous-version=0.2.6&new-version=0.2.7)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
2018-11-27 18:53:47 +00:00
bors 50719a33bd Auto merge of #1105 - gz:fix-timestamping, r=gnzlbg
Added SOF_TIMESTAMPING, fix too narrow scoping for SO_TIMESTAMPING.

Fixes issues raised in #1104 and #1103.
2018-11-27 09:55:53 +00:00
dependabot[bot] 157bb12a92
Bump ctest from 0.2.6 to 0.2.7
Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.6 to 0.2.7.
- [Release notes](https://github.com/alexcrichton/ctest/releases)
- [Commits](https://github.com/alexcrichton/ctest/commits/0.2.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 06:20:46 +00:00
Tom Parker-Shemilt 75071fe11f Merge branch 'master' into strcase-various 2018-11-23 22:35:16 +00:00
Tom Parker-Shemilt d75fc9c34a strcase*: add redox support 2018-11-23 21:26:02 +00:00
Tom Parker-Shemilt b75803751f strcase*: Add cloudabi support 2018-11-23 21:26:02 +00:00
Gerd Zellweger 2f83a7a511 Added missing net_tstamp.h header to tests.
Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>
2018-11-21 17:03:34 -08:00
Tom Parker-Shemilt d931cd27ea Merge branch 'master' into strcase-various 2018-11-21 23:55:01 +00:00
Alex Crichton 91bd079e23 Prepare for being included via crates.io into std
This commit prepares the `libc` crate to be included directly into the
standard library via crates.io. More details about this can be found on
rust-lang/rust#56092, but the main idea is that this crate now depends
on core/compiler-builtins explicitly (but off-by-default).

The main caveat here is that this activates `no_core` when building as
part of libstd, which means that it needs to explicitly have an `iter`
and `option` module for the expansion of `for` loops to work.
2018-11-21 15:27:56 -08:00
gnzlbg 5c1a6b8a6d splice the common libc functions and ctypes throughout the library 2018-11-21 20:58:02 +01:00
Tom Parker-Shemilt 9c6714e54d Define _WITH_GETLINE for FreeBSD so we can move getline into general Unix 2018-11-20 23:50:37 +00:00
gnzlbg aca32d997c re-format 2018-11-19 15:24:41 +01:00
Stephen Barber 60ab3041a1 Add support for SIGSYS in signalfd
Linux 4.18 added support for SIGSYS info in signalfd. Add the new
fields to signalfd_siginfo.

While the kernel has support for these new fields now, no libc has
shipped a release with the new signalfd fields.
2018-11-06 16:51:20 -08:00
dependabot[bot] 4f970bfd88
Bump ctest from 0.2.4 to 0.2.6
Bumps [ctest](https://github.com/alexcrichton/ctest) from 0.2.4 to 0.2.6.
- [Release notes](https://github.com/alexcrichton/ctest/releases)
- [Commits](https://github.com/alexcrichton/ctest/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-31 05:49:22 +00:00
Alan Somers cd35cdaafa syntax fix 2018-10-30 14:04:04 -06:00
Alan Somers a9c204ccbc Include <sys/extattr.h> during CI 2018-10-30 13:48:23 -06:00
gnzlbg 83f301d7d5 update ctest version 2018-10-19 15:02:30 +02:00
bors 878e6aea1f Auto merge of #1075 - tbu-:pr_test_statics, r=alexcrichton
Theoretically test statics

There are none of them in `libc` except for `__progname` on Android, but
that one cannot be tested because it's not present in any header files.
2018-09-13 15:45:32 +00:00
Tobias Bucher eb6bdf35dd Revert accidentally committed test ignores 2018-09-13 07:24:47 +02:00
Tobias Bucher 45f191d192 Update to non-yanked version of ctest 2018-09-12 23:27:28 +02:00
Johannes Lundberg f80b024850 Add SO_REUSEPORT_LB to whitelist for build tests 2018-09-10 20:35:07 +01:00
Steven Fackler 0f461200d4 Add a couple more ELF types 2018-09-08 10:03:33 -07:00
Tobias Bucher 8b1d846444 Theoretically test statics
There are none of them in `libc` except for `__progname` on Android, but
that one cannot be tested because it's not present in any header files.
2018-09-05 09:48:49 +02:00
Steven Fackler 063c721c96 Add some more elf types 2018-09-02 22:08:44 -07:00
Alex Crichton e72f187cd4 Update ctest to 0.2 2018-08-13 16:58:13 -07:00
Alex Crichton 83f78df8c6 Fix OSX builders on CI
Looks like Travis has moved on from our old images, so we're forced to
update.
2018-08-01 07:49:22 -07:00
Linus Färnstrand 5f38367da3 Add testing with align feature 2018-07-29 18:54:45 +02:00
Pascal Bach ebe0feb55d Add linux/module.h to test build 2018-07-17 18:41:48 +02:00
bors 5ac35c85fe Auto merge of #1039 - alesharik:master, r=alexcrichton
Implement statfs for dragonfly, freebsd and openbsd
2018-07-17 13:47:45 +00:00
alesharik 5ec8699bcb Implement statfs for dragonfly, freebsd and openbsd 2018-07-17 00:17:55 +03:00
Sébastien Marie fec9baf0a3 remove ignore for published OpenBSD versions 2018-07-14 06:58:37 +02:00
Mateusz Mikuła 27043ec8df Add ENOATTR for Android 2018-07-04 20:35:31 +02:00
Andrew Cann 1cc2f1e9b2 add net/if_arp.h definitions 2018-06-04 11:06:57 +08:00
Andrew Cann 651d6feafe add rtentry 2018-06-01 13:10:15 +08:00
Andrew Cann b02c6a328d Remove ioctl symbols for emscripten 2018-05-30 18:08:28 +08:00
Andrew Cann 93f9167bea Add linux socket ioctl defs 2018-05-30 17:27:18 +08:00
Bastian Köcher 6a6dc86fb2 Fixes test for android `getifaddrs` 2018-05-26 10:48:02 +02:00
Andrew Morrow 96ee7bf81c Add new sendfile flags for FreeBSD 2018-05-17 08:54:53 -06:00
Jake McGinty 0e3cf4737b add pktinfo consts and structs for linux and apple 2018-04-22 21:24:33 -07:00
gnzlbg dfee17f1ff fix this for stdbuild only 2018-04-15 14:50:00 +02:00
gnzlbg dc1956e2ef fix undefined behavior due to incorrect packing on macosx 2018-04-15 14:45:26 +02:00
Sébastien Marie 16527634cc Add MAP_STACK constant to OpenBSD
The mmap(2) flag indicate that the mapping is used as a stack.

https://man.openbsd.org/mmap.2#MAP_STACK
https://marc.info/?l=openbsd-tech&m=152035796722258&w=2
2018-03-19 08:39:35 +01:00
Wesley Moore be2f062767 Fix test suite on FreeBSD 11 2018-03-12 11:03:46 +11:00
Fredrick Brennan 6d959f1a53 Fix BSD errors (hopefully) 2018-03-04 13:11:04 +00:00
bors 8bed48a751 Auto merge of #931 - bdrewery:posix_spawn_freebsd, r=alexcrichton
Add posix_spawn bindings for FreeBSD
2018-02-28 17:30:10 +00:00
gnzlbg f9c396803c perform ctest with and without std 2018-02-27 17:36:45 +01:00
Bryan Drewery 92d50c9c79 Add posix_spawn bindings for FreeBSD 2018-02-26 16:45:41 -08:00
Linus Färnstrand 750fcf5c5a Add missing netfilter constants
Was able to move some of them up one level so they are valid on more
platforms with less duplication
2018-02-25 22:45:43 +01:00
Linus Färnstrand 69ae346034 Add genetlink.h constants 2018-02-22 14:58:22 +01:00
luozijun 0f4ae0b8f1 Add constants IFF_TUN, IFF_TAP and IFF_NO_PI on linux, android and fuchsia system 2018-02-07 11:12:29 +08:00
gnzlbg 53e4733180 add macosx sysv ipc shared memory 2018-02-03 14:43:38 +01:00
bors 782794985c Auto merge of #902 - gnzlbg:missing_linux_intrinsics, r=malbarbo
Missing linux intrinsics
2018-02-01 15:41:35 +00:00
Linus Färnstrand 4d5ed47efd Add netfilter constants to Linux and Android 2018-01-30 23:08:00 +01:00
bors 11cabded2b Auto merge of #909 - alexcrichton:posix-spawn, r=alexcrichton
Add posix_spawn bindings
2018-01-26 01:34:54 +00:00
Alex Crichton 4621a34864 Add posix_spawn bindings 2018-01-25 17:12:24 -08:00
Greg V c13302d87e Add rtprio (realtime priority) API for FreeBSD and DragonFly 2018-01-23 13:13:48 +03:00
Greg V 2aeb382bb8 Ignore new FreeBSD constants in tests
CI still runs version 10
2018-01-22 18:15:36 +03:00
Greg V 6725fd6aef Add FreeBSD process descriptors API
Available since FreeBSD 9.0, this API allows using local descriptors
instead of global PIDs. It works in Capsicum sandboxes.
2018-01-22 18:15:36 +03:00
gnzlbg c099bb9ba3 add sys/auxv.h to build.rs 2018-01-19 12:11:14 +01:00
Alex Crichton 1f29ac3167 Move some containers to ubuntu 18.04
Apparently 17.04 is broken now?
2018-01-18 11:21:30 -08:00
Bryant Mairs 46933f0311 Add sockaddr_ctl on Mac 2018-01-14 22:26:46 -08:00
bors 1e80d93800 Auto merge of #896 - cneira:master, r=alexcrichton
added EPOLL(5)  for Illumos (Solaris fork)

EPOLL(5)  is being used in crates like mio and iovec , this change allows those crates and other that depends on EPOLL(5)  to be built in illumos systems.
2018-01-12 22:12:26 +00:00
neirac 3092748c95 adding epoll for illumos 2018-01-11 15:25:00 +00:00
Kelsey Z 586867d39a feat(linux): add mntent struct and related functions
Useful when playing around with mounting points, sadly not a common
interface
2018-01-11 21:57:30 +13:00
luozijun 536b5cfa86 Add bpf constant on macOS 2017-12-27 04:04:46 +08:00
luozijun 629908abe3 Add struct `bpf_hdr` on macOS 2017-12-27 04:03:39 +08:00
luozijun 5ea536a0a0 Add some constants for linux and macos 2017-12-26 10:36:01 +08:00
Jörg Thalheim 9f720f3c64 Add SECCOMP_MODE_* flags on Linux 2017-12-19 14:31:12 +00:00
bors a8c0a3bf3e Auto merge of #871 - asomers:mq, r=alexcrichton
POSIX mqueue bindings for the BSDs

Note that OpenBSD and OSX do not support POSIX message queues.
2017-12-17 00:54:16 +00:00
Alan Somers 831ca990d2 POSIX mqueue bindings for the BSDs
Note that OpenBSD and OSX do not support POSIX message queues.
2017-12-16 10:22:11 -07:00
luozijun f26f092c37 Add `net/if_utun.h` constants for macos platform and `linux/if_tun.h` for linux platform 2017-12-14 22:49:44 +08:00
luozijun 64246e006e remove include 2017-12-12 12:44:47 +08:00
luozijun 789fd5eb81 Add `sockaddr_dl` for all bsdlike 2017-12-12 11:24:00 +08:00
luozijun 2199ac4e42 fix freebsd include path 2017-12-12 08:19:39 +08:00
luozijun 7e0ccf206c fix include path 2017-12-12 08:07:00 +08:00
luozijun e3b0b81c44 update libc-test/build.rs 2017-12-12 00:52:39 +08:00
bgermann 85680dc23e Add some Solaris quirks 2017-11-18 22:03:14 +01:00
bgermann b3870b405b Prerequisites for Solaris testing support
With these changes there are no "undeclared"
errors for libc-test on Solaris anymore.
2017-11-18 14:57:54 +01:00
Steven Fackler 8f7839f41b Add dl_iterate_phdr and related types
A lot of this is more broadly supported than just Linux, but support for
those can be added later.
2017-11-10 20:04:08 -08:00
Bryant Mairs fa81ab39c7 Expose MFD_ constants on all Linux targets.
These aren't exposed on non-MIPS musl targets, but since they're
part of a kernel API, they're still applicable, so we just don't
test them there but expose them anyways.
2017-11-06 19:16:41 -08:00
Bryant Mairs c0935ac343 Add MFD_ constants for memfd_create 2017-11-05 13:52:59 -08:00
Marco A L Barbosa ae49626940 Add constants used by getrandom linux syscall 2017-11-02 10:33:29 -02:00
Marco A L Barbosa c9aba5f9ad Use ctest from git to allow testing linux x32 2017-10-27 11:01:20 -02:00
bors 7e33065ce4 Auto merge of #812 - malbarbo:x32, r=alexcrichton
Initial fixes for linux x32

Tested with a local build of rustc. The main test can be compiled but fails to execute (receives SIGTRAP, which I think in this case indicates memory violation, I will open an issue in the rustc repo).

This PR is important because it fixes the definition of `c_long` and `c_ulong`. Without these fixes, rustc crash with the error:

```
Cannot emit physreg copy instruction
UNREACHABLE executed at /checkout/src/llvm/lib/Target/X86/X86InstrInfo.cpp:5778!
```

Related https://github.com/rust-lang/rust/issues/37976
2017-10-19 16:40:53 +00:00
bors 2172bb4bab Auto merge of #802 - Mic92:setfsuid, r=alexcrichton
add setfsgid/setfsuid on Linux
2017-10-19 14:37:21 +00:00
Joerg Thalheim 3406fe94fa provide setfsgid/setfsuid also on android 2017-10-19 11:00:43 +01:00
Bryant Mairs 6d55c2496d Add termios2 for Android & Linux
Note that termios2 doesn't exist on powerpc(64), termios
is used instead.
2017-10-18 21:14:43 -07:00
Bryant Mairs 12cfa1ef46 Add BOTHER to Android & Linux 2017-10-18 20:57:34 -07:00
Marco A L Barbosa 343b7c15be Linux x32 does not support sysctl 2017-10-18 21:08:51 -02:00
Alex Crichton 9029cfb9eb Add more Linux-based syscall tables
* Add syscall tables to most remaining arches in `src/unix/notbsd`
* Add aarch64/arm musl to CI
* Update dependencies
2017-10-18 15:17:00 -07:00
Joerg Thalheim 8c24117c63 define SYS_renameat2 + flags on linux
Motivation: there is no glibc wrapper for this syscall
2017-10-16 19:20:35 +01:00
Vojtech Kral 4ed612c124 Fix glibc 2.26 incompatibilities #788 2017-10-09 20:38:56 +02:00
Jack Pappas 787addfa38 Add DCCP constant definitions. 2017-09-20 21:58:29 -04:00
bors d5236b0b91 Auto merge of #761 - LeoTindall:add_linux_iff_constants, r=alexcrichton
Add additional interface flags (IFF_)

Adds the three missing IFF_ constants (IFF_LOWER_UP, IFF_DORMANT, and IFF_ECHO) per nix-rust/nix#764
2017-09-12 19:39:52 +00:00
SilverWingedSeraph 6f170efdcf Prevent testing linux/if.h definitions on musl targets 2017-09-12 12:39:09 -05:00
SilverWingedSeraph 121795e34c Add tests for linux/if.h for additional IFF_ flags
Also remove unneeded platform gating
2017-09-12 09:15:45 -05:00
slyrz 340cbbfe75 Add timerfd API on Linux
This change adds the Linux-specific timerfd API to libc.
2017-09-09 13:02:29 +02:00
Bryant Mairs bd4c3489e5 Add QFMT_VFS_V1 on MIPS and test all QFMT_ constants 2017-08-29 19:33:22 -07:00
Alex Crichton 305cec31fb Fix musl build 2017-08-27 09:28:17 -07:00
Alex Crichton 22b98dedfe Add asmjs/wasm32 to CI
Rebase of #610 and also move emscripten up much higher in the hierarchy to
ensure that it doesn't have too much of a ripple effect on other platforms.

This involved moving down a good number of definitions, but hopefully was done
with care to not break anything!
2017-08-26 22:15:29 -07:00
Alex Crichton ce276177f2 Remove warnings in libc-test 2017-08-21 21:41:26 -07:00
Bryant Mairs 2e11d9e14c Add more fcntl and seal constants for Android/Linux
We now create an additional binary `linux_fcntl` for testing this
since there are header conflicts when including all necessary headers.
This binary is run on all platforms even though it's empty on all non-
Android/non-Linux platforms.

Testing has been switched from a custom binary to using a runner-less
test (or pair of tests). This means that for local development a simple
`cd libc-test && cargo test` will run all the tests. CI has also been
updated here to reflect that.
2017-08-20 20:52:43 -07:00
Alex Crichton 201d539465 Remove OpenBSD CI
It's now broken due to changes in the `gcc` crate and having a too-old compiler,
and in general it's unfortunately architecturally so different from the other
test frameworks that it's difficult to maintain over time.
2017-08-18 09:34:08 -07:00
Sébastien Marie 7e349c0be6 Add exception in testsuite: the constants are new
they will be released with OpenBSD 6.2
2017-08-13 13:54:04 +02:00
Sébastien Marie 56701a7f70 skip siginfo_t.si_addr type check on OpenBSD
the type changed from *c_char to *c_void in 6.1
2017-08-13 12:29:45 +02:00
Bryant Mairs c9e6f55f1c Add MADV_FREE and MADV_SOFT_OFFLINE for Android/Linux 2017-08-10 19:21:22 -07:00
bors 0dae0e75bd Auto merge of #708 - wezm:remove-missing-openbsd-constants, r=alexcrichton
Add KERN_USERMOUNT and KERN_ARND to don't check list on OpenBSD

These [two constants are no longer in OpenBSD](3f376b0849/sys/sys/sysctl.h (L133-L140)). They were preventing the the tests from passing. With this change the test now pass:

```
CC=egcc cargo run
   Compiling libc v0.2.29 (file:///home/vagrant/libc)
   Compiling libc-test v0.1.0 (file:///home/vagrant/libc/libc-test)
    Finished debug [unoptimized + debuginfo] target(s) in 11.7 secs
     Running `/home/vagrant/libc/target/debug/libc-test`
RUNNING ALL TESTS
PASSED 5935 tests
```

They are still present in bitrig so I moved them there.
2017-08-04 10:40:32 +00:00
Wesley Moore 58c772bd51 Add KERN_ARND and KERN_USERMOUNT to don't check list on OpenBSD 2017-08-03 18:14:15 +10:00
Marcin Mielniczuk b9166f42ff Include sys/reg.h on Android. 2017-08-01 16:20:13 +02:00
bors 0b7abd9bb3 Auto merge of #689 - lucab:ups/fexecve, r=alexcrichton
unix: add fexecve()

Add missing fexecve() - execute program specified via file descriptor.

Reference: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fexecve.html
2017-07-23 15:18:51 +00:00
bors 9bbfe4b0ee Auto merge of #686 - marmistrz:regs, r=alexcrichton
Add offsets in user_regs_struct from sys/reg.h
2017-07-22 17:01:15 +00:00
Luca Bruno 858d47cd95
unix: add fexecve()
Add missing fexecve() - execute program specified via file descriptor.

Reference: http://pubs.opengroup.org/onlinepubs/9699919799/functions/fexecve.html
2017-07-22 08:12:10 +00:00
Marcin Mielniczuk 2a5976727f Define i686 when TARGET=i686* 2017-07-22 09:37:22 +02:00
Marcin Mielniczuk 37b4e73a10 include sys/regs.h only on x86 and x86_64 2017-07-21 21:55:47 +02:00
Marcin Mielniczuk 1535ee8703 Include sys/user.h in the automatic test 2017-07-21 17:11:30 +02:00
bors 516df7f773 Auto merge of #671 - Susurrus:signalfd_android, r=alexcrichton
Add signalfd and related to android
2017-07-20 19:05:46 +00:00
Bryant Mairs 83ab9a341f Add signalfd and related to android 2017-07-20 08:56:06 -07:00
bors 57413b8b14 Auto merge of #673 - g2p:fallocate-flags, r=alexcrichton
Add all current fallocate flags

Also move them to the common Linux module, as they are not platform-specific.
See include/uapi/linux/falloc.h.
2017-07-20 14:05:21 +00:00
Gabriel f60ff2db55 Ignore newer kernel constants if building with musl 2017-07-20 00:28:08 +02:00
Guillaume Gomez 100f3f29cf Add mac structs 2017-07-19 20:54:24 +02:00
Gabriel 75e3696eca Include linux/falloc.h directly
glibc support is behind, as indicated by
https://github.com/karelzak/util-linux/blob/master/sys-utils/fallocate.c
2017-07-19 06:52:12 +02:00
Guillaume Gomez e7df808d68 Add header for mac targets 2017-07-16 22:22:32 +02:00
Bryant Mairs f04b44292e Add CMSPAR to linux/mips
It needs to be skipped during testing because there's no way to include
a combination of headers that will expose it without giving a "type has
already been defined" error.
2017-07-13 11:18:00 -07:00
Nicolas Dusart 9f5766fb3f add missing socket constants 2017-07-10 10:52:20 +02:00
Nicolas Dusart 4abc3cefef Update to NDK r15b (with unified headers) and add missing symbols needed by nix crate 2017-07-03 13:26:35 +02:00
Mateusz Sieczko 60d93226ff Add structs defined in linux/input.h 2017-06-14 21:48:41 +02:00
bors 439a4d7d4b Auto merge of #608 - Uplifting:unix, r=alexcrichton
add a number of linux syscalls

vfork, wait4, getresuid, getresgid, personality, vhangup,
swapon, swapoff, getdomainname, setdomainname, iopl, ioperm
2017-06-08 15:56:42 +00:00
Andrew Salmon 553c5dc877 sys/io.h only in linux x86_64
Make changes to reflect this
2017-06-07 19:27:14 -07:00
Andrew Salmon c98b9f7d4e add a number of syscalls
vfork, wait4, getresuid, getresgid, personality, vhangup,
swapon, swapoff, getdomainname, setdomainname, iopl, ioperm
2017-06-07 16:26:42 -07:00
bors 80e1422851 Auto merge of #599 - xd009642:master, r=alexcrichton
Adding missing structs from linux/user.h

Adding structs from linux/user.h (or sys/user.h depending on OS version). This adds the linux user_regs_struct and user struct from sys/user.h into libc for x86 and x86_64. Also, bumping the version number.

As an aside, I was wondering if this was also the right place to add the bit offsets for the [EFLAGS register ](https://en.wikibooks.org/wiki/X86_Assembly/X86_Architecture#EFLAGS_Register)? These aren't defined anywhere in the linux system libraries instead the definition seems to just be in the x86 and x86_64 documentation but they are useful for anyone looking to interpret eflags. If libc is the right place for these constants I'd like the opportunity to add them before it's merged in. :)
2017-05-30 13:57:31 +00:00
Daniel McKenna 6acbf873db Fixed issues in test and struct names.
Fixed the issues that prevented the libc_tests that are generated from passing. Also, fixed struct names and types to be representative of the linux source files.
2017-05-29 18:27:27 +01:00
Andrew Salmon 6fb7c90ad0 sys/times.h, setreuid/setregid, and sigpending 2017-05-26 15:24:54 -07:00
Andrew Salmon bc48202e14 remove getitimer and setitimer
_GNU_SOURCE works differently than other libraries and creates
function pointer issues
2017-05-26 12:47:53 -07:00
bors fda4049c11 Auto merge of #596 - Susurrus:master, r=alexcrichton
Use NOCANCEL variants for close on Mac

The default `close()` on OS X does not provide clear errors, instead the `$NOCANCEL` variants should be used. These are available as of OS X 10.6 onwards.

Fixes #595.
2017-05-19 14:10:33 +00:00
Bryant Mairs 9b9f36aefc Use NOCANCEL variants for close on Mac
The default  on OS X does not provide clear errors,
instead the NOCANCEL variants should be used. These are available
as of OS X 10.6 onwards.
2017-05-18 12:04:28 -07:00
Lee Bousfield 98889cf243 Add ENOATTR for Linux 2017-05-18 09:02:25 -06:00
bors 19f3be3638 Auto merge of #578 - cactorium:master, r=alexcrichton
Steps towards support for musl-unknown-linux-uclibc

Hello! I've been working towards resolving https://github.com/rust-lang/libc/issues/361 , this PR compiles successfully with a newish compiler (with some minor fixes in `gcc`, `ctest`), and all the tests pass for `libc-ctest`. Basically most of the undefined functions, constants, and structs were just removed from the ctest, and then any constants that weren't correct were fixed. Would it make more sense to conditionally remove them from libc? I wasn't sure when it was appropriate to skip the test for it instead of removing the function/constants, so I just removed all the tests for now because that was a little easier than hunting them down. I'm also guessing the way some of the constants were conditionally set wasn't the correct style, would you guys have any advice on how to do it more correctly? Lemme know how it looks!
2017-05-08 14:49:12 +00:00
Lee Bousfield fdbfe8fc91 Add xattr functions for OSX 2017-05-07 17:05:51 -06:00
Kelvin Ly c0bec43234 Remove MAP_HUGETLB from mips-unknown-linux-uclibc 2017-05-06 02:49:54 -04:00
Kelvin Ly 96a830648d Merge branch 'master' into master 2017-05-04 22:08:48 -04:00
bors 03562b0cb2 Auto merge of #585 - jonhoo:res_init, r=alexcrichton
Add res_init

The `res_init` function, while deprecated, is critical for making networked applications work correctly when switching between networks, or between being offline and online. By default, `getaddrinfo` and friends use a cached version of `/etc/resolv.conf`, which means that network changes are not picked up by applications after they first start up. This has bitten [Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=214538), [Pidgin](https://developer.pidgin.im/ticket/2825), [MongoDB](https://jira.mongodb.org/browse/DOCS-5700), and more in the past.

The logic behind exposing only `res_init` is that it is the only `res_*` function that is frequently called directly by user applications. The other `res_*` functions provide low-level access to domain lookups, whereas `res_init` is useful even if the application itself is not concerned with doing lookups.

Behind the scenes, `getaddrinfo` in glibc [ultimately calls](a2f34833b1/resolv/nss_dns/dns-host.c (L196)) `res_nsearch` with `&_res`. `res_init` operates directly on this global reference, and is thus more useful to expose for most applications than the non-deprecated `res_ninit` function (which operators on an arbitrary `res_state`).

As far as I can tell, `res_init` is available in [FreeBSD](https://www.freebsd.org/cgi/man.cgi?query=res_init&manpath=SuSE+Linux/i386+11.3), [NetBSD](http://netbsd.gw.com/cgi-bin/man-cgi?res_init+3+NetBSD-6.1), [OpenBSD](http://man.openbsd.org/resolver.3), [Solaris](http://www.polarhome.com/service/man/?qf=res_init&tf=2&of=Solaris&sf=), [Linux](https://linux.die.net/man/3/res_init), and [macOS](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/res_init.3.html).
2017-05-03 22:30:49 +00:00
Jon Gjengset be7e45f6f5
Skip res_init test on macOS/iOS 2017-05-03 15:57:39 -04:00
NODA, Kai 61c23fb927
Add Linux-specific recvmmsg(2) and sendmmsg(2)
There is a compatibility issue regarding the type of a flag parameter:
int vs uint. Linux does declare the syscall to use uint and musl
followed it, but it is incompatible with other POSIX recv*/send*
syscalls. So it seems to be wise to follow the glibc version of
prototypes with int.

Signed-off-by: NODA, Kai <nodakai@gmail.com>
2017-05-02 07:46:52 -04:00
Jon Gjengset afebd98131
Android doesn't expose res_init in header file 2017-04-28 22:23:33 -04:00
Jon Gjengset ef20ddbc57
Add binding for res_init.
Some notes about the particularities of the changes:

res_init has been deprecated in favor of res_ninit, and many (but not
all) targets have therefore renamed the link name to __res_init. For
example, this happened in glibc in version 2.2:
https://bugzilla.redhat.com/show_bug.cgi?id=43822#c6
In these systems, res_init is #defined to __res_init in resolv.h, which
lets existing C programs continue to be compiled.

Unfortunately, this define doesn't automatically apply to our Rust code.
We therefore need to manually map the link name of res_init as
appropriate for each target:

macOS and iOS use res_9_init: 3908694d63/src/libresolv/resolv.h (L316)
Solaris uses res_init: https://java.net/projects/solaris/sources/on-src/content/usr/src/head/resolv.h
OpenBSD uses __res_init: f3b3b7c7ca/include/resolv.h (L268)
FreeBSD uses __res_init: 6911f4a88c/include/resolv.h (L290)
NetBSD uses __res_init: http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/include/resolv.h
glibc uses __res_init: a2f34833b1/resolv/resolv.h (L259)
eglibc uses __res_init: 7f0bcce417/resolv/resolv.h (L259)
musl uses res_init: 0a11d7cb13/include/resolv.h (L128)
Android uses res_init: 306ea55952/libc/include/resolv.h (L57)

One caveat here is that NetBSD doesn't seem to use the symbol name
__res_init yet, despite the redefine being present in resolv.h. At least
Travis fails for the netbsd target if __res_init is used. This may
change in the future.

iOS and macOS both unfortunately require linking with libresolv, despite
the symbols technically being available without libresolv:
resolv: http://blog.achernya.com/2013/03/os-x-has-silly-libsystem.html
Android and OpenBSD fall in the same category.
2017-04-28 10:58:25 -04:00
Kelvin Ly c14178c305 Fix indentation, remove more constants that don't work for uclibc 2017-04-26 23:01:05 -04:00
Kelvin Ly 2a9b6470d6 Remove extra comment 2017-04-21 18:34:12 -04:00
Kelvin Ly 26670c77b7 Fix build errors for mips-unknown-linux-uclibc 2017-04-21 18:20:08 -04:00
Kelvin Ly 2d6c7dad20 Fix more stuff after updating libc 2017-04-20 18:42:59 -04:00
bors c34a802d1e Auto merge of #572 - malbarbo:android-x86_64, r=alexcrichton
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.
2017-04-20 14:46:39 +00:00
Kelvin Ly 9a835580a6 Add changes to allow uclibc to build 2017-04-20 02:37:31 -04:00
Marco A L Barbosa 3ca6ad9a3f Fix x86_64-linux-android failing tests 2017-04-19 12:24:45 -03:00
superriva 2122616185 Add IPC,SHM,MSG for Freebsd
INFO for the patch:
FREEBSD [https://github.com/freebsd/freebsd]

        /sys/sys/_types.h
typedef    long        __key_t;

        /sys/sys/types.h
typedef    __key_t        key_t;

        /sys/sys/ipc.h

struct ipc_perm {
    uid_t        cuid;
    gid_t        cgid;
    uid_t        uid;
    gid_t        gid;
    mode_t        mode;
    unsigned short    seq;
    key_t        key;
};

key_t    ftok(const char *, int);

        /sys/sys/msg.h

typedef    unsigned long    msglen_t;
typedef    unsigned long    msgqnum_t;

struct msqid_ds {
	struct	ipc_perm msg_perm;
	struct	msg *msg_first;
	struct	msg *msg_last;
	msglen_t msg_cbytes;
	msgqnum_t msg_qnum;
	msglen_t msg_qbytes;
	pid_t	msg_lspid;
	pid_t	msg_lrpid;
	time_t	msg_stime;
	time_t	msg_rtime;
	time_t	msg_ctime;
};

struct msg {
	struct	msg *msg_next;
	long	msg_type;
	u_short	msg_ts;
	short	msg_spot;
	struct	label *label;
};

struct msginfo {
    int    msgmax,
        msgmni,
        msgmnb,
        msgtql,
        msgssz,
        msgseg;
};

int msgctl(int, int, struct msqid_ds *);
int msgget(key_t, int);
ssize_t msgrcv(int, void *, size_t, long, int);
int msgsnd(int, const void *, size_t, int);

        /sys/sys/shm.h

typedef unsigned int shmatt_t;

struct shmid_ds {
    struct ipc_perm shm_perm;
    size_t          shm_segsz;
    pid_t           shm_lpid;
    pid_t           shm_cpid;
    shmatt_t        shm_nattch;
    time_t          shm_atime;
    time_t          shm_dtime;
    time_t          shm_ctime;
};

void *shmat(int, const void *, int);
int shmget(key_t, size_t, int);
int shmctl(int, int, struct shmid_ds *);
int shmdt(const void *);

	/sys/security/mac/mac_internal.h
struct label {
	int		l_flags;
	intptr_t	l_perpolicy[MAC_MAX_SLOTS];
};

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update build.rs

Update mod.rs

Update mod.rs

Update build.rs

Update mod.rs

Update build.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update mod.rs

Update build.rs

Update build.rs

Update mod.rs

Update mod.rs
2017-04-04 10:13:43 +03:00
Marco A L Barbosa bfeb3606f2 Merge branch 'master' into ci-android 2017-02-27 17:25:43 -03:00
bors dc1aa0e2c0 Auto merge of #530 - berkowski:baud_constants, r=alexcrichton
Added baudrate constants.

Addresses #528, adding baudrate constants for `bsd` and `notbsd` flavors of `unix`.

Passes `libc-test` locally on ubuntu 14.04 LTS with the additional (uncommitted) entries into in `build.rs`:

```
cfg.skip_const( move |name| {
        match name {
            # ... snip ...
            "PTRACE_O_SUSPEND_SECCOMP" |
            "CLONE_NEWCGROUP" |
            "NETLINK_LIST_MEMBERSHIPS" |
            "NETLINK_LISTEN_ALL_NSID" |
            "NETLINK_CAP_ACK" |
            "PR_CAP_AMBIENT_CLEAR_ALL" |
            "PR_CAP_AMBIENT_LOWER" |
            "PR_CAP_AMBIENT_RAISE" |
            "PR_CAP_AMBIENT_IS_SET" |
            "PR_CAP_AMBIENT" |
            "PR_FP_MODE_FRE" |
            "PR_FP_MODE_FR" |
            "PR_GET_FP_MODE" |
            "PR_SET_FP_MODE" |
            "PR_MPX_DISABLE_MANAGEMENT" |
            "PR_MPX_ENABLE_MANAGEMENT" |
            "PR_GET_THP_DISABLE" |
            "PR_SET_THP_DISABLE" |
            "PR_SET_MM_MAP_SIZE" |
            "PR_GET_MM_MAP_SIZE" |
            "PR_SET_MM_MAP" |
            "NLM_F_DUMP_FILTERED" |
            "EPOLLEXCLUSIVE" => true,

            _ => false,
        }
    });
```
I'm assuming this is because I'm stuck using `linux-libc-dev:3.13.0-24.46` for the moment and those constants are defined in newer versions.
2017-02-24 20:25:55 +00:00
Marco A L Barbosa 92ce51823c Make libc-tests compile for aarch64-linux-android
- 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
2017-02-24 16:24:49 -03:00
Zac Berkowitz 004814849d Removed "rpcsvc/rex.h" from `build.rs` for OpenBSD
```
export TARGET=x86_64-unknown-openbsd
export QEMU=openbsd.qcow2
sh ci/run-docker.sh $TARGET
```
Passes when run localy.
2017-02-24 18:51:51 +00:00
Zac Berkowitz e8fc9928cd Removed "termios.h" from `build.rs` openbsd case.
Adding `termios.h` behind `rpcsvc/rex.h` does not solve the #define
clash since `rex.h` also defines the `_SYS_TERMIOS_H_` include guard.
2017-02-24 17:20:34 +00:00
bors 16832447b4 Auto merge of #532 - malbarbo:fs2-android, r=alexcrichton
Add definitions to Android to allow fs2 crate compile

This is the only missing part to allow cargo to compile on android.
2017-02-22 17:41:08 +00:00
Marco A L Barbosa bad80ba4d7 Add definitions to Android to allow fs2 crate compile 2017-02-21 17:17:46 -03:00
Ryan Moeller 7c03711d45 Add jail functions and constants for FreeBSD 2017-02-21 00:41:12 +00:00