From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4F159A0547; Wed, 19 May 2021 15:40:26 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C246B40041; Wed, 19 May 2021 15:40:25 +0200 (CEST) Received: from szxga04-in.huawei.com (szxga04-in.huawei.com [45.249.212.190]) by mails.dpdk.org (Postfix) with ESMTP id D346A4003F for ; Wed, 19 May 2021 15:40:23 +0200 (CEST) Received: from dggems701-chm.china.huawei.com (unknown [172.30.72.58]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4FlYnF4vzRzpfds; Wed, 19 May 2021 21:36:49 +0800 (CST) Received: from dggpeml500024.china.huawei.com (7.185.36.10) by dggems701-chm.china.huawei.com (10.3.19.178) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 19 May 2021 21:40:19 +0800 Received: from [127.0.0.1] (10.40.190.165) by dggpeml500024.china.huawei.com (7.185.36.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Wed, 19 May 2021 21:40:19 +0800 To: David Marchand , Honnappa Nagarahalli , "Ruifeng Wang (Arm Technology China)" CC: Thomas Monjalon , "Yigit, Ferruh" , dev , Jerin Jacob Kollanukkaran , Jerin Jacob , Jan Viktorin , Bruce Richardson , =?UTF-8?Q?Juraj_Linke=c5=a1?= , nd References: <1621424821-53240-1-git-send-email-fengchengwen@huawei.com> <1621425281-2413-1-git-send-email-fengchengwen@huawei.com> From: fengchengwen Message-ID: <30267f43-0eb4-30c4-d1be-433fa724a3c7@huawei.com> Date: Wed, 19 May 2021 21:40:18 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [10.40.190.165] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To dggpeml500024.china.huawei.com (7.185.36.10) X-CFilter-Loop: Reflected Subject: Re: [dpdk-dev] [PATCH v2] net/hns3: fix compile error with gcc8.3 and thunderx2 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 2021/5/19 20:34, David Marchand wrote: > On Wed, May 19, 2021 at 1:57 PM Chengwen Feng wrote: >> >> Compile error with gcc8.3 and crossfile arm64_thunderx2_linux_gcc: >> ../drivers/net/hns3/hns3_rxtx_vec_sve.c >> cc1: error: switch ‘-mcpu=armv8.1-a’ conflicts with >> ‘-march=armv8.2-a’ switch [-Werror] >> ../drivers/net/hns3/hns3_rxtx_vec_sve.c:5:10: fatal error: >> arm_sve.h: No such file or directory >> 5 | #include >> >> The root cause is that gcc8.3 supports SVE, but it doesn't support >> compile ACLE[1] SVE code, and the hns3_rxtx_vec_sve.c was written >> by ACLE SVE code. > > Quite confusing. > What is the difference between the two? > Only SVE assembly instructions are supported in gcc8/9 And the ACLE SVE code like normal C code. There are also ACLE NEON code which many driver already supports. > >> >> This patch also filters out '-march=' '-mcpu' '-mtune' when compile >> with hns3_rxtx_vec_sve.c. >> >> [1] ACLE: Arm C Language Extensions, user should include >> when writing ACLE SVE code. >> >> Fixes: 203fbaf8813d ("net/hns3: refactor SVE code compile method") >> >> Signed-off-by: Chengwen Feng >> --- >> v2: >> * fix check tool error >> --- >> drivers/net/hns3/meson.build | 14 ++++++++++---- >> 1 file changed, 10 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/net/hns3/meson.build b/drivers/net/hns3/meson.build >> index 8563d70..5f9af9b 100644 >> --- a/drivers/net/hns3/meson.build >> +++ b/drivers/net/hns3/meson.build >> @@ -39,16 +39,22 @@ if arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64') >> # compile SVE when: >> # a. support SVE in minimum instruction set baseline >> # b. it's not minimum instruction set, but compiler support >> - if cc.get_define('__ARM_FEATURE_SVE', args: machine_args) != '' >> + if cc.get_define('__ARM_FEATURE_SVE', args: machine_args) != '' and cc.check_header('arm_sve.h') > > The rte_vect.h arm header unconditionally includes arm_sve.h if > __ARM_FEATURE_SVE is defined [1]. > So it is surprising to see such a check being added. > > 1: https://git.dpdk.org/dpdk/tree/lib/eal/arm/include/rte_vect.h#n12 > Yes, it is, I will fix in 21.08 >