- Mar 08, 2020
-
-
Darcy Liu authored
-
- Sep 16, 2019
-
-
gnzlbg authored
This adds libc-test support for Freebsd10 and a CI build job that tests FreeBSD10 with LIBC_CI only.
-
- Sep 12, 2019
-
-
gnzlbg authored
-
- Aug 18, 2019
-
-
Sébastien Marie authored
-
- Aug 16, 2019
- Jul 28, 2019
-
-
Luca Pizzamiglio authored
Currently, libc supports and detects freebsd11 and freebsd13 Unknown versions, like freebsd13, is treated as freebsd11. This patch solve the issues, detecting freebsd13 and treating it like freebsd12. Inverting the logic not(freebsd12) -> freebsd11 where possible
-
- Jul 21, 2019
-
-
Luca Pizzamiglio authored
Currently, libc supports and detects freebsd11 and freebsd13 Unknown versions, like freebsd13, is treated as freebsd11. This patch solve the issues, detecting freebsd13 and treating it like freebsd12. Inverting the logic not(freebsd12) -> freebsd11 where possible
-
- Jun 07, 2019
-
-
Torbjørn Birch Moltu authored
* Change the type of FIONCLEX on apple platforms from c_uint to c_ulong * Add FIONCLEX, FIONREAD, FIOASYNC, FIOSETOWN and FIOGETOWN for DragonFly and OpenBSD
-
- May 29, 2019
-
-
gnzlbg authored
-
- May 27, 2019
-
-
gnzlbg authored
-
- May 24, 2019
-
-
gnzlbg authored
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.
-
- May 23, 2019
-
-
gnzlbg authored
-
- May 16, 2019
-
-
gnzlbg authored
See https://github.com/rust-lang/rust/pull/60775 .
-
- Apr 29, 2019
-
-
Charles Lew authored
-
- Mar 03, 2019
-
-
Sébastien Marie authored
-
Guillaume Gomez authored
-
- Feb 22, 2019
-
-
gnzlbg authored
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.
-
- Feb 13, 2019
-
-
gnzlbg authored
-
- Feb 08, 2019
-
-
David Holroyd authored
I guess the previous lint failure was about avoiding #[cfg], and doing this instead.
-
David Holroyd authored
-
David Holroyd authored
-
David Holroyd authored
-
David Holroyd authored
Will likely alter this after seeing CI results across platforms.
-
- Feb 07, 2019
-
-
gnzlbg authored
This PR fixes the build on all platforms and all Rust version down to the minimum Rust version supported by libc: Rust 1.13.0. The `build.rs` is extended with logic to detect the newer Rust features used by `libc` since Rust 1.13.0: * Rust 1.19.0: `untagged_unions`. APIs using untagged unions are gated on `cfg(libc_unions)` and not available on older Rust versions. * Rust 1.25.0: `repr(align)`. Because `repr(align)` cannot be parsed by older Rust versions, all uses of `repr(align)` are split into `align.rs` and `no_align.rs` modules, which are gated on the `cfg(libc_align)` at the top level. These modules sometimes contain macros that are expanded at the top level to avoid privacy issues (`pub(crate)` is not available in older Rust versions). Closes #1242 . * Rust : `const` `mem::size_of`. These uses are worked around with hardcoded constants on older Rust versions. Also, `repr(packed)` structs cannot automatically `derive()` some traits like `Debug`. These have been moved into `s_no_extra_traits!` and the lint of missing `Debug` implementations on public items is silenced for these. We can manually implement the `extra_traits` for these in a follow up PR. This is tracked in #1243. Also, `extra_traits` does not enable `align` manually anymore. Since `f64::to_bits` is not available in older Rust versions, its usage has been replaced with a `transmute` to an `u64` which is what that method does under the hood. Closes #1232 .
-
- Feb 03, 2019
-
-
Bryant Mairs authored
-
- Feb 02, 2019
-
-
Bryant Mairs authored
-
Bryant Mairs authored
-
- Jan 16, 2019
-
-
Alan Somers authored
PR #1098 added the CMSG_DATA(3) family of functions into libc. Because they're defined as macros in C, they had to be rewritten as Rust functions for libc. Also, they can't be tested in CI for the same reason. But that PR erroneously used the same definitions in BSD as in Linux. This commit corrects the definitions for OSX, FreeBSD, DragonflyBSD, OpenBSD, and NetBSD. I renamed a few variables and collapsed a few macros in order to combine the definitions where possible. Fixes #1210
-
- Dec 28, 2018
-
-
Tom Pusateri authored
-
- Dec 15, 2018
-
-
Benjamin Saunders authored
-
Benjamin Saunders authored
-
Benjamin Saunders authored
-
- Dec 14, 2018
-
-
Benjamin Saunders authored
-
- Dec 06, 2018
-
-
M Farkas-Dyck authored
-
- Dec 02, 2018
-
-
M Farkas-Dyck authored
-
- Nov 27, 2018
-
-
Sébastien Marie authored
-
Fensteer authored
-
- Nov 21, 2018
-
-
gnzlbg authored
-
- Oct 19, 2018
-
-
Andrew Tunnell-Jones authored
-