[2/2] net/igc: fix gcc build for optimization level 0

Message ID 20201127080903.26817-3-ruifeng.wang@arm.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series gcc build fix |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Functional success Functional Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed

Commit Message

Ruifeng Wang Nov. 27, 2020, 8:09 a.m. UTC
  Gcc build with '-O0' failed for:
 ../drivers/net/igc/base/igc_api.c
 Assembler messages:
29: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]'
82: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]'
135: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]'
188: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]'

This is due to c_args not been passed to meson.

Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")
Cc: alvinx.zhang@intel.com

Reported-by: Feifei Wang <feifei.wang2@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
 drivers/net/igc/base/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Jerin Jacob Nov. 27, 2020, 8:53 a.m. UTC | #1
On Fri, Nov 27, 2020 at 1:40 PM Ruifeng Wang <ruifeng.wang@arm.com> wrote:
>
> Gcc build with '-O0' failed for:
>  ../drivers/net/igc/base/igc_api.c
>  Assembler messages:
> 29: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]'
> 82: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]'
> 135: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]'
> 188: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]'
>
> This is due to c_args not been passed to meson.
>
> Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")
> Cc: alvinx.zhang@intel.com
>
> Reported-by: Feifei Wang <feifei.wang2@arm.com>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>


Able to reproduce the issue with meson  build -Dbuildtype=debug
--cross-file config/arm/arm64_octeontx2_linux_gcc and
verified the build issue.

Tested-by: Jerin Jacob <jerinj@marvell.com>


> ---
>  drivers/net/igc/base/meson.build | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/igc/base/meson.build b/drivers/net/igc/base/meson.build
> index 299985180..690704fe0 100644
> --- a/drivers/net/igc/base/meson.build
> +++ b/drivers/net/igc/base/meson.build
> @@ -13,6 +13,7 @@ sources = [
>  ]
>
>  base_lib = static_library('igc_base', sources,
> -       dependencies: static_rte_eal)
> +       dependencies: static_rte_eal,
> +       c_args: cflags)
>
>  base_objs = base_lib.extract_all_objects()
> --
> 2.20.1
>
  
David Marchand Nov. 27, 2020, 9:02 a.m. UTC | #2
On Fri, Nov 27, 2020 at 9:10 AM Ruifeng Wang <ruifeng.wang@arm.com> wrote:
>
> Gcc build with '-O0' failed for:
>  ../drivers/net/igc/base/igc_api.c
>  Assembler messages:
> 29: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]'
> 82: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]'
> 135: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]'
> 188: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]'
>
> This is due to c_args not been passed to meson.
>
> Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")
> Cc: alvinx.zhang@intel.com
>
> Reported-by: Feifei Wang <feifei.wang2@arm.com>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>

I did not get to reproduce it yet (get an error on first patch...).

The patch looks fine but I fear some compilation problems since a lot
of base drivers filter cflags.
Still waiting for CI results...

Bruce,Ferruh,
Wdyt?
  
David Marchand Nov. 27, 2020, 12:13 p.m. UTC | #3
On Fri, Nov 27, 2020 at 10:02 AM David Marchand
<david.marchand@redhat.com> wrote:
>
> On Fri, Nov 27, 2020 at 9:10 AM Ruifeng Wang <ruifeng.wang@arm.com> wrote:
> >
> > Gcc build with '-O0' failed for:
> >  ../drivers/net/igc/base/igc_api.c
> >  Assembler messages:
> > 29: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]'
> > 82: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]'
> > 135: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]'
> > 188: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]'
> >
> > This is due to c_args not been passed to meson.
> >
> > Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")
> > Cc: alvinx.zhang@intel.com
> >
> > Reported-by: Feifei Wang <feifei.wang2@arm.com>
> > Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
>
> I did not get to reproduce it yet (get an error on first patch...).
>
> The patch looks fine but I fear some compilation problems since a lot
> of base drivers filter cflags.
> Still waiting for CI results...
>
> Bruce,Ferruh,
> Wdyt?

