Skip to content

Commit 8c65fd5

Browse files
committed
Auto merge of #3435 - JohnTitor:android-ndk-update, r=JohnTitor
Upgrade Android NDK version
2 parents f5172d2 + 73fc089 commit 8c65fd5

File tree

7 files changed

+49
-57
lines changed

7 files changed

+49
-57
lines changed

ci/android-install-ndk.sh

Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,10 @@
22

33
set -ex
44

5-
NDK=android-ndk-r21d
6-
wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip
7-
unzip -q ${NDK}-linux-x86_64.zip
5+
NDK=android-ndk-r26b
6+
wget --tries=20 -q https://dl.google.com/android/repository/${NDK}-linux.zip
7+
unzip -q ${NDK}-linux.zip
88

9-
case "$1" in
10-
arm)
11-
arch=arm
12-
api=28
13-
;;
14-
armv7)
15-
arch=arm
16-
api=28
17-
;;
18-
aarch64)
19-
arch=arm64
20-
api=28
21-
;;
22-
i686)
23-
arch=x86
24-
api=28
25-
;;
26-
x86_64)
27-
arch=x86_64
28-
api=28
29-
;;
30-
*)
31-
echo "invalid arch: $1"
32-
exit 1
33-
;;
34-
esac;
9+
mv ./${NDK}/toolchains/llvm/prebuilt/linux-x86_64 /android
3510

36-
python3 ${NDK}/build/tools/make_standalone_toolchain.py \
37-
--install-dir "/android/ndk-${1}" \
38-
--arch "${arch}" \
39-
--api ${api}
40-
41-
rm -rf ./${NDK}-linux-x86_64.zip ./${NDK}
11+
rm -rf ./${NDK}-linux.zip ./${NDK}

ci/docker/aarch64-linux-android/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ WORKDIR /android/
1919
COPY android* /android/
2020

2121
ENV ANDROID_ARCH=aarch64
22-
ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
22+
ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
2323

24-
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
24+
RUN sh /android/android-install-ndk.sh
2525
RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
2626
RUN mv /root/.android /tmp
2727
RUN chmod 777 -R /tmp/.android
@@ -31,6 +31,7 @@ ENV PATH=$PATH:/rust/bin \
3131
CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android28-clang \
3232
CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=/tmp/runtest \
3333
CC_aarch64_linux_android=aarch64-linux-android28-clang \
34+
AR_aarch64_linux_android=llvm-ar \
3435
HOME=/tmp
3536

3637
ADD runtest-android.rs /tmp/runtest.rs

ci/docker/arm-linux-androideabi/Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@ WORKDIR /android/
1919
COPY android* /android/
2020

2121
ENV ANDROID_ARCH=arm
22-
ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
22+
ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
2323

24-
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
24+
RUN sh /android/android-install-ndk.sh
2525
RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
2626
RUN mv /root/.android /tmp
2727
RUN chmod 777 -R /tmp/.android
2828
RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
2929

3030
ENV PATH=$PATH:/rust/bin \
31-
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=arm-linux-androideabi-gcc \
31+
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi28-clang \
3232
CARGO_TARGET_ARM_LINUX_ANDROIDEABI_RUNNER=/tmp/runtest \
33-
CC_arm_linux_androideabi=arm-linux-androideabi-gcc \
33+
CC_arm_linux_androideabi=armv7a-linux-androideabi28-clang \
34+
AR_arm_linux_androideabi=llvm-ar \
3435
HOME=/tmp
3536

3637
ADD runtest-android.rs /tmp/runtest.rs

ci/docker/i686-linux-android/Dockerfile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@ WORKDIR /android/
1919
COPY android* /android/
2020

2121
ENV ANDROID_ARCH=i686
22-
ENV PATH=$PATH:/android/ndk-$ANDROID_ARCH/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
22+
ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
2323

24-
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
24+
RUN sh /android/android-install-ndk.sh
2525
RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
2626
RUN mv /root/.android /tmp
2727
RUN chmod 777 -R /tmp/.android
2828
RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
2929

3030
ENV PATH=$PATH:/rust/bin \
31-
CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \
31+
CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android28-clang \
3232
CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \
33-
CC_i686_linux_android=i686-linux-android-gcc \
33+
CC_i686_linux_android=i686-linux-android28-clang \
34+
AR_i686_linux_android=llvm-ar \
3435
HOME=/tmp
3536

3637
ADD runtest-android.rs /tmp/runtest.rs

