[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