-
Notifications
You must be signed in to change notification settings - Fork 13.3k
[beta] Fix TcpListener::accept() on x86 Android on beta by disabling the use of accept4. #82476
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
Conversation
On x86 before Linux 4.3, accept4 is not a separate syscall. Instead, it can be called using `socketcall(SYS_ACCEPT4, ...). Rather than implementing that here, just fall back to `accept`.
|
Similarly to the stable PR, nominated for beta backport (really just merging, as the PR already targets beta branch), but also reassigning to @joshtriplett who reviewed parts of this in the libc repository. r? @joshtriplett |
As with the stable PR, this seems like a reasonable approach to minimize changes. I prefer the approach of switching to socketcall, but that's more invasive, so this seems fine for beta. @bors r+ |
📌 Commit 695b048 has been approved by |
@bors rollup=never |
@bors p=1 |
☀️ Test successful - checks-actions |
This is the same as #82475, but for beta.
In a nutshell:
TcpListener::accept
is broken on Android x86 on stable and beta because it performs a rawaccept4
syscall, which doesn't exist on that platform. This was originally reported in #82400, so you can find more details there.@rustbot label +O-android
r? @Mark-Simulacrum