From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 397651E2F for ; Thu, 3 May 2018 17:49:21 +0200 (CEST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 May 2018 08:49:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,359,1520924400"; d="scan'208";a="36610093" Received: from bricha3-mobl.ger.corp.intel.com ([10.237.221.51]) by fmsmga007.fm.intel.com with SMTP; 03 May 2018 08:49:18 -0700 Received: by (sSMTP sendmail emulation); Thu, 03 May 2018 16:49:17 +0100 Date: Thu, 3 May 2018 16:49:16 +0100 From: Bruce Richardson To: Shreyansh Jain Cc: Beilei Xing , "dev@dpdk.org" Message-ID: <20180503154916.GA14136@bricha3-MOBL.ger.corp.intel.com> References: <20a762ac-2beb-2de3-a09d-1c667694f2d5@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20a762ac-2beb-2de3-a09d-1c667694f2d5@nxp.com> Organization: Intel Research and Development Ireland Ltd. User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] meson build fail for i40e X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 May 2018 15:49:21 -0000 On Thu, May 03, 2018 at 06:59:48PM +0530, Shreyansh Jain wrote: > Bruce, Beilei, > > Can you help me here? > > Build targets in project: 263 > Found ninja-1.8.2 at /usr/bin/ninja > [585/940] Compiling C object > 'drivers/net/i40e/i40e_avx2_lib@sta/i40e_rxtx_vec_avx2.c.o'. > FAILED: drivers/net/i40e/i40e_avx2_lib@sta/i40e_rxtx_vec_avx2.c.o > ccache cc -Idrivers/net/i40e/i40e_avx2_lib@sta -Idrivers/net/i40e > -I../drivers/net/i40e -Ilib/librte_ethdev -I../lib/librte_ethdev -Iconfig > -I../config -I. -I../ -Ilib/librte_eal/common/include/arch/x86 > -I../lib/librte_eal/common/include/arch/x86 -Ilib/librte_eal/common/include > -I../lib/librte_eal/common/include -Ilib/librte_eal/common > -I../lib/librte_eal/common > -Ilib/librte_eal/linuxapp/eal/../../../librte_compat > -I../lib/librte_eal/linuxapp/eal/../../../librte_compat > -I../lib/librte_eal/linuxapp/eal/include -Ilib/librte_eal > -I../lib/librte_eal -Ilib/librte_compat -I../lib/librte_compat > -Ilib/librte_net -I../lib/librte_net -Ilib/librte_mbuf -I../lib/librte_mbuf > -Ilib/librte_mempool -I../lib/librte_mempool -Ilib/librte_ring > -I../lib/librte_ring -Ilib/librte_kvargs -I../lib/librte_kvargs > -Ilib/librte_hash -I../lib/librte_hash -fdiagnostics-color=always -pipe > -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -include rte_config.h > -Wsign-compare -Wcast-qual -Wno-address-of-packed-member > -Wno-format-truncation -fPIC -mavx2 -MMD -MQ > 'drivers/net/i40e/i40e_avx2_lib@sta/i40e_rxtx_vec_avx2.c.o' -MF > 'drivers/net/i40e/i40e_avx2_lib@sta/i40e_rxtx_vec_avx2.c.o.d' -o > 'drivers/net/i40e/i40e_avx2_lib@sta/i40e_rxtx_vec_avx2.c.o' -c > ../drivers/net/i40e/i40e_rxtx_vec_avx2.c > In file included from ../drivers/net/i40e/i40e_rxtx_vec_avx2.c:40:0: > ../drivers/net/i40e/i40e_ethdev.h:888:42: error: ‘I40E_PFQF_HKEY_MAX_INDEX’ > undeclared here (not in a function); did you mean > ‘I40E_VFQF_HKEY_MAX_INDEX’? > uint8_t key[(I40E_VFQF_HKEY_MAX_INDEX > I40E_PFQF_HKEY_MAX_INDEX ? > ^~~~~~~~~~~~~~~~~~~~~~~~ > I40E_VFQF_HKEY_MAX_INDEX > cc1: warning: unrecognized command line option > ‘-Wno-address-of-packed-member’ > [590/940] Compiling C object > 'drivers/net/sfc/base/sfc_base@sta/efx_filter.c.o'. > ninja: build stopped: subcommand failed. > > -- > > This is the ninja configuration: > > --->8--- > The Meson build system > Version: 0.44.0 > Source dir: /home/shreyansh/build/DPDK/03_dpdk > Build dir: /home/shreyansh/build/DPDK/03_dpdk/generic_build > Build type: native build > Project name: DPDK > Native C compiler: ccache cc (gcc 7.3.0) > Build machine cpu family: x86_64 > Build machine cpu: x86_64 > Library numa found: YES > Has header "numaif.h": YES > Library bsd found: NO > --->8--- > > And I am pretty sure it was appearing on gcc 7.2 as well. Yes, the error is due to missing cflags when compiling the avx2 code on a non-AVX2 platform. The branch for doing an independent AVX2 static library is missing proper cflags and include directory references. The below patch should fix things. If you can confirm it fixes the issue, I'll upstream it as a proper patch. Thanks for reporting, /Bruce diff --git a/drivers/net/i40e/meson.build b/drivers/net/i40e/meson.build index f2129df07..d783f3626 100644 --- a/drivers/net/i40e/meson.build +++ b/drivers/net/i40e/meson.build @@ -25,6 +25,7 @@ sources = files( ) deps += ['hash'] +includes += include_directories('base') if arch_subdir == 'x86' dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1) @@ -40,11 +41,10 @@ if arch_subdir == 'x86' 'i40e_rxtx_vec_avx2.c', dependencies: [static_rte_ethdev, static_rte_kvargs, static_rte_hash], - c_args: '-mavx2') + include_directories: includes, + c_args: [cflags, '-mavx2']) objs += i40e_avx2_lib.extract_objects('i40e_rxtx_vec_avx2.c') endif endif -includes += include_directories('base') - install_headers('rte_pmd_i40e.h')