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