From 0bf7f6b387fd30bf96109b00bfa9015749ad7249 Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 31 Aug 2026 20:40:02 -0500 Subject: [PATCH] fix: cross-compile bundled Android git libs with Rust --- .gitea/workflows/android-build.yml | 1 + AndroidProjectTooling.sh | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/android-build.yml b/.gitea/workflows/android-build.yml index 5c01f95..34ece15 100644 --- a/.gitea/workflows/android-build.yml +++ b/.gitea/workflows/android-build.yml @@ -107,6 +107,7 @@ jobs: export PATH="$HOME/.cargo/bin:$PATH" cargo --version rustc --version + rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android - name: Compile bundled native Git binaries shell: bash diff --git a/AndroidProjectTooling.sh b/AndroidProjectTooling.sh index 5f7a6b2..efe5f8f 100755 --- a/AndroidProjectTooling.sh +++ b/AndroidProjectTooling.sh @@ -502,10 +502,11 @@ build_host_git() { build_android_git_for_abi() { local abi="$1" local cc="$2" + local rust_target="$3" local output_dir="$ANDROID_JNI_DIR/$abi" local output_binary="$output_dir/libgit.so" local stamp="$output_dir/.source-fingerprint" - local fingerprint="$3:android:$abi:$cc:$ANDROID_API:githug-embedded-main" + local fingerprint="$4:android:$abi:$cc:$rust_target:$ANDROID_API:githug-embedded-main" require_path "$ANDROID_TOOLBIN/$cc" @@ -530,6 +531,7 @@ build_android_git_for_abi() { AR=llvm-ar \ RANLIB=llvm-ranlib \ STRIP=llvm-strip \ + RUST_TARGETS="$rust_target" \ "${make_args[@]}" \ git @@ -554,10 +556,10 @@ build_android_git() { local fingerprint fingerprint="$(git_source_fingerprint)" - build_android_git_for_abi "arm64-v8a" "aarch64-linux-android${ANDROID_API}-clang" "$fingerprint" - build_android_git_for_abi "armeabi-v7a" "armv7a-linux-androideabi${ANDROID_API}-clang" "$fingerprint" - build_android_git_for_abi "x86" "i686-linux-android${ANDROID_API}-clang" "$fingerprint" - build_android_git_for_abi "x86_64" "x86_64-linux-android${ANDROID_API}-clang" "$fingerprint" + build_android_git_for_abi "arm64-v8a" "aarch64-linux-android${ANDROID_API}-clang" "aarch64-linux-android" "$fingerprint" + build_android_git_for_abi "armeabi-v7a" "armv7a-linux-androideabi${ANDROID_API}-clang" "armv7-linux-androideabi" "$fingerprint" + build_android_git_for_abi "x86" "i686-linux-android${ANDROID_API}-clang" "i686-linux-android" "$fingerprint" + build_android_git_for_abi "x86_64" "x86_64-linux-android${ANDROID_API}-clang" "x86_64-linux-android" "$fingerprint" } build_all_git_targets() {