Skip to content
Snippets Groups Projects
  1. Feb 13, 2019
  2. Feb 07, 2019
    • gnzlbg's avatar
      Fix build on all platforms · a17a91cd
      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 .
      a17a91cd
  3. Feb 02, 2019
  4. Jan 22, 2019
  5. Jan 16, 2019
    • Alan Somers's avatar
      Fix CMSG_DATA(3) and friends on BSD · 8067378d
      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
      8067378d
  6. Jan 08, 2019
  7. Jan 03, 2019
    • Alan Somers's avatar
      Fix uname on FreeBSD · 36baf932
      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
      36baf932
  8. Dec 15, 2018
  9. Nov 27, 2018
  10. Nov 20, 2018
  11. Oct 30, 2018
  12. Oct 19, 2018
  13. Oct 06, 2018
  14. Sep 10, 2018
  15. Jul 16, 2018
  16. May 17, 2018
  17. Mar 16, 2018
  18. Mar 12, 2018
  19. Feb 27, 2018
  20. Jan 23, 2018
  21. Jan 22, 2018
  22. Dec 17, 2017
  23. Dec 16, 2017
  24. Dec 12, 2017
  25. Dec 04, 2017
  26. Nov 28, 2017
  27. Nov 17, 2017
  28. Nov 09, 2017
  29. Nov 08, 2017
  30. Nov 06, 2017
  31. Oct 17, 2017
  32. Oct 05, 2017
  33. Sep 17, 2017
  34. Aug 27, 2017
    • Alex Crichton's avatar
      Add asmjs/wasm32 to CI · 22b98ded
      Alex Crichton authored
      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!
      22b98ded
  35. Jul 29, 2017
  36. Jun 30, 2017
Loading