- Feb 13, 2019
- Feb 12, 2019
-
-
bors authored
Add support for illumos target This change adds support for an illumos os target to libc. Similar to the BSDs, there is a large deal of overlap (given the common history), so the 'solaris' directory was renamed to 'solarish' (it's the closest thing to an official term to refer to things descending from Solaris as well as Solaris). There were also a number of missing definitions (as well as a couple missing functions) that have proved necessary for building a number of rust programs on illumos or Solaris. Portions contributed by @papertigers .
-
bors authored
Do not allow rustup to fail Currently if rustup fails to download something the build will continue until that something is needed. This makes the job fail early and clearly.
-
Jason King authored
-
Vitaly _Vi Shukela authored
-
Jason King authored
-
Jason King authored
-
- Feb 11, 2019
-
-
Jason King authored
and Solaris-derived distributions (i.e. illumos). In addition, a number of missing definitions (and compatability functions) that have been found necessary to run a number of rust binaries on illumos have been added. Portions were contributed by Mike Zeller <mike@mikezeller.net>
-
- Feb 09, 2019
-
-
gnzlbg authored
-
gnzlbg authored
-
gnzlbg authored
-
bors authored
unbreak openbsd after #1217
-
bors authored
Fix license badge
-
Sébastien Marie authored
-
Arnav Borborah authored
-
- Feb 08, 2019
-
-
bors authored
Build all platforms cc @alexcrichton this needs a more thorough review. It turns out libc failed to build on a lot of older Rust versions for various reasons and platforms, so it took a while to fix the build on all of them.
-
- Feb 07, 2019
-
-
gnzlbg authored
-
gnzlbg authored
-
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 .
-
gnzlbg authored
This commit adds a `ci/build.sh` script that checks that libc builds correctly for some common configurations (`--no-default-features`, `default`, `extra_traits`) on most targets supported by Rust since Rust 1.13.0 (the oldest Rust version that libc supports). The build matrix is refactored into two stages. The first stage is called `tools-and-build-and-tier1` and it aims to discover issues quickly by running the documentation and linter builds, as well as checking that the library builds correctly on all targets in all supported channels and "problematic" Rust versions; Rust versions adding major new features like `repr(align)`, `union`, etc. This first stage also runs libc-test for the tier-1 targets on linux and osx. These builds finish quickly because no emulation is necessary. The second stage is called `tier2` and it runs libc-test for all other targets for which we are currently able to do so. Closes #1229 .
-
bors authored
Check style using rustfmt and reformat A couple of recent PRs attempt to reformat the library using rustfmt and run into issues against libc's style checker because rustfmt default settings differ. This PR uses the rustfmt-preview from nightly to check that the library is appropriately formatted, adding a style as similar to libc's style as possible, so that both style checkers work properly simultaneously.
-
gnzlbg authored
-
- Feb 05, 2019
-
-
bors authored
Fix cmsg(3) bugs for musl and OSX This PR fixes bugs in the cmsg(3) family of functions for Linux/musl and OSX, introduced by PR #1098 and PR #1212 . It also adds an integration test which hopefully will validate these functions on every platform.
-
Alan Somers authored
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
-
Alan Somers authored
-
Alan Somers authored
This is an error from PR #1098. The wrong definitions coincidentally work on Linux/glibc, but fail on Linux/musl.
-
Alan Somers authored
This was an oversight from PR #1212. It's been revealed by the new cmsg test.
-
bors authored
Update runtest-android Keep the implementation in sync with packed_simd and stdsimd.
-
bors authored
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
-
- Feb 04, 2019
-
-
bors authored
Added inotify bindings. Hi, I'd like to add inotify bindings. This is a first throw at it. Can you guide me through the process of merging it ?
-
bors authored
Add powerpc64-unknown-freebsd FreeBSD review: https://reviews.freebsd.org/D18367
-
Vincent Dagonneau authored
-
- Feb 03, 2019
-
-
Bryant Mairs authored
This is used for running style checks on the libc codebase but shouldn't be committed, so adding it to the .gitignore file.
-
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.
-
Bryant Mairs authored
-
- Feb 02, 2019
-
-
Bryant Mairs authored
-
Bryant Mairs authored
-