- May 02, 2020
-
-
Niels Sascha Reedijk authored
-
- Mar 29, 2020
-
-
Patrick Mooney authored
-
- Mar 28, 2020
-
-
Niels Sascha Reedijk authored
* Function futimes is not available in Haiku. * Functions futimens and utimensat are. * Cleanup some leftover cfg_attr attributes.
-
- Feb 29, 2020
-
-
Yuki Okushi authored
-
- Feb 12, 2020
-
-
Vickenty Fesunov authored
This triggers a warning on a recent nightly, which in turn breaks CI due to `#![deny(warnings)]` in libc-test/build.rs
-
- Oct 04, 2019
-
-
Niels Sascha Reedijk authored
-
- Sep 12, 2019
-
-
gnzlbg authored
-
- Aug 17, 2019
-
-
Luke Petre authored
-
- Jul 11, 2019
-
-
Joe Richey authored
-
Joe Richey authored
-
- Jul 05, 2019
-
-
Bryant Mairs authored
These constants have already been deprecated for a few releases with a deprecation notice, so they can finally be removed. Closes rust-lang/libc#665
-
- Jun 20, 2019
-
-
Nikolay Korotkiy authored
-
- Jun 10, 2019
-
-
Bryant Mairs authored
sigevent structs on most platforms have padding or unused fields. Rather than display those in the Debug impl by deriving it, manually implement all extra_traits instead ignoring those fields.
-
- May 29, 2019
-
-
gnzlbg authored
-
- May 27, 2019
-
-
gnzlbg authored
-
- May 23, 2019
-
-
gnzlbg authored
-
- May 22, 2019
-
-
gnzlbg authored
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§ion=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.
-
- Apr 29, 2019
-
-
Charles Lew authored
-
- Feb 23, 2019
-
-
Bryant Mairs 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 20, 2019
-
-
gnzlbg authored
-
- Feb 13, 2019
-
-
gnzlbg authored
-
- 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
-
Bryant Mairs authored
This was not compile-tested on all platforms, but instead all `pub enum` types had a `Debug` impl derived for them.
-
- Jan 03, 2019
-
-
Alan Somers authored
On FreeBSD, uname is an inline function. The uname that is present in libc.so is for FreeBSD 1.0 compatibility. It expects a buffer of a different size. Fixes #1190 Reported-by: Alex Zepeda
-
- Nov 21, 2018
-
-
gnzlbg authored
-
- Nov 01, 2018
-
-
Samuel Holland authored
These are used by the flock wrapper in rustc_data_structures. The constants were already present in x86_64-linux-gnu and BSD (since 4928bd98).
-
- Jun 20, 2018
-
-
Niels Sascha Reedijk authored
These are used in the socket2 library.
-
- Jun 08, 2018
-
-
Scott Lamb authored
Fixes #1017 I moved it up to src/unix/mod.rs, as it's specified in POSIX.1-2008 and appears to be implemented on every Unix-like system. The symbol names on macOS appear similar to those for opendir; I found them via the commands below. I tested the x86_64 version; fdopendir$INODE64 worked as expected. $ nm -arch x86_64 /usr/lib/system/libsystem_c.dylib | grep fdopendir 000000000007ea6d T _fdopendir 000000000002ba97 T _fdopendir$INODE64 $ nm -arch i386 /usr/lib/system/libsystem_c.dylib | grep fdopendir 00082d1e T _fdopendir 0002b528 T _fdopendir$INODE64$UNIX2003 00082d1e T _fdopendir$UNIX2003
-
- Apr 20, 2018
-
-
Calvin Hill authored
-
- Dec 12, 2017
-
-
Josh Driver authored
-
- Nov 25, 2017
-
-
Alexander von Gluck IV authored
* BeOS traditionally didn't have lutimes, however to make Haiku more compatible and easier to port for, we added an implementation of it.
-
- Nov 09, 2017
-
-
luozijun authored
Add network interface flag constants for all platforms.
- Nov 08, 2017
-
-
luozijun authored
-
- Sep 26, 2017
-
-
Jessica Hamilton authored
-
Jessica Hamilton authored
-
Jessica Hamilton authored
-
Jessica Hamilton authored
-