-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
several illumos fixes, and some additional termios constants #2560
Conversation
r? @JohnTitor (rust-highfive has picked a reviewer for you, use r? to override) |
With this series of commits, the tests now pass again:
A few of these issues would have, I suspect, been caught if folks were running the tests before putting up PRs. I recognise that there is not currently a CI builder for illumos systems for this project, but I wonder if it would be possible to CC me on future changes to illumos/Solaris files so that I can make sure the tests get run? Is there a way to volunteer myself and/or perhaps other illumos community members to look at changes that we could help review, etc? We have also, at Oxide, been experimenting with a GitHub app that can arrange for illumos CI builds of GitHub repositories. It integrates using check suites/runs like other non-Actions based things; e.g., similar to the Cirrus CI being used for FreeBSD here. Is that something we could perhaps try for the libc crate some time soon once it's had a bit more soak time? |
Thanks! There are some breaking changes though, can I assume that they currently won't work correctly? If so, I think it's okay as they're not usable anyway.
Sure, opened rust-lang/highfive#366. You'll get a ping like #2557 (comment) once it's merged.
Yea, definitely! I would love to see it :) |
Yes I believe the breaking changes I made are all to clean up things that looked mostly right but had subtle ABI-ish problems like the
Thanks! That's awesome.
Great! I'll swing back with a PR once it's ready for public consumption. |
Ohhh, sorry! I didn't r+ this one even though I checked your comment... @bors r+ |
📌 Commit 40db14e has been approved by |
several illumos fixes, and some additional termios constants I wanted to add some of the new baud rate constants that [we added recently](https://www.illumos.org/issues/13975). On the way there, I had to make a variety of fixes to get the tests to pass on illumos systems.
💔 Test failed - checks-actions |
Network failure, @bors retry |
several illumos fixes, and some additional termios constants I wanted to add some of the new baud rate constants that [we added recently](https://www.illumos.org/issues/13975). On the way there, I had to make a variety of fixes to get the tests to pass on illumos systems.
💔 Test failed - checks-actions |
There're some implementations that still use the typo'ed field name: libc/src/unix/solarish/x86_64.rs Lines 89 to 103 in 5e95cbb
|
40db14e
to
c8cc318
Compare
@pfmooney did some work to clean this up, and I've included his work in this branch and rebased. The tests now pass again:
|
I checked that the tests also pass when the |
Nice work! Would you be interested in adding illumos testing to the CI? At the moment we only check that the crate builds. @bors r+ |
📌 Commit c8cc318 has been approved by |
several illumos fixes, and some additional termios constants I wanted to add some of the new baud rate constants that [we added recently](https://www.illumos.org/issues/13975). On the way there, I had to make a variety of fixes to get the tests to pass on illumos systems.
💔 Test failed - checks-actions |
CI is failing on older Rust version (1.24) |
The test suite flagged that incorrect values for some fcntl(2) constants were added in rust-lang#2083. I have fixed the values so that they are correct for 64-bit programs, which Rust programs always are on illumos.
As per https://illumos.org/man/3EXT/sendfile a separate header and library are required to access sendfile() and sendfilev() on illumos systems.
The semver regression checks in rust-lang#2109 included the "SO_REUSEPORT" constant, which we do not yet have on illumos systems. Move it out to platform-specific files.
Some of the type information in the machine context types, with particular focus on the padding unions, was not quite right. It seems we have used the somewhat baroque "long double" in the system headers, and Rust does not have a type that matches that data layout. I have adjusted the structs to omit that member, but to be explicitly aligned to match the C version. I also gagged a test for the "fp_reg_set" member which is of an anonymous union type. Portions contributed by: Patrick Mooney <pmooney@pfmooney.com>
Various small fixes to the tests to include all the required headers, and to add some constants that are now part of the "unix" semver list, and to drop "sethostid()" which is not something we have on our platform, etc.
We added baud rate constants that are source compatible with Linux systems when used with the cfsetspeed() family, in: https://www.illumos.org/issues/13975
c8cc318
to
60213e1
Compare
Sorry about that! I've changed the align repr directives to be guarded by |
Let's give it another try! @bors r+ |
📌 Commit 60213e1 has been approved by |
☀️ Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13 |
I wanted to add some of the new baud rate constants that we added recently. On the way there, I had to make a variety of fixes to get the tests to pass on illumos systems.