Skip to content
Snippets Groups Projects
  1. May 29, 2020
  2. May 21, 2020
  3. May 07, 2020
  4. Apr 14, 2020
  5. Apr 13, 2020
  6. Apr 09, 2020
  7. Apr 04, 2020
  8. Mar 08, 2020
  9. Feb 29, 2020
  10. Feb 19, 2020
    • Vickenty Fesunov's avatar
      Add memmem · 1c012aec
      Vickenty Fesunov authored
      memmem is a non-standard extension, first added in GNU libc and later
      ported to other systems. Support for it is non-uniform, thus it was only
      added to platforms that seem to support it.
      1c012aec
  11. Nov 21, 2019
  12. Sep 12, 2019
  13. Sep 02, 2019
  14. Aug 17, 2019
  15. Jul 27, 2019
  16. Jul 09, 2019
  17. Jun 03, 2019
  18. May 31, 2019
  19. May 28, 2019
  20. May 27, 2019
  21. May 22, 2019
  22. May 21, 2019
  23. Feb 22, 2019
  24. Feb 13, 2019
  25. 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
  26. Feb 03, 2019
  27. Feb 02, 2019
  28. Nov 26, 2018
  29. Nov 01, 2018
  30. Jul 05, 2018
  31. Jun 18, 2018
  32. Apr 11, 2018
  33. Dec 08, 2017
  34. Oct 31, 2017
  35. Oct 27, 2017
  36. Oct 17, 2017
Loading