Repository navigation
[CI] CI for i686-linux-android is broken #1765
Description
Activity
- added a commit that references this issue
on Aug 20, 2020 - added a commit that references this issue
on Aug 21, 2020 - changed the title
[-][CI] Some Android targets are broken[/-][+][CI] CI for i686-linux-android is broken[/+]on Oct 14, 2020 Consider using a newer toolchain for android.
Current CI uses API 21's toolchain. These functions were added in later versions of android to the TC.
According to headers insysroot/usr/includeof the latest ndkAPI 23 Functions:
openpty,forkpty,login_tty,sethostname,sigtimedwait,fmemopen,open_memstream,open_wmemstream,clock_getcpuclockidAPI 24 Functions:
lockf,preadv64,pwritev64,getifaddrs,freeifaddrs,getgrgid_r,getgrnam_rCurrent CI uses API 21's toolchain.
Hm, it's weird. IIUC we use API 24 for arm/aarch64 and API 28 for i686/x86_64, am I missing something?
Current CI uses API 21's toolchain.
Hm, it's weird. IIUC we use API 24 for arm/aarch64 and API 28 for i686/x86_64, am I missing something?
Did you recently change the CI? It was using android21 with azure pipelines 12 days ago.
No. Here's our config for Android NDK:
libc/ci/android-install-ndk.sh
Lines 5 to 34 in 2d044d9
NDK=android-ndk-r21d wget --tries=20 https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip unzip -q ${NDK}-linux-x86_64.zip case "$1" in arm) arch=arm api=24 ;; armv7) arch=arm api=24 ;; aarch64) arch=arm64 api=24 ;; i686) arch=x86 api=28 ;; x86_64) arch=x86_64 api=28 ;; *) echo "invalid arch: $1" exit 1 ;; esac; It was using android21 with azure pipelines 12 days ago.
You mean
r21dis API 21?No. Here's our config for Android NDK:
libc/ci/android-install-ndk.sh
Lines 5 to 34 in 2d044d9
NDK=android-ndk-r21d wget --tries=20 https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip unzip -q ${NDK}-linux-x86_64.zip case "$1" in arm) arch=arm api=24 ;; armv7) arch=arm api=24 ;; aarch64) arch=arm64 api=24 ;; i686) arch=x86 api=28 ;; x86_64) arch=x86_64 api=28 ;; *) echo "invalid arch: $1" exit 1 ;; esac; It was using android21 with azure pipelines 12 days ago.
You mean
r21dis API 21?The old build is no longer opening on azure pipelines but I remember it was using aarch64-linux-android21-clang
Perhaps I am remembering wrong. My bad!Reacted by Yuki OkushiI also noticed that it was using
aarch64-linux-android21-clang, while the other Android architectures usex86_64-linux-android28-clangandarmv7a-linux-androideabi24-clang. I couldn't see where these version numbers come from though, as theandroid-install-ndk.shscript does indeed seem to be installing a newer version.Where can I find instructions on how to run the CI tests locally, so I can try to debug this without having to push to a PR every time?
You can run the scripts like CI on your local but I wouldn't recommend it.
I think we have two simple ways to debug CI:- Run GHA on your local with https://github.com/nektos/act
- Run GHA on your fork repo with a tweak to run Android jobs only (I'm doing it on Fix aarch64-linux-android target CI #1927 with try builder)
So, after some debugging, I think https://github.com/alexcrichton/cc-rs/pull/495 is the cause. If we set
cc = "=1.0.52", the test passes: https://github.com/rust-lang/libc/runs/1266137760
I'm going to pincccrate for now, but it'd be great if we could introduce an actual fix for it (I'll file an issue on that repository later).- added 4 commits that reference this issue
on Oct 16, 2020
Currently, aarch64-unknown-linux-android and i686-linux-android targets are broken.
The logs:
We should investigate the cause and land a fix.