ci/docker/x86_64-linux-android/Dockerfile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@ RUN apt-get update && \
1313
WORKDIR /android/
1414
ENV ANDROID_ARCH=x86_64
1515
COPY android-install-ndk.sh /android/
16-
RUN sh /android/android-install-ndk.sh $ANDROID_ARCH
16+
RUN sh /android/android-install-ndk.sh
1717

1818
# We do not run x86_64-linux-android tests on an android emulator.
1919
# See ci/android-sysimage.sh for information about how tests are run.
2020
COPY android-sysimage.sh /android/
2121
RUN bash /android/android-sysimage.sh x86_64 x86_64-24_r07.zip
2222

23-
ENV PATH=$PATH:/rust/bin:/android/ndk-$ANDROID_ARCH/bin \
24-
CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android-gcc \
25-
CC_x86_64_linux_android=x86_64-linux-android-gcc \
26-
CXX_x86_64_linux_android=x86_64-linux-android-g++ \
23+
ENV PATH=$PATH:/rust/bin:/android/linux-x86_64/bin \
24+
CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=x86_64-linux-android28-clang \
25+
CC_x86_64_linux_android=x86_64-linux-android28-clang \
26+
CXX_x86_64_linux_android=x86_64-linux-android28-clang++ \
27+
AR_x86_64_linux_android=llvm-ar \
2728
HOME=/tmp

ci/install-rust.sh

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,7 @@ toolchain=
88
if [ -n "$TOOLCHAIN" ]; then
99
toolchain=$TOOLCHAIN
1010
else
11-
# Pin the nightly version as newer nightly versions break CI,
12-
# https://github.com/rust-lang/rust/issues/103673 contains related information.
13-
case "$TARGET" in
14-
*android*) toolchain=nightly-2022-10-09;;
15-
*) toolchain=nightly;;
16-
esac
11+
toolchain=nightly
1712
fi
1813
if [ "$OS" = "windows" ]; then
1914
: "${TARGET?The TARGET environment variable must be set.}"

libc-test/build.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1758,6 +1758,14 @@ fn test_android(target: &str) {
17581758
// These are tested in the `linux_elf.rs` file.
17591759
"Elf64_Phdr" | "Elf32_Phdr" => true,
17601760

1761+
// FIXME: The type of `iv` has been changed.
1762+
"af_alg_iv" => true,
1763+
1764+
// FIXME: The size of struct has been changed:
1765+
"inotify_event" => true,
1766+
// FIXME: The field has been changed:
1767+
"sockaddr_vm" => true,
1768+
17611769
_ => false,
17621770
}
17631771
});
@@ -1863,6 +1871,14 @@ fn test_android(target: &str) {
18631871
| "NTF_EXT_LOCKED"
18641872
| "ALG_SET_DRBG_ENTROPY" => true,
18651873

1874+
// FIXME: Something has been changed on r26b:
1875+
| "IPPROTO_MAX"
1876+
| "NFNL_SUBSYS_COUNT"
1877+
| "NF_NETDEV_NUMHOOKS"
1878+
| "NFT_MSG_MAX"
1879+
| "SW_MAX"
1880+
| "SW_CNT" => true,
1881+
18661882
_ => false,
18671883
}
18681884
});
@@ -1909,6 +1925,11 @@ fn test_android(target: &str) {
19091925
// Added in API level 28, but some tests use level 24.
19101926
"fread_unlocked" | "fwrite_unlocked" | "fgets_unlocked" | "fflush_unlocked" => true,
19111927

1928+
// FIXME: bad function pointers:
1929+
"isalnum" | "isalpha" | "iscntrl" | "isdigit" | "isgraph" | "islower" | "isprint"
1930+
| "ispunct" | "isspace" | "isupper" | "isxdigit" | "isblank" | "tolower"
1931+
| "toupper" => true,
1932+
19121933
_ => false,
19131934
}
19141935
});
@@ -1924,7 +1945,9 @@ fn test_android(target: &str) {
19241945
// incorrect, see: https://github.com/rust-lang/libc/issues/1359
19251946
(struct_ == "sigaction" && field == "sa_sigaction") ||
19261947
// signalfd had SIGSYS fields added in Android 4.19, but CI does not have that version yet.
1927-
(struct_ == "signalfd_siginfo" && field == "ssi_call_addr")
1948+
(struct_ == "signalfd_siginfo" && field == "ssi_call_addr") ||
1949+
// FIXME: Seems the type has been changed on NDK r26b
1950+
(struct_ == "flock64" && (field == "l_start" || field == "l_len"))
19281951
});
19291952

19301953
cfg.skip_field(move |struct_, field| {

0 commit comments

Comments
 (0)