Comparing before/after patch on x86, gcc, static build, the only difference is:
 -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API
-Wno-format-truncation

Which corresponds to drivers/meson.build:

default_cflags = machine_args
default_cflags += ['-DALLOW_EXPERIMENTAL_API']
default_cflags += ['-DALLOW_INTERNAL_API']

if cc.has_argument('-Wno-format-truncation')
        default_cflags += '-Wno-format-truncation'
endif

So little risk wrt warning flags.
Still I'd like to hear from Intel, thanks.
  
Wang, Haiyue Nov. 27, 2020, 2:50 p.m. UTC | #4
> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Friday, November 27, 2020 20:14
> To: Richardson, Bruce <bruce.richardson@intel.com>; Yigit, Ferruh <ferruh.yigit@intel.com>
> Cc: Guo, Jia <jia.guo@intel.com>; Wang, Haiyue <haiyue.wang@intel.com>; Zhang, AlvinX
> <alvinx.zhang@intel.com>; dev <dev@dpdk.org>; Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>; nd
> <nd@arm.com>; Ruifeng Wang <ruifeng.wang@arm.com>; Feifei Wang <feifei.wang2@arm.com>
> Subject: Re: [dpdk-dev] [PATCH 2/2] net/igc: fix gcc build for optimization level 0
> 
> On Fri, Nov 27, 2020 at 10:02 AM David Marchand
> <david.marchand@redhat.com> wrote:
> >
> > On Fri, Nov 27, 2020 at 9:10 AM Ruifeng Wang <ruifeng.wang@arm.com> wrote:
> > >
> > > Gcc build with '-O0' failed for:
> > >  ../drivers/net/igc/base/igc_api.c
> > >  Assembler messages:
> > > 29: Error: selected processor does not support `casp x0,x1,x2,x3,[x4]'
> > > 82: Error: selected processor does not support `caspa x0,x1,x2,x3,[x4]'
> > > 135: Error: selected processor does not support `caspl x0,x1,x2,x3,[x4]'
> > > 188: Error: selected processor does not support `caspal x0,x1,x2,x3,[x4]'
> > >
> > > This is due to c_args not been passed to meson.
> > >
> > > Fixes: 8cb7c57d9b3c ("net/igc: support device initialization")
> > > Cc: alvinx.zhang@intel.com
> > >
> > > Reported-by: Feifei Wang <feifei.wang2@arm.com>
> > > Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> >
> > I did not get to reproduce it yet (get an error on first patch...).
> >
> > The patch looks fine but I fear some compilation problems since a lot
> > of base drivers filter cflags.
> > Still waiting for CI results...
> >
> > Bruce,Ferruh,
> > Wdyt?
> 
> Comparing before/after patch on x86, gcc, static build, the only difference is:
>  -march=native -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API
> -Wno-format-truncation
> 
> Which corresponds to drivers/meson.build:
> 
> default_cflags = machine_args
> default_cflags += ['-DALLOW_EXPERIMENTAL_API']
> default_cflags += ['-DALLOW_INTERNAL_API']
> 
> if cc.has_argument('-Wno-format-truncation')
>         default_cflags += '-Wno-format-truncation'
> endif
> 
> So little risk wrt warning flags.
> Still I'd like to hear from Intel, thanks.
> 
> 

LGTM, after reading other Intel PMDs base meson design.

Acked-by: Haiyue Wang <haiyue.wang@intel.com>

> --
> David Marchand
  

Patch

diff --git a/drivers/net/igc/base/meson.build b/drivers/net/igc/base/meson.build
index 299985180..690704fe0 100644
--- a/drivers/net/igc/base/meson.build
+++ b/drivers/net/igc/base/meson.build
@@ -13,6 +13,7 @@  sources = [
 ]
 
 base_lib = static_library('igc_base', sources,
-	dependencies: static_rte_eal)
+	dependencies: static_rte_eal,
+	c_args: cflags)
 
 base_objs = base_lib.extract_all_objects()