[dpdk-dev] [PATCH v2] build: meson set toolchain info during config init

Pavan Nikhilesh pbhagavatula at caviumnetworks.com
Tue Apr 3 13:11:34 CEST 2018


On Tue, Apr 03, 2018 at 11:55:24AM +0100, Bruce Richardson wrote:
> On Tue, Apr 03, 2018 at 03:51:10PM +0530, Pavan Nikhilesh wrote:
> > Meson set RTE_TOOLCHAIN to clang/gcc and set RTE_TOOLCHAIN_CLANG/GCC to
> > 1 during initilizing dpdk_conf so that it can be used by both x86 and arm.
> >
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
> > ---
> >
> >  v2 Changes:
> >  - Use get_id for identifying compiler instead of checking for compiler defines
> >  manually.(Bruce)
> >
> >  config/arm/meson.build | 9 ---------
> >  config/meson.build     | 8 ++++++++
> >  2 files changed, 8 insertions(+), 9 deletions(-)
> >
> > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > index c1ab6ed01..e9c9eb1a5 100644
> > --- a/config/arm/meson.build
> > +++ b/config/arm/meson.build
> > @@ -83,15 +83,6 @@ impl_0x69 = ['Intel', flags_generic, machine_args_generic]
> >  impl_dpaa = ['NXP DPAA', flags_dpaa, machine_args_generic]
> >  impl_dpaa2 = ['NXP DPAA2', flags_dpaa2, machine_args_generic]
> >
> > -
> > -if cc.get_define('__clang__') != ''
> > -	dpdk_conf.set_quoted('RTE_TOOLCHAIN', 'clang')
> > -	dpdk_conf.set('RTE_TOOLCHAIN_CLANG', 1)
> > -else
> > -	dpdk_conf.set_quoted('RTE_TOOLCHAIN', 'gcc')
> > -	dpdk_conf.set('RTE_TOOLCHAIN_GCC', 1)
> > -endif
> > -
> >  dpdk_conf.set('RTE_FORCE_INTRINSICS', 1)
> >
> >  if cc.sizeof('void *') != 8
> > diff --git a/config/meson.build b/config/meson.build
> > index f8c67578d..b8f953b54 100644
> > --- a/config/meson.build
> > +++ b/config/meson.build
> > @@ -11,6 +11,14 @@ dpdk_conf.set('RTE_MACHINE', machine)
> >  machine_args = []
> >  machine_args += '-march=' + machine
> >
> > +if cc.get_id() == 'clang'
> > +	dpdk_conf.set_quoted('RTE_TOOLCHAIN', 'clang')
> > +	dpdk_conf.set('RTE_TOOLCHAIN_CLANG', 1)
> > +elif cc.get_id() == 'gcc'
> > +	dpdk_conf.set_quoted('RTE_TOOLCHAIN', 'gcc')
> > +	dpdk_conf.set('RTE_TOOLCHAIN_GCC', 1)
> > +endif
> > +
>
> What about:
> 	toolchain = cc.get_id()
> 	dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain)
> 	dpdk_conf.set('RTE_TOOLCHAIN_' + toolchain.to_upper())
>

Agreed, will send out v3.

> It will give the exact same result for GCC and CLANG and save us having to
> update in future for other compilers. The one potential gotcha is that for
> ICC, it's going to report "intel" instead of "icc". However, from use of
> grep, it appears that we don't ever check for icc except in the makefiles,
> so having it reported as "intel" for meson builds should not be a problem.
> [If it is a problem later on we can always put in a special case: if
> toolchain == 'intel'; toolchain = 'icc'].
>
> /Bruce


More information about the dev mailing list