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

Bruce Richardson bruce.richardson at intel.com
Tue Apr 3 12:55:24 CEST 2018


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())

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