Skip to content
Snippets Groups Projects
  1. Aug 05, 2020
    • Dark Kirb's avatar
      Add DevkitPPC support · e9a12683
      Dark Kirb authored
      DevkitPPC does not support unix sockets natively, meaning that bindings
      to these functions was removed for powerpc targets with "nintendo" as
      vendor.
      
      Suggested target json files:
      
      Nintendo Gamecube:
      ```
      {
        "arch": "powerpc",
        "data-layout": "E-m:e-p:32:32-i64:64-n32",
        "dynamic-linking": false,
        "env": "newlib",
        "executables": true,
        "has-elf-tls": false,
        "has-rpath": true,
        "linker-flavor": "gcc",
        "llvm-target": "powerpc-eabi",
        "max-atomic-width": 32,
        "os": "dolphin",
        "target-c-int-width": "32",
        "target-endian": "big",
        "target-family": "unix",
        "target-mcount": "_mcount",
        "target-pointer-width": "32",
        "vendor": "nintendo"
      }
      ```
      
      Nintendo Wii:
      ```
      {
        "arch": "powerpc",
        "data-layout": "E-m:e-p:32:32-i64:64-n32",
        "dynamic-linking": false,
        "env": "newlib",
        "executables": true,
        "has-elf-tls": false,
        "has-rpath": true,
        "linker-flavor": "gcc",
        "llvm-target": "powerpc-eabi",
        "max-atomic-width": 32,
        "os": "revolution",
        "target-c-int-width": "32",
        "target-endian": "big",
        "target-family": "unix",
        "target-mcount": "_mcount",
        "target-pointer-width": "32",
        "vendor": "nintendo"
      }
      ```
      e9a12683
  2. Nov 20, 2019
  3. Oct 29, 2019
  4. Sep 16, 2019
    • gnzlbg's avatar
      Add FreeBSD10 support · 3843c7db
      gnzlbg authored
      This adds libc-test support for Freebsd10 and a CI build job that tests
      FreeBSD10 with LIBC_CI only.
      3843c7db
  5. Aug 16, 2019
  6. Aug 15, 2019
  7. Aug 14, 2019
  8. Jul 28, 2019
  9. Jul 21, 2019
  10. Jul 15, 2019
  11. Jul 11, 2019
  12. May 24, 2019
    • gnzlbg's avatar
      Add a FreeBSD 12 build job and test FreeBSD12 APIs · 7437d0a6
      gnzlbg authored
      This commits adds a second FreeBSD 12 build job,
      and splits the implementation of the FreeBSD module
      into two modules, one for FreeBSD 11, and one for FreeBSD 12.
      
      The FreeBSD 11 module is compiled always by default, and is
      mostly forward compatible with FreeBSD 12 systems.
      
      The FreeBSD 12 module is only built for now in libc's CI,
      and uses FreeBSD 12 data types and APIs, linking to symbols
      that are only available in FreeBSD 12.
      
      Basically, when LIBC_CI env variable is defined, and the host
      system is a FreeBSD 12 system, then the FreeBSD 12 module is
      automatically built and tested. Conditional compilation is done
      using a `cfg(freebsd12)` flag.
      
      This commit also re-enables many tests, and documents why
      some remain disabled.
      7437d0a6
    • gnzlbg's avatar
      Deprecate `use_std` cargo feature: use `std` instead . · 4ac26afa
      gnzlbg authored
      Related to #657 .
      4ac26afa
  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. Nov 21, 2018
  15. Sep 18, 2018
Loading