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. May 26, 2018
  6. Oct 19, 2017
  7. Oct 18, 2017
  8. Aug 27, 2017
  9. Aug 26, 2017
  10. Aug 03, 2017
  11. Aug 01, 2017
  12. Jul 20, 2017
  13. Jul 04, 2017
  14. Jul 03, 2017
  15. Apr 25, 2017
    • Anatol Pomozov's avatar
      Make sigaction.sa_restorer public · 326df185
      Anatol Pomozov authored
      We need to create an initialized sigaction struct for Linux syscalls
      thus its fields need to be public.
      
      The field was named _restorer before but system libc/kernel uapi name the field
      sa_restorer.
      326df185
  16. Apr 19, 2017
  17. Feb 27, 2017
Loading