[dpdk-dev] meson build fail for i40e

Shreyansh Jain shreyansh.jain at nxp.com
Sat May 5 20:12:43 CEST 2018


> -----Original Message-----
> From: Bruce Richardson [mailto:bruce.richardson at intel.com]
> Sent: Thursday, May 3, 2018 9:19 PM
> To: Shreyansh Jain <shreyansh.jain at nxp.com>
> Cc: Beilei Xing <beilei.xing at intel.com>; dev at dpdk.org
> Subject: Re: meson build fail for i40e
> 
> 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 at sta/i40e_rxtx_vec_avx2.c.o'.
> > FAILED: drivers/net/i40e/i40e_avx2_lib at sta/i40e_rxtx_vec_avx2.c.o
> > ccache cc  -Idrivers/net/i40e/i40e_avx2_lib at 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 at sta/i40e_rxtx_vec_avx2.c.o' -MF
> > 'drivers/net/i40e/i40e_avx2_lib at sta/i40e_rxtx_vec_avx2.c.o.d' -o
> > 'drivers/net/i40e/i40e_avx2_lib at 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 at 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')

Sorry, I had completely forgotten about this.
Yes, this patch works fine for me. Thanks.


More information about the dev mailing list