Skip to content
Snippets Groups Projects
  1. May 12, 2020
  2. Apr 13, 2020
  3. Mar 13, 2020
  4. Mar 10, 2020
  5. Feb 20, 2020
  6. Nov 29, 2019
  7. Oct 28, 2019
  8. Oct 18, 2019
  9. Aug 20, 2019
  10. Aug 17, 2019
  11. Aug 14, 2019
  12. Aug 06, 2019
  13. Jul 27, 2019
  14. Jul 15, 2019
  15. Jul 11, 2019
  16. Jul 08, 2019
  17. Jun 02, 2019
  18. May 31, 2019
  19. May 28, 2019
  20. May 24, 2019
  21. May 16, 2019
  22. May 02, 2019
  23. Apr 26, 2019
  24. Apr 19, 2019
  25. Mar 28, 2019
  26. Mar 04, 2019
  27. Feb 13, 2019
  28. 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
  29. Feb 02, 2019
  30. Jan 23, 2019
  31. Jan 14, 2019
  32. Jan 02, 2019
  33. Dec 10, 2018
  34. Nov 26, 2018
  35. Nov 22, 2018
  36. Nov 21, 2018
    • Alex Crichton's avatar
      Prepare for being included via crates.io into std · 91bd079e
      Alex Crichton authored
      This commit prepares the `libc` crate to be included directly into the
      standard library via crates.io. More details about this can be found on
      rust-lang/rust#56092, but the main idea is that this crate now depends
      on core/compiler-builtins explicitly (but off-by-default).
      
      The main caveat here is that this activates `no_core` when building as
      part of libstd, which means that it needs to explicitly have an `iter`
      and `option` module for the expansion of `for` loops to work.
      91bd079e
  37. Nov 16, 2018
  38. Oct 26, 2018
  39. Sep 18, 2018
Loading