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

Message ID 20180402182823.30688-1-pbhagavatula@caviumnetworks.com (mailing list archive)
State Superseded, archived
Delegated to: Bruce Richardson
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Pavan Nikhilesh April 2, 2018, 6:28 p.m. UTC
  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@caviumnetworks.com>
---
 config/arm/meson.build | 9 ---------
 config/meson.build     | 8 ++++++++
 2 files changed, 8 insertions(+), 9 deletions(-)
  

Comments

Bruce Richardson April 3, 2018, 9:55 a.m. UTC | #1
On Mon, Apr 02, 2018 at 11:58:23PM +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@caviumnetworks.com>
> ---
>  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..5994d7b7b 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_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
> +

Never thought to look this up on the original patchset, but looking at the
meson docs, the compiler object already had a "get_id" method to identify
the compiler. We can use it rather than use checking for explicit defines
ourselves.  Using get_id() also allows us to identify icc and possibly
visual studio compiler for future windows compilation too.

http://mesonbuild.com/Reference-tables.html#compiler-ids

Regards,
/Bruce
  
Pavan Nikhilesh April 3, 2018, 10:07 a.m. UTC | #2
On Tue, Apr 03, 2018 at 10:55:08AM +0100, Bruce Richardson wrote:
> On Mon, Apr 02, 2018 at 11:58:23PM +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@caviumnetworks.com>
> > ---
> >  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..5994d7b7b 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_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
> > +
>
> Never thought to look this up on the original patchset, but looking at the
> meson docs, the compiler object already had a "get_id" method to identify
> the compiler. We can use it rather than use checking for explicit defines
> ourselves.  Using get_id() also allows us to identify icc and possibly
> visual studio compiler for future windows compilation too.
>
> http://mesonbuild.com/Reference-tables.html#compiler-ids

Good point will send v2 using get_id and multiple checks instead of else
so that we can extend it in future.

>
> Regards,
> /Bruce

Thanks,
Pavan.
  

Patch

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..5994d7b7b 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_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
+
 # use pthreads
 add_project_link_arguments('-pthread', language: 'c')
 dpdk_extra_ldflags += '-pthread'