> -----Original Message-----
> From: Jerin Jacob <jerin.ja...@caviumnetworks.com>
> Sent: Monday, June 4, 2018 8:51 PM
> To: Gavin Hu <gavin...@arm.com>
> Cc: Bruce Richardson <bruce.richard...@intel.com>; Thomas Monjalon
> <tho...@monjalon.net>; dev@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...@arm.com>
> > To: Jerin Jacob <jerin.ja...@caviumnetworks.com>, Bruce Richardson
> > <bruce.richard...@intel.com>, Thomas Monjalon <tho...@monjalon.net>
> > CC: "dev@dpdk.org" <dev@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.ja...@caviumnetworks.com>
> > > Sent: Thursday, May 31, 2018 3:36 AM
> > > To: Gavin Hu <gavin...@arm.com>
> > > Cc: dev@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...@arm.com>
> > > > To: dev@dpdk.org
> > > > CC: gavin...@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@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@exe/pmdinfogen.c.o' -MF 
'buildtools/pmdinfogen/pmdinfogen@exe/pmdinfogen.c.o.d' -o 
'buildtools/pmdinfogen/pmdinfogen@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@sta/librte_pipeline_rte_table_action.c.o'.

Best Regards,
Gavin





> >
> > [265/893] Compiling C object
> 'buildtools/pmdinfogen/pmdinfogen@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
> > > >

Reply via email to