Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Illumos/Solaris updates #17341

Merged
merged 11 commits into from
Oct 3, 2023
Merged

Illumos/Solaris updates #17341

merged 11 commits into from
Oct 3, 2023

Commits on Sep 30, 2023

  1. Configuration menu
    Copy the full SHA
    f072422 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ea92789 View commit details
    Browse the repository at this point in the history
  3. solaris: link libstdc++

    rzezeski committed Sep 30, 2023
    Configuration menu
    Copy the full SHA
    b447441 View commit details
    Browse the repository at this point in the history
  4. solaris: hard-code native libc paths

    On illumos (and Solaris) there is, by design, only one libc.
    rzezeski committed Sep 30, 2023
    Configuration menu
    Copy the full SHA
    a0ed2c6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c17ebdc View commit details
    Browse the repository at this point in the history
  6. solaris: load CA certs file

    rzezeski committed Sep 30, 2023
    Configuration menu
    Copy the full SHA
    68bcd7d View commit details
    Browse the repository at this point in the history
  7. solaris: hard-code ABI and dynamic linker

    Solaris/illumos is multi-lib, so you can't rely on an arbitrary
    executable to give you the correct dynamic linker. Besides, it's
    always the same path.
    rzezeski committed Sep 30, 2023
    Configuration menu
    Copy the full SHA
    54ad5f3 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2023

  1. Configuration menu
    Copy the full SHA
    51fa7ef View commit details
    Browse the repository at this point in the history
  2. Add illumos OS tag

    - Adds `illumos` to the `Target.Os.Tag` enum. A new function,
      `isSolarish` has been added that returns true if the tag is either
      Solaris or Illumos. This matches the naming convention found in Rust's
      `libc` crate[1].
    - Add the tag wherever `.solaris` is being checked against.
    - Check for the C pre-processor macro `__illumos__` in CMake to set the
      proper target tuple. Illumos distros patch their compilers to have
      this in the "built-in" set (verified with `echo | cc -dM -E -`).
    
      Alternatively you could check the output of `uname -o`.
    
    Right now, both Solaris and Illumos import from `c/solaris.zig`. In the
    future it may be worth putting the shared ABI bits in a base file, and
    mixing that in with specific `c/solaris.zig`/`c/illumos.zig` files.
    
    [1]: https://github.com/rust-lang/libc/tree/6e02a329a2a27f6887ea86952f389ca11e06448c/src/unix/solarish
    The-King-of-Toasters authored and rzezeski committed Oct 2, 2023
    Configuration menu
    Copy the full SHA
    2859709 View commit details
    Browse the repository at this point in the history
  3. illumos does not have versions

    The 5.11 in uname is not something that is ever updated. There is no
    versioning of the illumos system in general. Illumos prefers to rely
    on feature detection.
    
    I can't say what Solaris does these days as I do not work at Oracle;
    so I left it alone.
    rzezeski committed Oct 2, 2023
    Configuration menu
    Copy the full SHA
    42ad3e2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    dd02658 View commit details
    Browse the repository at this point in the history