[Android] Align libunwind CPU naming conventions with makefile
All CPU targets have matching names expect arm64 (vs aarch64). Create
a softlink for this case so that we don't need create more target naming
conventions in makefiles.
Signed-off-by: Anestis Bechtsoudis <anestis@census-labs.com>
diff --git a/android/Android.mk b/android/Android.mk
index 41f924a..2168dde 100644
--- a/android/Android.mk
+++ b/android/Android.mk
@@ -21,16 +21,12 @@
ifeq ($(ANDROID_WITH_PTRACE),true)
ifeq ($(APP_ABI),$(filter $(APP_ABI),armeabi armeabi-v7a))
ARCH_ABI := arm
- UNW_ARCH := arm
else ifeq ($(APP_ABI),$(filter $(APP_ABI),x86))
ARCH_ABI := x86
- UNW_ARCH := x86
else ifeq ($(APP_ABI),$(filter $(APP_ABI),arm64-v8a))
ARCH_ABI := arm64
- UNW_ARCH := aarch64
else ifeq ($(APP_ABI),$(filter $(APP_ABI),x86_64))
ARCH_ABI := x86_64
- UNW_ARCH := x86_64
else
$(error Unsuported / Unknown APP_API '$(APP_ABI)')
endif
@@ -43,9 +39,9 @@
endif
# Upstream libunwind compiled from sources with Android NDK toolchain
- LIBUNWIND_A := third_party/android/libunwind/$(ARCH_ABI)/libunwind-$(UNW_ARCH).a
+ LIBUNWIND_A := third_party/android/libunwind/$(ARCH_ABI)/libunwind-$(ARCH_ABI).a
ifeq ("$(wildcard $(LIBUNWIND_A))","")
- $(error libunwind-$(UNW_ARCH) is missing - to build execute \
+ $(error libunwind-$(ARCH_ABI) is missing - to build execute \
'third_party/android/scripts/compile-libunwind.sh third_party/android/libunwind $(ARCH_ABI)')
endif
@@ -57,7 +53,7 @@
include $(CLEAR_VARS)
LOCAL_MODULE := libunwind-arch
- LOCAL_SRC_FILES := third_party/android/libunwind/$(ARCH_ABI)/libunwind-$(UNW_ARCH).a
+ LOCAL_SRC_FILES := third_party/android/libunwind/$(ARCH_ABI)/libunwind-$(ARCH_ABI).a
LOCAL_EXPORT_C_INCLUDES := third_party/android/libunwind/include
include $(PREBUILT_STATIC_LIBRARY)
diff --git a/third_party/android/scripts/compile-libunwind.sh b/third_party/android/scripts/compile-libunwind.sh
index 0a81ce9..55eba55 100755
--- a/third_party/android/scripts/compile-libunwind.sh
+++ b/third_party/android/scripts/compile-libunwind.sh
@@ -218,6 +218,18 @@
fi
echo "[*] '$ARCH' libunwind available at '$LIBUNWIND_DIR/$ARCH'"
-cp src/.libs/*.a $ARCH
+cp src/.libs/*.a "$ARCH"
+
+# Naming conventions for arm64
+if [[ "$ARCH" == "arm64" ]]; then
+ cd "$ARCH"
+ find . -type f -name "*aarch64*.a" | while read -r libFile
+ do
+ fName=$(basename "$libFile")
+ newFName=$(echo "$fName" | sed "s#aarch64#arm64#")
+ ln -sf "$fName" "$newFName"
+ done
+ cd -
+fi
abort 0