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 03, 2019
  4. Feb 02, 2019
  5. Jan 22, 2019
  6. 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
  7. Jan 08, 2019
  8. 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
  9. Dec 27, 2018
  10. Dec 15, 2018
  11. Dec 06, 2018
  12. Dec 02, 2018
  13. Nov 27, 2018
  14. Nov 20, 2018
  15. Oct 30, 2018
  16. Oct 19, 2018
  17. Oct 06, 2018
  18. Sep 25, 2018
  19. Sep 10, 2018
  20. Jul 16, 2018
  21. Jun 08, 2018
    • Scott Lamb's avatar
      add fdopendir on macOS · 322ba046
      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
      322ba046
  22. Jun 04, 2018
  23. May 17, 2018
  24. May 10, 2018
  25. May 01, 2018
  26. Mar 16, 2018
  27. Mar 12, 2018
  28. Mar 05, 2018
  29. Mar 01, 2018
  30. Feb 27, 2018
  31. Jan 23, 2018
Loading