From cd07e5d21196dfd5cae14dbb2ac0f3e04d4cd8f9 Mon Sep 17 00:00:00 2001 From: Czarek Nakamoto Date: Wed, 12 Jun 2024 16:53:30 +0200 Subject: [PATCH] fix wownero build issues, rename target to proper triplet --- build_single.sh | 50 +++-------- monero_libwallet2_api_c/CMakeLists.txt | 2 +- patches/monero/0013-rename-arm-armv7a.patch | 94 ++++++++++++++++++++ patches/wownero/0012-rename-arm-armv7a.patch | 94 ++++++++++++++++++++ 4 files changed, 202 insertions(+), 38 deletions(-) create mode 100644 patches/monero/0013-rename-arm-armv7a.patch create mode 100644 patches/wownero/0012-rename-arm-armv7a.patch diff --git a/build_single.sh b/build_single.sh index d393f6b..7a2c44e 100755 --- a/build_single.sh +++ b/build_single.sh @@ -59,47 +59,23 @@ case "$HOST_ABI" in ;; "x86_64-linux-android") export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH" - if [[ "$repo" == "wownero" ]]; - then - export CC=x86_64-linux-android-clang - export CXX=x86_64-linux-android-clang++ - else - export CC=x86_64-linux-android21-clang - export CXX=x86_64-linux-android21-clang++ - fi + export CC=x86_64-linux-android21-clang + export CXX=x86_64-linux-android21-clang++ ;; "i686-linux-android") export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH" - if [[ "$repo" == "wownero" ]]; - then - export CC=i686-linux-android-clang - export CXX=i686-linux-android-clang++ - else - export CC=i686-linux-android21-clang - export CXX=i686-linux-android21-clang++ - fi + export CC=i686-linux-android21-clang + export CXX=i686-linux-android21-clang++ ;; "aarch64-linux-android") export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH" - if [[ "$repo" == "wownero" ]]; - then - export CC=aarch64-linux-android-clang - export CXX=aarch64-linux-android-clang++ - else - export CC=aarch64-linux-android21-clang - export CXX=aarch64-linux-android21-clang++ - fi + export CC=aarch64-linux-android21-clang + export CXX=aarch64-linux-android21-clang++ ;; - "arm-linux-androideabi") + "armv7a-linux-androideabi") export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH" - if [[ "$repo" == "wownero" ]]; - then - export CC=arm-linux-androideabi-clang - export CXX=arm-linux-androideabi-clang++ - else - export CC=armv7a-linux-androideabi21-clang - export CXX=armv7a-linux-androideabi21-clang++ - fi + export CC=armv7a-linux-androideabi21-clang + export CXX=armv7a-linux-androideabi21-clang++ ;; "i686-w64-mingw32") update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix @@ -138,7 +114,7 @@ case "$HOST_ABI" in esac pushd $repo/contrib/depends case "$HOST_ABI" in - "x86_64-linux-gnu" | "i686-linux-gnu" | "aarch64-linux-gnu" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "arm-linux-androideabi" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11") + "x86_64-linux-gnu" | "i686-linux-gnu" | "aarch64-linux-gnu" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "armv7a-linux-androideabi" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11") CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC" ;; "host-apple-darwin" | "x86_64-host-apple-darwin" | "aarch64-host-apple-darwin") @@ -301,7 +277,7 @@ pushd $repo/build/${HOST_ABI} "aarch64-linux-android") env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv8-a" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-armv8" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="arm64-v8a" ../.. ;; - "arm-linux-androideabi") + "armv7a-linux-androideabi") env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-armv7" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="armeabi-v7a" ../.. ;; "x86_64-w64-mingw32") @@ -355,7 +331,7 @@ pushd ${repo}_libwallet2_api_c mkdir -p build/${HOST_ABI} -p pushd build/${HOST_ABI} case $HOST_ABI in - "x86_64-linux-gnu" | "i686-linux-gnu" | "aarch64-linux-gnu" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11" | "host-apple-darwin" | "x86_64-host-apple-darwin" | "aarch64-host-apple-darwin" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "arm-linux-androideabi") + "x86_64-linux-gnu" | "i686-linux-gnu" | "aarch64-linux-gnu" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11" | "host-apple-darwin" | "x86_64-host-apple-darwin" | "aarch64-host-apple-darwin" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "armv7a-linux-androideabi") echo $CC env CC="${CC}" CXX="${CXX}" cmake -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../.. CC="${CC}" CXX="${CXX}" make $NPROC @@ -401,7 +377,7 @@ pushd release/$repo rm ${HOST_ABI}_libssp-0.dll.xz || true xz -e ${HOST_ABI}_libssp-0.dll fi - if [[ "$HOST_ABI" == "x86_64-linux-android" || "$HOST_ABI" == "i686-linux-android" || "$HOST_ABI" == "aarch64-linux-android" || "$HOST_ABI" == "arm-linux-androideabi" ]]; + if [[ "$HOST_ABI" == "x86_64-linux-android" || "$HOST_ABI" == "i686-linux-android" || "$HOST_ABI" == "aarch64-linux-android" || "$HOST_ABI" == "armv7a-linux-androideabi" ]]; then cp ../../$repo/contrib/depends/${HOST_ABI}/native/sysroot/usr/lib/${HOST_ABI}/libc++_shared.so ${HOST_ABI}_libc++_shared.so rm ${HOST_ABI}_libc++_shared.so.xz || true diff --git a/monero_libwallet2_api_c/CMakeLists.txt b/monero_libwallet2_api_c/CMakeLists.txt index 2eaae56..89bf119 100644 --- a/monero_libwallet2_api_c/CMakeLists.txt +++ b/monero_libwallet2_api_c/CMakeLists.txt @@ -63,7 +63,7 @@ set_target_properties(ssl PROPERTIES IMPORTED_LOCATION # Boost ############ -if(${HOST_ABI} STREQUAL "x86_64-linux-android" OR ${HOST_ABI} STREQUAL "aarch64-linux-android" OR ${HOST_ABI} STREQUAL "arm-linux-androideabi" OR ${HOST_ABI} STREQUAL "i686-linux-android") +if(${HOST_ABI} STREQUAL "x86_64-linux-android" OR ${HOST_ABI} STREQUAL "aarch64-linux-android" OR ${HOST_ABI} STREQUAL "armv7a-linux-androideabi" OR ${HOST_ABI} STREQUAL "i686-linux-android") set(CMAKE_LINKER ${HOST_ABI}-ld) set(BOOST_WTF "-mt-s") set(BOOST_WTF_PART "") diff --git a/patches/monero/0013-rename-arm-armv7a.patch b/patches/monero/0013-rename-arm-armv7a.patch new file mode 100644 index 0000000..7049065 --- /dev/null +++ b/patches/monero/0013-rename-arm-armv7a.patch @@ -0,0 +1,94 @@ +From 9b7623e565a31db296f20cac00ddde58e8e83fe2 Mon Sep 17 00:00:00 2001 +From: Czarek Nakamoto +Date: Wed, 12 Jun 2024 15:48:01 +0200 +Subject: [PATCH] rename arm -> armv7a + +--- + contrib/depends/hosts/android.mk | 2 +- + contrib/depends/packages/android_ndk.mk | 6 +++++- + contrib/depends/packages/openssl.mk | 2 +- + contrib/depends/toolchain.cmake.in | 8 ++++---- + 4 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/contrib/depends/hosts/android.mk b/contrib/depends/hosts/android.mk +index e1c99aef3..827103c36 100644 +--- a/contrib/depends/hosts/android.mk ++++ b/contrib/depends/hosts/android.mk +@@ -1,6 +1,6 @@ + ANDROID_API=21 + host_toolchain=nonexistent +-ifeq ($(host_arch),arm) ++ifeq ($(host_arch),armv7a) + host_toolchain=armv7a-linux-androideabi${ANDROID_API}- + endif + ifeq ($(host_arch),x86_64) +diff --git a/contrib/depends/packages/android_ndk.mk b/contrib/depends/packages/android_ndk.mk +index 1ad250653..2c2914ec2 100644 +--- a/contrib/depends/packages/android_ndk.mk ++++ b/contrib/depends/packages/android_ndk.mk +@@ -7,7 +7,7 @@ $(package)_sha256_hash=eefeafe7ccf177de7cc57158da585e7af119bb7504a63604ad719e4b2 + $(package)_version_apiversion=21 + + define $(package)_set_vars +-$(package)_config_opts_arm=--arch arm ++$(package)_config_opts_armv7a=--arch arm + $(package)_config_opts_aarch64=--arch arm64 + $(package)_config_opts_x86_64=--arch x86_64 + $(package)_config_opts_i686=--arch x86 +@@ -18,6 +18,8 @@ define $(package)_extract_cmds + unzip -q $($(1)_source_dir)/$($(package)_file_name) + endef + ++# arm-linux-androideabi-ar - openssl workaround ++ + define $(package)_stage_cmds + mkdir -p $(build_prefix) &&\ + echo $(build_prefix)/toolchain && \ +@@ -25,7 +27,9 @@ define $(package)_stage_cmds + --install-dir $(build_prefix)/toolchain --stl=libc++ $($(package)_config_opts) &&\ + mv $(build_prefix)/toolchain $($(package)_staging_dir)/$(host_prefix)/native && \ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ar &&\ ++ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ranlib &&\ ++ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ranlib &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ranlib + endef +diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk +index a157762c7..2430f6495 100644 +--- a/contrib/depends/packages/openssl.mk ++++ b/contrib/depends/packages/openssl.mk +@@ -34,7 +34,7 @@ $(package)_config_opts_x86_64_linux=linux-x86_64 + $(package)_config_opts_i686_linux=linux-generic32 + $(package)_config_opts_arm_linux=linux-generic32 + $(package)_config_opts_aarch64_linux=linux-generic64 +-$(package)_config_opts_arm_android=--static android-arm ++$(package)_config_opts_armv7a_android=--static android-arm + $(package)_config_opts_aarch64_android=--static android-arm64 + $(package)_config_opts_aarch64_darwin=darwin64-arm64-cc + $(package)_config_opts_riscv64_linux=linux-generic64 +diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in +index 96a95ceb8..48a6f947e 100644 +--- a/contrib/depends/toolchain.cmake.in ++++ b/contrib/depends/toolchain.cmake.in +@@ -100,13 +100,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + SET(LLVM_ENABLE_PIE OFF) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + SET(ANDROID TRUE) +- if(ARCHITECTURE STREQUAL "arm") ++ if(ARCHITECTURE STREQUAL "armv7a") + SET(CMAKE_ANDROID_ARCH_ABI "armeabi-v7a") + SET(CMAKE_SYSTEM_PROCESSOR "armv7-a") + SET(CMAKE_ANDROID_ARM_MODE ON) +- SET(CMAKE_C_COMPILER_TARGET arm-linux-androideabi21) +- SET(CMAKE_CXX_COMPILER_TARGET arm-linux-androideabi21) +- SET(_CMAKE_TOOLCHAIN_PREFIX arm-linux-androideabi21-) ++ SET(CMAKE_C_COMPILER_TARGET armv7a-linux-androideabi21) ++ SET(CMAKE_CXX_COMPILER_TARGET armv7a-linux-androideabi21) ++ SET(_CMAKE_TOOLCHAIN_PREFIX armv7a-linux-androideabi21-) + elseif(ARCHITECTURE STREQUAL "aarch64") + SET(CMAKE_ANDROID_ARCH_ABI "arm64-v8a") + SET(CMAKE_SYSTEM_PROCESSOR "aarch64") +-- +2.39.2 + diff --git a/patches/wownero/0012-rename-arm-armv7a.patch b/patches/wownero/0012-rename-arm-armv7a.patch new file mode 100644 index 0000000..6ba41ea --- /dev/null +++ b/patches/wownero/0012-rename-arm-armv7a.patch @@ -0,0 +1,94 @@ +From 6b931c1af6965b3da03b795e711b87eaaec17838 Mon Sep 17 00:00:00 2001 +From: Czarek Nakamoto +Date: Wed, 12 Jun 2024 15:48:01 +0200 +Subject: [PATCH] rename arm -> armv7a + +--- + contrib/depends/hosts/android.mk | 2 +- + contrib/depends/packages/android_ndk.mk | 6 +++++- + contrib/depends/packages/openssl.mk | 2 +- + contrib/depends/toolchain.cmake.in | 8 ++++---- + 4 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/contrib/depends/hosts/android.mk b/contrib/depends/hosts/android.mk +index c7b6b6d36..9477b4e22 100644 +--- a/contrib/depends/hosts/android.mk ++++ b/contrib/depends/hosts/android.mk +@@ -1,6 +1,6 @@ + ANDROID_API=21 + host_toolchain=nonexistent +-ifeq ($(host_arch),arm) ++ifeq ($(host_arch),armv7a) + host_toolchain=armv7a-linux-androideabi${ANDROID_API}- + endif + ifeq ($(host_arch),x86_64) +diff --git a/contrib/depends/packages/android_ndk.mk b/contrib/depends/packages/android_ndk.mk +index 1ad250653..2c2914ec2 100644 +--- a/contrib/depends/packages/android_ndk.mk ++++ b/contrib/depends/packages/android_ndk.mk +@@ -7,7 +7,7 @@ $(package)_sha256_hash=eefeafe7ccf177de7cc57158da585e7af119bb7504a63604ad719e4b2 + $(package)_version_apiversion=21 + + define $(package)_set_vars +-$(package)_config_opts_arm=--arch arm ++$(package)_config_opts_armv7a=--arch arm + $(package)_config_opts_aarch64=--arch arm64 + $(package)_config_opts_x86_64=--arch x86_64 + $(package)_config_opts_i686=--arch x86 +@@ -18,6 +18,8 @@ define $(package)_extract_cmds + unzip -q $($(1)_source_dir)/$($(package)_file_name) + endef + ++# arm-linux-androideabi-ar - openssl workaround ++ + define $(package)_stage_cmds + mkdir -p $(build_prefix) &&\ + echo $(build_prefix)/toolchain && \ +@@ -25,7 +27,9 @@ define $(package)_stage_cmds + --install-dir $(build_prefix)/toolchain --stl=libc++ $($(package)_config_opts) &&\ + mv $(build_prefix)/toolchain $($(package)_staging_dir)/$(host_prefix)/native && \ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ar &&\ ++ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ranlib &&\ ++ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ranlib &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ar &&\ + cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ranlib + endef +diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk +index a157762c7..2430f6495 100644 +--- a/contrib/depends/packages/openssl.mk ++++ b/contrib/depends/packages/openssl.mk +@@ -34,7 +34,7 @@ $(package)_config_opts_x86_64_linux=linux-x86_64 + $(package)_config_opts_i686_linux=linux-generic32 + $(package)_config_opts_arm_linux=linux-generic32 + $(package)_config_opts_aarch64_linux=linux-generic64 +-$(package)_config_opts_arm_android=--static android-arm ++$(package)_config_opts_armv7a_android=--static android-arm + $(package)_config_opts_aarch64_android=--static android-arm64 + $(package)_config_opts_aarch64_darwin=darwin64-arm64-cc + $(package)_config_opts_riscv64_linux=linux-generic64 +diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in +index 249213b20..cc1d9b5c5 100644 +--- a/contrib/depends/toolchain.cmake.in ++++ b/contrib/depends/toolchain.cmake.in +@@ -100,13 +100,13 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + SET(LLVM_ENABLE_PIE OFF) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Android") + SET(ANDROID TRUE) +- if(ARCHITECTURE STREQUAL "arm") ++ if(ARCHITECTURE STREQUAL "armv7a") + SET(CMAKE_ANDROID_ARCH_ABI "armeabi-v7a") + SET(CMAKE_SYSTEM_PROCESSOR "armv7-a") + SET(CMAKE_ANDROID_ARM_MODE ON) +- SET(CMAKE_C_COMPILER_TARGET arm-linux-androideabi21) +- SET(CMAKE_CXX_COMPILER_TARGET arm-linux-androideabi21) +- SET(_CMAKE_TOOLCHAIN_PREFIX arm-linux-androideabi21-) ++ SET(CMAKE_C_COMPILER_TARGET armv7a-linux-androideabi21) ++ SET(CMAKE_CXX_COMPILER_TARGET armv7a-linux-androideabi21) ++ SET(_CMAKE_TOOLCHAIN_PREFIX armv7a-linux-androideabi21-) + elseif(ARCHITECTURE STREQUAL "aarch64") + SET(CMAKE_ANDROID_ARCH_ABI "arm64-v8a") + SET(CMAKE_SYSTEM_PROCESSOR "aarch64") +-- +2.39.2 +