-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
Since mio
dependency update #6635
compilation using Android NDK r24 is broken.
We are using Android NDK r24 (24.0.8215888) to build deltachat-rpc-server
binaries
and Android NDK r23c (23.2.8568313) to build actual Android applications.
Both NDK r23c and r24 do not have epoll_create1 in libc when compiling for armeabi-v7a.
For reference
Android NDK r23 requires API level 16,
Android NDK r24 requires API level 19 (KitKat),
Android NDK r25 requires API level 19,
Android NDK r26 requires API level 21 (Lollipop).
Current Android NDK is r27 LTS which requires API level 21.
Android API level does not actually pin the Linux version,
epoll_create1 syscall may be available if phone vendor ships newer Linux kernel.
I have previously added the code to try using epoll_create1 as a syscall
and fallback to epoll_create if it fails:
tokio-rs/mio#1590
This allowed us to compile with Android NDK r24 without issues
(we use it for deltachat-rpc-server
releases)
and with Android NDK r23 using some shims
which we only use for the application releases.
The fallback however was removed in new mio again
stating the bump of the Linux version officially supported by Rust as the reason: tokio-rs/mio#1741.