Skip to content
Snippets Groups Projects
  1. Aug 20, 2020
  2. 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
  3. Jul 08, 2020
    • Jake Goulding's avatar
      Limit macOS `$INODE64` symbol names to x86 and x86_64 · 8c2daaea
      Jake Goulding authored
      The new ARM-based platform doesn't need these as there's no legacy
      constraints.
      
      Tested via
      
      **demo.c**
      
      ```c
      
      int main() {
        fstat(0, NULL);
        fstatat(0, NULL, NULL, 0);
        lstat(NULL, NULL);
        stat(NULL, NULL);
        readdir(NULL);
        readdir_r(NULL, NULL, NULL);
      }
      ```
      
      **Compilation**
      
      ```none
      % SDKROOT=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk MACOSX_DEPLOYMENT_TARGET=11.5 cc -arch arm64 demo.c
      
      % nm a.out
      0000000100008030 d __dyld_private
      0000000100000000 T __mh_execute_header
                       U _fstat
                       U _fstatat
                       U _lstat
      0000000100003e64 T _main
                       U _readdir
                       U _readdir_r
                       U _stat
                       U dyld_stub_binder
      ```
      
      This has also been experimentally compiled on a Developer Transition Kit.
      8c2daaea
  4. May 21, 2020
  5. Apr 11, 2020
  6. Apr 07, 2020
    • Brian Gavin's avatar
      Add strsignal(3) to unix · 106dcc2d
      Brian Gavin authored
      This does not add sys_siglist because the docs specify that the function
      should be used instead, whenever possible.
      106dcc2d
  7. Apr 03, 2020
  8. Mar 26, 2020
  9. Feb 29, 2020
  10. Feb 21, 2020
  11. Feb 19, 2020
  12. Sep 20, 2019
  13. Sep 16, 2019
  14. Sep 12, 2019
  15. Jul 28, 2019
    • Luca Pizzamiglio's avatar
      Add support for FreeBSD CURRENT (aka freebsd13) · 4a74f1e0
      Luca Pizzamiglio authored
      Currently, libc supports and detects freebsd11 and freebsd13
      Unknown versions, like freebsd13, is treated as freebsd11.
      This patch solve the issues, detecting freebsd13 and treating it like
      freebsd12.
      Inverting the logic not(freebsd12) -> freebsd11 where possible
      4a74f1e0
  16. Jul 26, 2019
  17. Jul 21, 2019
    • Luca Pizzamiglio's avatar
      Add support for FreeBSD CURRENT (aka freebsd13) · 96ea9c99
      Luca Pizzamiglio authored
      Currently, libc supports and detects freebsd11 and freebsd13
      Unknown versions, like freebsd13, is treated as freebsd11.
      This patch solve the issues, detecting freebsd13 and treating it like
      freebsd12.
      Inverting the logic not(freebsd12) -> freebsd11 where possible
      96ea9c99
  18. Jul 15, 2019
  19. Jun 23, 2019
  20. Jun 03, 2019
  21. May 29, 2019
  22. May 27, 2019
  23. 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
      Fix locale_t in unix and fuchsia. · 5e2b0d88
      gnzlbg authored
      Closes #1055.
      5e2b0d88
    • gnzlbg's avatar
      Deprecate `use_std` cargo feature: use `std` instead . · 4ac26afa
      gnzlbg authored
      Related to #657 .
      4ac26afa
  24. May 23, 2019
  25. May 22, 2019
  26. May 18, 2019
  27. May 16, 2019
  28. May 04, 2019
  29. Apr 19, 2019
  30. Apr 17, 2019
  31. Mar 03, 2019
  32. Feb 22, 2019
    • gnzlbg's avatar
      Clean libc-test for apple targets · f5cbdbc2
      gnzlbg authored
      This cleans up the build.rs of `libc-test` for apple targets.
      
      I wanted to update the docker containers of some targets so that we can start
      testing newer currently-skipped APIs properly, but it is impossible to figure
      out which headers and APIs are skipped for each target.
      
      This PR separates the testing of apple targets into its own self-contained
      function. This allows seeing exactly which headers are included, and which items
      are skipped. A lot of work will be required to separate the testing of all major
      platforms and make the script reasonable.
      
      During the clean up, I discovered that, at least for apple targets, deprecated
      but not removed APIs are not tested. I re-enabled testing for those, and fixed
      `daemon`, which was not properly linking its symbol. I also added the
      `#[deprecated]` attribute to the `#[deprecated]` APIs of the apple targets. The
      attribute is available since Rust 1.9.0 and the min. Rust version we support is
      Rust 1.13.0.
      
      Many other APIs are also currently not tested "because they are weird" which I
      interpret as "the test failed for an unknown reason", as a consequence:
      
      * the signatures of execv, execve, and execvp are incorrect (see
        https://github.com/rust-lang/libc/issues/1272)
      
      * the `sig_t` type is called `sighandler_t` in libc for some reason:
        https://github.com/rust-lang/libc/issues/1273
      
      This probably explains why some other things, like the
      `sa_handler`/`sa_sigaction` fields of `sigaction` were skipped. The field is
      actually a union, which can be either a `sig_t` for the `sa_handler` field, or
      some other type for the `sa_sigaction` field, but because the distinction was
      not made, the field was not checked.
      
      The latest ctest version can check volatile pointers, so a couple of skipped
      tests are now tested using this feature.
      f5cbdbc2
  33. Feb 20, 2019
Loading