From da692fd3dab91dcf52376a5ecbe4f4314fcdb6d5 Mon Sep 17 00:00:00 2001
From: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
Date: Sun, 8 Jan 2023 19:21:06 -0500
Subject: [PATCH] contrib/libressl: disable asm on android-x86_64

Includes duplicate symbols,
from asm code in both libressl and gnutls,
for instance gcm_gmult_4bit.

The implementation and abi of the two versions are different
so it's not possible to force ignoring the duplicate symbol error.

Change-Id: I2882e41bf0841cbbfec22eb473a906448d704ec5
---
 contrib/src/libressl/rules.mak | 25 ++++++++++++++++++-------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/contrib/src/libressl/rules.mak b/contrib/src/libressl/rules.mak
index bb8cede613..a30cf60b77 100644
--- a/contrib/src/libressl/rules.mak
+++ b/contrib/src/libressl/rules.mak
@@ -34,20 +34,31 @@ libressl: $(LIBRESSL_VERSION).tar.gz
 	$(UNPACK)
 	$(MOVE)
 
+LIBRESSL_CONF := \
+	-DLIBRESSL_TESTS=Off \
+	-DLIBRESSL_APPS=Off  \
+	-DDESTDIR=$(PREFIX)
+
+ifdef HAVE_ANDROID
+ifeq ($(ARCH),x86_64)
+LIBRESSL_CONF += -DENABLE_ASM=Off
+endif
+else ifeq ($(IOS_TARGET_PLATFORM),iPhoneOS)
+LIBRESSL_CONF += -DCMAKE_C_FLAGS='-miphoneos-version-min=9.3 -fembed-bitcode -arch arm64'
+else ifeq ($(IOS_TARGET_PLATFORM),iPhoneSimulator)
+LIBRESSL_CONF += -DCMAKE_C_FLAGS='-miphoneos-version-min=9.3 -fembed-bitcode -arch x86_64'
+else ifeq ($(HOST_ARCH),arm-linux-gnueabihf)
+LIBRESSL_CONF += -DCMAKE_SYSTEM_PROCESSOR=arm -DENABLE_ASM=Off -DCMAKE_C_FLAGS='-march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard'
+endif
+
 .libressl: libressl .sum-libressl
 	mkdir -p "$(PREFIX)/include"
 ifdef HAVE_WIN32
 	cd $< && $(HOSTVARS) CPPFLAGS=-D__MINGW_USE_VC2005_COMPAT ./configure $(HOSTCONF) && $(MAKE) && $(MAKE) install
 else ifdef HAVE_WIN64
 	cd $< && $(HOSTVARS) ./configure $(HOSTCONF) && $(MAKE) && $(MAKE) install
-else ifeq ($(IOS_TARGET_PLATFORM),iPhoneOS)
-	cd $< && mkdir -p build && cd build && $(CMAKE) -DLIBRESSL_TESTS=Off -DLIBRESSL_APPS=Off -DDESTDIR=$(PREFIX) -DCMAKE_C_FLAGS='-miphoneos-version-min=9.3 -fembed-bitcode -arch arm64' .. && $(MAKE) && $(MAKE) install
-else ifeq ($(IOS_TARGET_PLATFORM),iPhoneSimulator)
-	cd $< && mkdir -p build && cd build && $(CMAKE) -DLIBRESSL_TESTS=Off -DLIBRESSL_APPS=Off -DDESTDIR=$(PREFIX) -DCMAKE_C_FLAGS='-miphoneos-version-min=9.3 -fembed-bitcode -arch x86_64' .. && $(MAKE) && $(MAKE) install
-else ifeq ($(HOST_ARCH),arm-linux-gnueabihf)
-	cd $< && mkdir -p build && cd build && $(CMAKE) -DLIBRESSL_TESTS=Off -DLIBRESSL_APPS=Off -DDESTDIR=$(PREFIX) -DCMAKE_SYSTEM_PROCESSOR=arm -DENABLE_ASM=Off -DCMAKE_C_FLAGS='-march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard' .. && $(MAKE) && $(MAKE) install
 else
-	cd $< && mkdir -p build && cd build && $(CMAKE) -DLIBRESSL_TESTS=Off -DLIBRESSL_APPS=Off -DDESTDIR=$(PREFIX) .. && $(MAKE) && $(MAKE) install
+	cd $< && mkdir -p build && cd build && $(CMAKE) $(LIBRESSL_CONF) .. && $(MAKE) && $(MAKE) install
 endif
 	rm -rf $(PREFIX)/lib/*.so $(PREFIX)/lib/*.so.*
 	touch $@
-- 
GitLab