[dpdk-dev] [PATCH v5 2/2] doc: add a guide doc for cross compiling from x86

Gavin Hu Gavin.Hu at arm.com
Tue Jun 12 03:27:34 CEST 2018



> -----Original Message-----
> From: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> Sent: Monday, June 4, 2018 8:51 PM
> To: Gavin Hu <Gavin.Hu at arm.com>
> Cc: Bruce Richardson <bruce.richardson at intel.com>; Thomas Monjalon
> <thomas at monjalon.net>; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v5 2/2] doc: add a guide doc for cross
> compiling from x86
> 
> -----Original Message-----
> > Date: Mon, 4 Jun 2018 06:03:34 +0000
> > From: Gavin Hu <Gavin.Hu at arm.com>
> > To: Jerin Jacob <jerin.jacob at caviumnetworks.com>, Bruce Richardson
> > <bruce.richardson at intel.com>, Thomas Monjalon <thomas at monjalon.net>
> > CC: "dev at dpdk.org" <dev at dpdk.org>
> > Subject: RE: [dpdk-dev] [PATCH v5 2/2] doc: add a guide doc for cross
> > compiling from x86
> >
> > See my inline comments:
> >
> > > -----Original Message-----
> > > From: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> > > Sent: Thursday, May 31, 2018 3:36 AM
> > > To: Gavin Hu <Gavin.Hu at arm.com>
> > > Cc: dev at dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH v5 2/2] doc: add a guide doc for
> > > cross compiling from x86
> > >
> > > -----Original Message-----
> > > > Date: Tue, 29 May 2018 18:43:36 +0800
> > > > From: Gavin Hu <gavin.hu at arm.com>
> > > > To: dev at dpdk.org
> > > > CC: gavin.hu at arm.com
> > > > Subject: [dpdk-dev] [PATCH v5 2/2] doc: add a guide doc for cross
> > > > compiling  from x86
> > > > X-Mailer: git-send-email 2.1.4
> > > >
> > > > +   1. EXTRA_CFLAGS and EXTRA_LDFLAGS should be added to include
> > > > + the
> > > NUMA headers and link the library respectively,
> > > > +   if the step
> > > > + :ref:`argment_the_cross_toolcain_with_numa_support` was
> > > skipped therefore the toolchain was not
> > > > +   argmented with NUMA support.
> > > > +
> > > > +   2. RTE_DEVEL_BUILD has to be disabled, otherwise the numa.h
> > > > + file gets
> > >
> > > If the warnings are from numa.h then please use -isystem <numa
> > > install dir> instead of disabling RTE_DEVEL_BUILD.
> > >
> > [Gavin Hu] This is a good advice, I verified it okay and can upload a new
> patch.
> >
> > > > +   a lot of compiling errors of Werror=cast-qual,
> > > > + Werror=strict-prototypes
> > > and Werror=old-style-definition.
> > > > +   An example is given below:
> > > > +
> > > > +   .. code-block:: console
> > > > +
> > > > +      make -j CROSS=aarch64-linux-gnu- CONFIG_RTE_KNI_KMOD=n
> > > CONFIG_RTE_EAL_IGB_UIO=n
> > > > +      RTE_DEVEL_BUILD=n EXTRA_CFLAGS="-
> I<numa_install_dir>/include"
> > > EXTRA_LDFLAGS=
> > > > +      "-L<numa_install_dir>/lib -lnuma"
> > > > +
> > >
> > > As discussed earlier, meson cross build instruction is missing.
> > >
> > [Gavin Hu] I reproduced the meson build issue Bruce reported, as shown
> below.
> > It was not introduced by gcc, nor clang, it was actually introduced by
> > meson.build, see line #65 of
> > http://www.dpdk.org/browse/dpdk/tree/config/meson.build
> > Even worse, "has_argument" is not reliable(refer here:
> http://mesonbuild.com/Compiler-properties.html#has-argument) for some
> compilers.
> > This is the case of gcc and clang, which caused the 4 warning options were
> included in the whole project, either the compiler is gcc or clang, cross or
> native.
> > This finally caused the unrecognized warning options.
> >
> > I tried to disable the warning options, then the compiling got lots of noisy
> warnings and errors.
> >
> > To fix this issue, we need to create a meson subproject  for pmdinfogen,
> the change is not little and I am not familiar with this.
> >
> > Any comments are welcome!
> 
> 
> If I am not wrong, This is specific to host compiler issue with specific version.
> Right? The build steps will remain same, so as far as this patch concerned,
> you can add the meson build step in this patch.
> 
[Gavin Hu] Hi Jerin, 
Sorry for late response, but I am still keeping working on that(some more patches are in process of internal review).
The host compiler issue with specific version was fixed by one of my patch. 

With all my patches applied:
For GNU Makefile, 
1. Host clang + cross gcc works
2. Host gcc + cross gcc works

For Meson/Ninja:
3. Host gcc + cross gcc works
4. Host clang + cross gcc does NOT work

The root cause of number 4  is clear, it is a meson build project issue. 
Both gcc and clang take all the 4 project arguments, but can NOT recognize this one: warning option '-Wno-format-truncation'
For more details , please have a look at line #56~#67 of this file:
http://www.dpdk.org/browse/dpdk/tree/config/meson.build 
http://mesonbuild.com/Compiler-properties.html#has-argument 

The compiling error:
clang  -Ibuildtools/pmdinfogen/pmdinfogen at exe -Ibuildtools/pmdinfogen -I../buildtools/pmdinfogen -Iconfig -I../config -I. -I../ -Ilib/librte_eal/common/include/arch/arm -I../lib/librte_eal/common/include/arch/arm -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 -Ibuildtools/pmdinfogen/../../lib/librte_pci -I../buildtools/pmdinfogen/../../lib/librte_pci -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O3 -include rte_config.h -Wsign-compare -Wcast-qual -Wno-address-of-packed-member -Wno-format-truncation -MD -MQ 'buildtools/pmdinfogen/pmdinfogen at exe/pmdinfogen.c.o' -MF 'buildtools/pmdinfogen/pmdinfogen at exe/pmdinfogen.c.o.d' -o 'buildtools/pmdinfogen/pmdinfogen at exe/pmdinfogen.c.o' -c ../buildtools/pmdinfogen/pmdinfogen.c
error: unknown warning option '-Wno-format-truncation' [-Werror,-Wunknown-warning-option]
[265/1011] Compiling C object 'lib/rte_pipeline at sta/librte_pipeline_rte_table_action.c.o'.

Best Regards,
Gavin





> >
> > [265/893] Compiling C object
> 'buildtools/pmdinfogen/pmdinfogen at exe/pmdinfogen.c.o'.
> > warning: unknown warning option '-Wno-format-truncation'
> > [-Wunknown-warning-option]
> > 1 warning generated.
> >
> > >
> > > > diff --git a/doc/guides/linux_gsg/index.rst
> > > > b/doc/guides/linux_gsg/index.rst index 2a7bdfe..077f930 100644
> > > > --- a/doc/guides/linux_gsg/index.rst
> > > > +++ b/doc/guides/linux_gsg/index.rst
> > > > @@ -13,6 +13,7 @@ Getting Started Guide for Linux
> > > >      intro
> > > >      sys_reqs
> > > >      build_dpdk
> > > > +    cross_build_dpdk_for_arm64
> > > >      linux_drivers
> > > >      build_sample_apps
> > > >      enable_func
> > > > --
> > > > 2.1.4
> > > >


More information about the dev mailing list