@@ -10,34 +10,59 @@ RUN /cmake.sh
1010COPY xargo.sh /
1111RUN /xargo.sh
1212
13- COPY android-ndk.sh /
14- RUN /android-ndk.sh x86 28
15- ENV PATH=$PATH:/android-ndk/bin
16-
17- COPY android-system.sh /
18- RUN /android-system.sh x86
19-
2013# We could supposedly directly run i686 binaries like we do for x86_64, but
2114# doing so generates an assertion failure:
2215# ... assertion failed: signal(libc::SIGPIPE, libc::SIG_IGN) != libc::SIG_ERR
2316# ... src/libstd/sys/unix/mod.rs
2417# fatal runtime error: failed to initiate panic, error 5
2518#
26- # Running with qemu works as expected
19+ # Running with qemu works as expected. it also ensures that're we're
20+ # running on a CPU that only supports 32-bit x86 systems.
2721COPY qemu.sh /
2822RUN /qemu.sh i386
2923
24+ ARG ANDROID_NDK=r25b
25+ ARG ANDROID_SDK=28
26+ ARG ANDROID_VERSION=9.0.0_r1
27+ ARG ANDROID_SYSTEM_NONE=0
28+ ARG ANDROID_SYSTEM_COMPLETE=0
29+ ARG PYTHON_TMPDIR=/tmp/android
30+
31+ COPY validate-android-args.sh /
32+ RUN /validate-android-args.sh x86
33+
34+ COPY android-ndk.sh /
35+ RUN /android-ndk.sh x86
36+ ENV PATH=$PATH:/android-ndk/bin
37+
38+ COPY android-system.sh /
39+ RUN mkdir -p $PYTHON_TMPDIR
40+ COPY android $PYTHON_TMPDIR
41+ RUN /android-system.sh x86
42+
3043ENV CROSS_SYSROOT=/android-ndk/sysroot
31- RUN cp $CROSS_SYSROOT/usr/lib/i686-linux-android/28/libz.so /system/lib/
44+ COPY android-symlink.sh /
45+ RUN /android-symlink.sh i386 i686-linux-android
3246
3347COPY android-runner /
3448
3549# Libz is distributed in the android ndk, but for some unknown reason it is not
3650# found in the build process of some crates, so we explicit set the DEP_Z_ROOT
3751ENV CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \
3852 CARGO_TARGET_I686_LINUX_ANDROID_RUNNER="/android-runner i686" \
53+ AR_i686_linux_android=i686-linux-android-ar \
54+ AS_i686_linux_android=i686-linux-android-as \
3955 CC_i686_linux_android=i686-linux-android-gcc \
4056 CXX_i686_linux_android=i686-linux-android-g++ \
57+ LD_i686_linux_android=i686-linux-android-ld \
58+ NM_i686_linux_android=i686-linux-android-nm \
59+ OBJCOPY_i686_linux_android=i686-linux-android-objcopy \
60+ OBJDUMP_i686_linux_android=i686-linux-android-objdump \
61+ RANLIB_i686_linux_android=i686-linux-android-ranlib \
62+ READELF_i686_linux_android=i686-linux-android-readelf \
63+ SIZE_i686_linux_android=i686-linux-android-size \
64+ STRINGS_i686_linux_android=i686-linux-android-strings \
65+ STRIP_i686_linux_android=i686-linux-android-strip \
4166 BINDGEN_EXTRA_CLANG_ARGS_i686_linux_android="--sysroot=$CROSS_SYSROOT" \
4267 DEP_Z_INCLUDE="$CROSS_SYSROOT/usr/include/" \
4368 LIBZ_SYS_STATIC=1 \
0 commit comments