From patchwork Sun Oct 27 10:24:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Petazzoni X-Patchwork-Id: 1184970 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bootlin.com Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 471DVf3Twxz9sP3 for ; Sun, 27 Oct 2019 21:24:42 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 455EF8733B; Sun, 27 Oct 2019 10:24:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o+nGfJUpWaBx; Sun, 27 Oct 2019 10:24:37 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 11780870C7; Sun, 27 Oct 2019 10:24:37 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 0ED431BF5A3 for ; Sun, 27 Oct 2019 10:24:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 0BD032042E for ; Sun, 27 Oct 2019 10:24:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ykU9a3q9KEs0 for ; Sun, 27 Oct 2019 10:24:30 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [217.70.183.200]) by silver.osuosl.org (Postfix) with ESMTPS id 032EA203E3 for ; Sun, 27 Oct 2019 10:24:29 +0000 (UTC) X-Originating-IP: 78.193.40.129 Received: from localhost (unknown [78.193.40.129]) (Authenticated sender: thomas.petazzoni@bootlin.com) by relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 20E8020004; Sun, 27 Oct 2019 10:24:27 +0000 (UTC) From: Thomas Petazzoni To: Buildroot List , Fabrice Fontaine , Matt Weber Date: Sun, 27 Oct 2019 11:24:17 +0100 Message-Id: <20191027102420.15560-2-thomas.petazzoni@bootlin.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191027102420.15560-1-thomas.petazzoni@bootlin.com> References: <20191027102420.15560-1-thomas.petazzoni@bootlin.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH 1/3] package/libopenssl: move target arch selection to Config.in X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" The logic to select the proper OpenSSL target arch in libopenssl.mk is not easy to read, so let's move it to Config.in where we have some nice constructs for that kind of value selection. Signed-off-by: Thomas Petazzoni --- package/libopenssl/Config.in | 29 ++++++++++++++++++++++++++ package/libopenssl/libopenssl.mk | 35 +------------------------------- package/openssl/Config.in | 2 ++ 3 files changed, 32 insertions(+), 34 deletions(-) create mode 100644 package/libopenssl/Config.in diff --git a/package/libopenssl/Config.in b/package/libopenssl/Config.in new file mode 100644 index 0000000000..732da5b4ef --- /dev/null +++ b/package/libopenssl/Config.in @@ -0,0 +1,29 @@ +# 4xx PowerPC cores seem to have trouble with openssl's ASM +# optimizations +config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC + bool + default y if BR2_powerpc + depends on !BR2_powerpc_401 + depends on !BR2_powerpc_403 + depends on !BR2_powerpc_405 + depends on !BR2_powerpc_405fp + depends on !BR2_powerpc_440 + depends on !BR2_powerpc_440fp + +config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH + string + # Use "gcc" minimalistic target to disable DSO + # no-asm is needed with generic architectures such as gcc, see + # https://github.com/openssl/openssl/issues/9839 + default "gcc no-asm" if BR2_STATIC_LIBS + # Doesn't work for thumb-only (Cortex-M?) + default "linux-armv4" if BR2_ARM_CPU_HAS_ARM + default "linux-aarch64" if BR2_aarch64 + default "linux-ppc" if BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH_LINUX_PPC + default "linux-ppc64" if BR2_powerpc64 + default "linux-ppc64le" if BR2_powerpc64le + default "linux-x86_64" if BR2_x86_64 + # no-asm is needed with generic architectures such as + # linux-generic32, see + # https://github.com/openssl/openssl/issues/9839 + default "linux-generic32 no-asm" diff --git a/package/libopenssl/libopenssl.mk b/package/libopenssl/libopenssl.mk index a1bbf9a900..da4ae291c0 100644 --- a/package/libopenssl/libopenssl.mk +++ b/package/libopenssl/libopenssl.mk @@ -12,9 +12,7 @@ LIBOPENSSL_LICENSE_FILES = LICENSE LIBOPENSSL_INSTALL_STAGING = YES LIBOPENSSL_DEPENDENCIES = zlib HOST_LIBOPENSSL_DEPENDENCIES = host-zlib -# no-asm is needed with generic architectures such as linux-generic32, see -# https://github.com/openssl/openssl/issues/9839 -LIBOPENSSL_TARGET_ARCH = linux-generic32 no-asm +LIBOPENSSL_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH)) LIBOPENSSL_CFLAGS = $(TARGET_CFLAGS) LIBOPENSSL_PROVIDES = openssl @@ -55,37 +53,6 @@ ifeq ($(BR2_TOOLCHAIN_HAS_UCONTEXT),) LIBOPENSSL_CFLAGS += -DOPENSSL_NO_ASYNC endif -ifeq ($(BR2_STATIC_LIBS),y) -# Use "gcc" minimalistic target to disable DSO -# no-asm is needed with generic architectures such as gcc, see -# https://github.com/openssl/openssl/issues/9839 -LIBOPENSSL_TARGET_ARCH = gcc no-asm -else -# Some architectures are optimized in OpenSSL -# Doesn't work for thumb-only (Cortex-M?) -ifeq ($(BR2_ARM_CPU_HAS_ARM),y) -LIBOPENSSL_TARGET_ARCH = linux-armv4 -endif -ifeq ($(ARCH),aarch64) -LIBOPENSSL_TARGET_ARCH = linux-aarch64 -endif -ifeq ($(ARCH),powerpc) -# 4xx cores seem to have trouble with openssl's ASM optimizations -ifeq ($(BR2_powerpc_401)$(BR2_powerpc_403)$(BR2_powerpc_405)$(BR2_powerpc_405fp)$(BR2_powerpc_440)$(BR2_powerpc_440fp),) -LIBOPENSSL_TARGET_ARCH = linux-ppc -endif -endif -ifeq ($(ARCH),powerpc64) -LIBOPENSSL_TARGET_ARCH = linux-ppc64 -endif -ifeq ($(ARCH),powerpc64le) -LIBOPENSSL_TARGET_ARCH = linux-ppc64le -endif -ifeq ($(ARCH),x86_64) -LIBOPENSSL_TARGET_ARCH = linux-x86_64 -endif -endif - define HOST_LIBOPENSSL_CONFIGURE_CMDS (cd $(@D); \ $(HOST_CONFIGURE_OPTS) \ diff --git a/package/openssl/Config.in b/package/openssl/Config.in index a64660bea3..4d37a3ecf9 100644 --- a/package/openssl/Config.in +++ b/package/openssl/Config.in @@ -43,6 +43,8 @@ config BR2_PACKAGE_LIBOPENSSL_ENGINES help Install additional encryption engine libraries. +source "package/libopenssl/Config.in" + endif config BR2_PACKAGE_LIBRESSL