From patchwork Wed Sep 4 17:57:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabrice Fontaine X-Patchwork-Id: 1157883 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) 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=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="uAfpQEY0"; dkim-atps=neutral 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 46Ns2t6jg9z9sPd for ; Thu, 5 Sep 2019 03:56:54 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id EAC3184F76; Wed, 4 Sep 2019 17:56:50 +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 AvljTHIMMxb3; Wed, 4 Sep 2019 17:56:47 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 3391B848AF; Wed, 4 Sep 2019 17:56:47 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id 9428E1BF3C5 for ; Wed, 4 Sep 2019 17:56:46 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 9136984AE2 for ; Wed, 4 Sep 2019 17:56:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HHjOPQ-cgIE5 for ; Wed, 4 Sep 2019 17:56:45 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by fraxinus.osuosl.org (Postfix) with ESMTPS id 6A64F84A33 for ; Wed, 4 Sep 2019 17:56:45 +0000 (UTC) Received: by mail-wr1-f42.google.com with SMTP id g7so22277264wrx.2 for ; Wed, 04 Sep 2019 10:56:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=F5W38HkIwQ1j5qIRJ2pf+u4/znfYO2RmvdYddSh+fTU=; b=uAfpQEY0RdDD75+kbaJSi9JtB2fdsmDCPodNU+4P4V92ST+NaJm48+oATGv8uL+oBI WkxqbiafIl5+TjkVYgI3CN03GY3NBCLRqp2OUrG7tqqSub4cLAjTOGJ8s6mSFVDxrJYf QeCH0mfF2Qblz2Tvpmgty55Cg4U1bD9FdOp78YwIGA3/lv+3VggX5qG5TplxCsnMP2TF Ea9Fk0LwFEvJ18fe0vG/PX6x6xG0LYrYq4LBWqG118sxBnCd2tfR6B9HdOK2hYGUrjky kcNVIimH5RE9QXqnq970raxqWZXpdMvVzX5MOpO/371x2jft8nKVuMsMufpkbiNXYeRn AnwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=F5W38HkIwQ1j5qIRJ2pf+u4/znfYO2RmvdYddSh+fTU=; b=id0yVT0tN4snHCCi5aPFiBUJFWqchYl8STo/LueZaLJyD0iyL3aXPZcrwgNxNWAK1j lM3/lVjjhaJ7TI2he8zKJ4pq/vSoWoFw+7jGSbdoL0mEqPTea1K9xsnWlFjZ3l2ZBMLZ yxiBJJzSU7kV0tSsIAcTWm/unvzWFM30szc+ffKeDLrSBLs/MRwf6ooJiLPwVqmWHoUW KAFpQPPs5ISy2T5bpjDWXk6qcHbq+MmVQrlCNfM4l/+Banq9wTnE2rAwm5lqGYcevmUv P3gZnY+Vi0YteMI6BT4CZQ7K384+42ZdN3+pVCW5iazSQyFX0+dHeZyRA/QMqQA2iTEJ 40ZA== X-Gm-Message-State: APjAAAUonBis7Zhf4PwSuDisV0uqUzdy/QGhX/Uh1jXpMenLFS7xwqdH CzeGUKommmh/RRJJOVgY6aRlOMPLQGU= X-Google-Smtp-Source: APXvYqzONrBUwcQrQYL+F/mmUe3N694AvJ7wtkZiLloTsEakXe10KShOYiyvo062OrufqI3An2b/mA== X-Received: by 2002:adf:82cd:: with SMTP id 71mr46775913wrc.265.1567619803537; Wed, 04 Sep 2019 10:56:43 -0700 (PDT) Received: from kali.home (lfbn-ren-1-605-248.w81-53.abo.wanadoo.fr. [81.53.181.248]) by smtp.gmail.com with ESMTPSA id a205sm3526986wmd.44.2019.09.04.10.56.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Sep 2019 10:56:42 -0700 (PDT) From: Fabrice Fontaine To: buildroot@buildroot.org Date: Wed, 4 Sep 2019 19:57:05 +0200 Message-Id: <20190904175705.7893-1-fontaine.fabrice@gmail.com> X-Mailer: git-send-email 2.23.0.rc1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2, 1/1] package/gnutls: use __get_cpuid_count() only when available 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: Fabrice Fontaine Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Fixes: - http://autobuild.buildroot.org/results/4e874ed2fcc1f969f2f8ece88985ccd625f2c55b Signed-off-by: Fabrice Fontaine --- Changes v1 -> v2: - Add missing GNUTLS_AUTORECONF = YES ..._get_cpuid_count-only-when-available.patch | 82 +++++++++++++++++++ package/gnutls/gnutls.mk | 2 + 2 files changed, 84 insertions(+) create mode 100644 package/gnutls/0001-read_cpuid_vals-use-__get_cpuid_count-only-when-available.patch diff --git a/package/gnutls/0001-read_cpuid_vals-use-__get_cpuid_count-only-when-available.patch b/package/gnutls/0001-read_cpuid_vals-use-__get_cpuid_count-only-when-available.patch new file mode 100644 index 0000000000..5a4e524eb4 --- /dev/null +++ b/package/gnutls/0001-read_cpuid_vals-use-__get_cpuid_count-only-when-available.patch @@ -0,0 +1,82 @@ +From ef80617d1e17e0878a909baad62a75ba265c0e00 Mon Sep 17 00:00:00 2001 +From: Nikos Mavrogiannopoulos +Date: Fri, 2 Aug 2019 21:57:40 +0200 +Subject: [PATCH] read_cpuid_vals: use __get_cpuid_count() only when available + +This makes the functionality available on gcc 4.8. + +Resolves: #812 + +Signed-off-by: Nikos Mavrogiannopoulos +[Retrieved from: +https://github.com/gnutls/gnutls/commit/ef80617d1e17e0878a909baad62a75ba265c0e00] +Signed-off-by: Fabrice Fontaine +--- + configure.ac | 11 +++++++++++ + lib/accelerated/x86/x86-common.c | 24 ++++++++++++++++++++---- + 2 files changed, 31 insertions(+), 4 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6a1d3dbc5c..1bf9bce95e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -182,6 +182,17 @@ case $host_cpu in + ;; + esac + ++# check for gcc's __get_cpuid_count functionality ++AC_MSG_CHECKING([for __get_cpuid_count]) ++AC_LINK_IFELSE( ++ [AC_LANG_SOURCE([ ++ #include ++ int main(void) { unsigned t1; return __get_cpuid_count(7, 0, &t1, &t1, &t1, &t1); } ++ ])], ++ [AC_DEFINE([HAVE_GET_CPUID_COUNT], [1], [use __get_cpuid_count]) AC_MSG_RESULT([yes])], ++ [AC_MSG_RESULT([no])] ++) ++ + fi + + AC_ARG_ENABLE(tls13-interop, +diff --git a/lib/accelerated/x86/x86-common.c b/lib/accelerated/x86/x86-common.c +index fb3ff90919..516d6776c5 100644 +--- a/lib/accelerated/x86/x86-common.c ++++ b/lib/accelerated/x86/x86-common.c +@@ -106,17 +106,33 @@ unsigned int _gnutls_x86_cpuid_s[4]; + #define VIA_PADLOCK_PHE (1<<21) + #define VIA_PADLOCK_PHE_SHA512 (1<<22) + ++#ifndef HAVE_GET_CPUID_COUNT ++static inline void ++get_cpuid_level7(unsigned int *eax, unsigned int *ebx, ++ unsigned int *ecx, unsigned int *edx) ++{ ++ /* we avoid using __get_cpuid_count, because it is not available with gcc 4.8 */ ++ if (__get_cpuid_max(7, 0) < 7) ++ return; ++ ++ __cpuid_count(7, 0, *eax, *ebx, *ecx, *edx); ++ return; ++} ++#else ++# define get_cpuid_level7(a,b,c,d) __get_cpuid_count(7, 0, a, b, c, d) ++#endif ++ + static unsigned read_cpuid_vals(unsigned int vals[4]) + { + unsigned t1, t2, t3; +- if (!__get_cpuid(1, &t1, &vals[0], +- &vals[1], &t2)) ++ vals[0] = vals[1] = vals[2] = vals[3] = 0; ++ ++ if (!__get_cpuid(1, &t1, &vals[0], &vals[1], &t2)) + return 0; + /* suppress AVX512; it works conditionally on certain CPUs on the original code */ + vals[1] &= 0xfffff7ff; + +- if (!__get_cpuid_count(7, 0, &t1, &vals[2], &t2, &t3)) +- return 0; ++ get_cpuid_level7(&t1, &vals[2], &t2, &t3); + + return 1; + } diff --git a/package/gnutls/gnutls.mk b/package/gnutls/gnutls.mk index 94935a3f9e..375c536320 100644 --- a/package/gnutls/gnutls.mk +++ b/package/gnutls/gnutls.mk @@ -10,6 +10,8 @@ GNUTLS_SOURCE = gnutls-$(GNUTLS_VERSION).tar.xz GNUTLS_SITE = https://www.gnupg.org/ftp/gcrypt/gnutls/v$(GNUTLS_VERSION_MAJOR) GNUTLS_LICENSE = LGPL-2.1+ (core library) GNUTLS_LICENSE_FILES = doc/COPYING.LESSER +# We're patching configure.ac +GNUTLS_AUTORECONF = YES ifeq ($(BR2_PACKAGE_GNUTLS_OPENSSL),y) GNUTLS_LICENSE := $(GNUTLS_LICENSE), GPL-3.0+ (gnutls-openssl library)