-
Notifications
You must be signed in to change notification settings - Fork 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
Raise libc's FreeBSD ABI to 12 #2406
Conversation
r? @Amanieu (rust-highfive has picked a reviewer for you, use r? to override) |
LGTM, but cc @JohnTitor just in case. |
If rustc drops it, I think it's fine. Rustc's CI currently uses FreeBSD 11 (https://github.com/rust-lang/rust/blob/35c8f2612ffea42cc09350accdba934e85a19f35/src/ci/docker/scripts/freebsd-toolchain.sh#L8), could you ask infra folks if it's okay, and make a PR? When it's approved, I'll r+ this one. |
rust PR: rust-lang/rust#89083 . |
☔ The latest upstream changes (presumably #2545) made this pull request unmergeable. Please resolve the merge conflicts. |
Triage: I guess we should wait for rust-lang/rust#89058, and I wonder if we could release this along with the musl change. |
@JohnTitor there is a possibility that this change could cause breakage downstream, for example if a downstream crate assumes something about the size of ino_t. Is there any way to use crater to check whether downstream crates will still compile? |
Tagging this as breakage-candidate on the same "should be included in the upcoming review" rationale. |
Also I hit up grep.app and searched for Also, Reverie is Linux-only to begin with. |
Is any progress happening on this? Given Rust's continued inflexibility regarding OS ABIs, this is blocking FreeBSD/riscv from having a working Rust toolchain. |
@asomers Please resolve the merge conflict. |
Merge conflict resolved, @workingjubilee . |
My inclination is also to Just Merge This Already and have it go out in Also after further reading the Reverie thing is a weird gdb thing that has its own definition and any resemblance to I feel like #3139 is a better example of something we might want to wait for 0.3.0 before accepting. Might. |
Given rust-lang/rust#114521 has been merged and rust-lang/rust#89058 is now accepted, we can go ahead with this change. Removing FreeBSD 11 (and older) support should be announced somewhere (we may deprecate the modules first). |
Maybe making a Rust inside blog post before releasing would be an alternative way to announce, I guess. |
☀️ Try build successful - checks-actions, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13, checks-cirrus-freebsd-14 |
@JohnTitor A +1 from me at least on the blog post idea. It seemed to work fine for the Apple minimum bumps and I have yet to see anyone calling for my head for lack of notice. |
We can probably drop this without an announcement at this point since FreeBSD 11 has been EOL for over three years, long enough that I don't think anyone would be reasonably expecting support. FreeBSD 12 is EOL but we won't drop that here until Rust moves off of it and the platform docs merge (rust-lang/rust#129220). @rustbot author for a rebase (ah, looks like my labels raced) |
@tgross35 since this PR was opened main and 0.2 have become separate branches. Since breaking changes are allowed in main, the barrier to merging this PR should be even lower, right? |
That is correct. I think we can probably drop 11 from both branches, then maybe drop 12 from |
I would love to do that. The alternative suggestion that I would make would be to drop 11 from libc-0.2, for riscv64 only. The reason being that FreeBSD 11 didn't even support riscv64, so there are no backwards-compatibility concerns. Then after some period of time if there are no complaints from riscv users we could drop it for all architectures. |
I think we may as well drop 11 entirely if we intend to drop it at all, but if there are concerns that the version is still relevant then maybe the blog post idea is worth it? Feel free to author something short, just submit a PR adding to this directory. In any case you are the target maintainer so I'm fine with whatever you decide here :) just update this PR with as is reasonable. |
d3f5a15
to
2207d02
Compare
@tgross35 I've rebased the PR. I think we can merge this to main now. I tested it by running the test suites of several crates with a patched libc 0.2.164 that used a FreeBSD 12 ABI. All passed. Interestingly, one (cap-std) failed with the unmodified libc, but passed with the modified one. That's a direct result of the 64-bit inode change. [✓] bfffs |
FreeBSD 11 was EoL on 30-Sept-2021. Update libc's ABI to 12. That version includes significant changes, such as 64-bit inodes.
2207d02
to
4bafe6b
Compare
FreeBSD 11 will be EoL on 30-Sept-2021. Update libc's ABI to the
minimum supported version of FreeBSD.