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

Document minimum supported versions of Solaris and Illumos #124549

Open
josephlr opened this issue Apr 30, 2024 · 12 comments
Open

Document minimum supported versions of Solaris and Illumos #124549

josephlr opened this issue Apr 30, 2024 · 12 comments
Labels
A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools C-discussion Category: Discussion or questions that doesn't represent real issues. O-illumos the other shiny OS O-solaris Operating system: Solaris T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@josephlr
Copy link
Contributor

josephlr commented Apr 30, 2024

Location

https://doc.rust-lang.org/stable/rustc/platform-support.html

Summary

Rust currently supports multiple Illumos and Solaris targets (see Platform Support), but other than saying Rust supports Solaris 11, it doesn't clarify which versions of Illumos and Solaris are supported.

For context, https://github.com/rust-random/getrandom aims to supports all targets/platforms that Rust supports, including Illumos/Solaris. We currently have fallback logic to support old (pre 2018) Solaris/Illumos versions, and we are wondering when it would be OK to remove those fallbacks (both from getrandom and the standard library).

I would propose a minimum platform version of:

This would allow the standard library to unconditionally use the getrandom(2) syscall and unconditionally use named threads.

I'm not sure who's in charge of this decision, maybe @psumbera or @Toasterson

@josephlr josephlr added the A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools label Apr 30, 2024
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Apr 30, 2024
@workingjubilee
Copy link
Contributor

workingjubilee commented Apr 30, 2024

Since the ascent of the target tier policy: As long as no one is written down as maintainer, no one is in charge of this decision except the compiler team, formally speaking. And the compiler team often has fairly limited interest in, and is fairly slow to act on, setting policy for most OS.

Obviously those who have traditionally done the maintenance would ideally in fact be deferred to, if they wanted to sign up to maintain it, but you too can probably propose a minimum of whatever you want if you are willing to sign up to maintain it.

@josephlr
Copy link
Contributor Author

Looking at rust-lang/compiler-team#644 and #112936 it seems like @Toasterson and "the other illumos developers" are the maintainers of the Illumos targets, so I will defer to them. They will certainly have a better idea about what sort of cutoff makes sense.

Happy to submit/review PRs. I'm familiar with how the RNGs work on Illumos/Solaris, but that's the extent of my knowledge.

@workingjubilee
Copy link
Contributor

Oh huh, we really should've gotten a name written down then!

@Toasterson
Copy link
Contributor

According to https://omnios.org/schedule.html the oldest LTS that is currently being maintained is from 2021.
All other distros are either Rolling releases or have less stringent requirements.
What is of note is that the sysroot that rust uses to cross compile in the CI is from 2018 although it already has getrandom
https://github.com/illumos/sysroot/releases @jclulow should we do a new release of the sysroot?

@Toasterson
Copy link
Contributor

For Solaris @alanc can say more

@psumbera
Copy link
Contributor

My recommendation for Solaris is version 11.4 (released in August 2018). This version is still fully supported.

And there is publicly available Solaris 11.4 CBE release for free/open source developers and non-production personal use:
https://blogs.oracle.com/solaris/post/announcing-the-first-oracle-solaris-114-cbe

I have never used Rust on Solaris 11.3. The main reason was Rust bootstraping.

@jclulow
Copy link
Contributor

jclulow commented Apr 30, 2024

G'day! FWIW, I had thought that @pfmooney and myself were listed as maintainers, as we've been trying to do that haha. We certainly get pings from relevant changes to the libc crate. If there's somewhere else you should put our names down, please let us know how to make that happen. We're both members of the illumos core team and can generally speak for the project.

It's definitely fine, at this point, to assume getrandom() exists, as far as I know. Patrick and I have discussed moving the sysroot forward this year. We still need to work out the particulars.

As an aside, 0.29 is not an illumos version, just a library version for libc, which is relatively inside baseball and not something people would generally recognise. We also don't version the illumos codebase, itself; the master branch is essentially a rolling stable release that makes its way into various distributions which have their own release schedules. The sysroot we provided to the Rust project when setting up the port was our attempt to provide a fixed point for compatibility.

I'll try and get back to you soon with more details on our plans -- but definitely please let's get Patrick and myself into whichever documents are relevant!

@workingjubilee
Copy link
Contributor

We try to have names linked from the operating system's platform support page so that random Rust maintainers can easily scare up some names without doing too much spelunking.

@jclulow
Copy link
Contributor

jclulow commented Apr 30, 2024

Ah! Thanks. I'll look at drafting a page for illumos analogous to the other Tier 2 platforms.

@psumbera
Copy link
Contributor

For record. Both Solaris 11.4 and 11.3 do support getrandom().

@alanc
Copy link

alanc commented Apr 30, 2024

For rust on Solaris, @psumbera is our expert.

For getrandom() support in libc, what's been said so far is correct, it's available in Solaris 11.3.0 and later.

@josephlr
Copy link
Contributor Author

josephlr commented May 2, 2024

Since it sounds like the minimum version will be the above proposed versions or (more likely) later versions, I've filed rust-random/getrandom#417 to unconditionally used getrandom on Solaris and Illumos. Feel free to take a look if you're interested.

@jieyouxu jieyouxu added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-discussion Category: Discussion or questions that doesn't represent real issues. O-solaris Operating system: Solaris O-illumos the other shiny OS and removed needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-docs Area: documentation for any part of the project, including the compiler, standard library, and tools C-discussion Category: Discussion or questions that doesn't represent real issues. O-illumos the other shiny OS O-solaris Operating system: Solaris T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

8 participants