Skip to content
Snippets Groups Projects
  1. May 23, 2019
  2. May 22, 2019
  3. May 16, 2019
  4. Mar 02, 2019
  5. Feb 24, 2019
  6. Feb 20, 2019
  7. Feb 13, 2019
  8. Feb 09, 2019
  9. 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
  10. Dec 27, 2018
  11. Nov 27, 2018
  12. Nov 20, 2018
  13. Oct 06, 2018
  14. Jul 14, 2018
  15. May 01, 2018
  16. Mar 08, 2018
  17. Mar 07, 2018
  18. Dec 13, 2017
  19. Dec 12, 2017
  20. Nov 09, 2017
  21. Nov 08, 2017
  22. Oct 29, 2017
  23. Sep 17, 2017
  24. Aug 13, 2017
  25. Aug 11, 2017
  26. Aug 10, 2017
  27. Aug 01, 2017
  28. Jul 29, 2017
Loading