[v2] config/ppc: ignore gcc 11 psabi warnings

Message ID 20210902235326.3236718-1-drc@linux.vnet.ibm.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [v2] config/ppc: ignore gcc 11 psabi warnings |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-spell-check-testing success Testing PASS
ci/github-robot: build success github build: passed
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing warning Testing issues

Commit Message

David Christensen Sept. 2, 2021, 11:53 p.m. UTC
  Suppress the gcc warning "note: the layout of aggregates containing
vectors with 4-byte alignment has changed in GCC 5" on POWER systems
by setting "-Wno-psabi".  Warning was originally added to gcc in
commit https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9832651 to warn
of the vector alignment changes introduced in GCC 5.  Older gcc
versions forced vector alignment to 16 bytes due to requirements for
POWER 6 and earlier CPUs, but these restrictions don't apply to CPUs
supported by DPDK.

Bugzilla ID: 739

Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
---
v2:
- update copyright year
- rebase for 21.11-rc0
---
 config/ppc/meson.build | 7 +++++++
 1 file changed, 7 insertions(+)

--
2.27.0
  

Comments

David Christensen Sept. 8, 2021, 5:11 p.m. UTC | #1
> Suppress the gcc warning "note: the layout of aggregates containing
> vectors with 4-byte alignment has changed in GCC 5" on POWER systems
> by setting "-Wno-psabi".  Warning was originally added to gcc in
> commit https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9832651 to warn
> of the vector alignment changes introduced in GCC 5.  Older gcc
> versions forced vector alignment to 16 bytes due to requirements for
> POWER 6 and earlier CPUs, but these restrictions don't apply to CPUs
> supported by DPDK.
> 
> Bugzilla ID: 739
> 
> Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
> ---
> v2:
> - update copyright year
> - rebase for 21.11-rc0
> ---

David M,

Any chance of getting this approved in the 21.11 cycle?  Patch was 
originally submitted on 6/23, is only applicable to PPC architecture, 
and has no functional impact because it only disables warnings.  The 
failing test build on Windows reported at

http://mails.dpdk.org/archives/test-report/2021-September/216596.html

cannot in any way be caused by this patch.  We hope to have all changes 
in place to support POWER10 in this DPDK release so we're constantly 
testing with new compiler versions which add P10 support.

Dave
  
David Marchand Sept. 13, 2021, 7:17 a.m. UTC | #2
On Fri, Sep 3, 2021 at 1:53 AM David Christensen <drc@linux.vnet.ibm.com> wrote:
>
> Suppress the gcc warning "note: the layout of aggregates containing
> vectors with 4-byte alignment has changed in GCC 5" on POWER systems
> by setting "-Wno-psabi".  Warning was originally added to gcc in
> commit https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9832651 to warn
> of the vector alignment changes introduced in GCC 5.  Older gcc
> versions forced vector alignment to 16 bytes due to requirements for
> POWER 6 and earlier CPUs, but these restrictions don't apply to CPUs
> supported by DPDK.
>
> Bugzilla ID: 739

I guess the intent was to have this backported.
So added explicit Cc: stable@dpdk.org

>
> Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
> ---
> v2:
> - update copyright year
> - rebase for 21.11-rc0
> ---
>  config/ppc/meson.build | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/config/ppc/meson.build b/config/ppc/meson.build
> index adf49e1f42..5354db4e0a 100644
> --- a/config/ppc/meson.build
> +++ b/config/ppc/meson.build
> @@ -1,5 +1,6 @@
>  # SPDX-License-Identifier: BSD-3-Clause
>  # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
> +# Copyright(c) 2021 IBM Corporation
>
>  if not dpdk_conf.get('RTE_ARCH_64')
>      error('Only 64-bit compiles are supported for this platform type')
> @@ -17,6 +18,12 @@ if not power9_supported
>      dpdk_conf.set('RTE_MACHINE','power8')
>  endif
>
> +# Suppress the gcc warning "note: the layout of aggregates containing
> +# vectors with 4-byte alignment has changed in GCC 5".
> +if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')

Wrapped this to next line.


> +    add_project_arguments('-Wno-psabi', language: 'c')
> +endif
> +
>  # Certain POWER9 systems can scale as high as 1536 LCORES, but setting such a
>  # high value can waste memory, cause timeouts in time limited autotests, and is
>  # unlikely to be used in many production situations.  Similarly, keeping the
> --
> 2.27.0
>

Applied, thanks.
  
Ferruh Yigit Sept. 14, 2021, 9:18 a.m. UTC | #3
On 9/3/2021 12:53 AM, David Christensen wrote:
> Suppress the gcc warning "note: the layout of aggregates containing
> vectors with 4-byte alignment has changed in GCC 5" on POWER systems
> by setting "-Wno-psabi".  Warning was originally added to gcc in
> commit https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9832651 to warn
> of the vector alignment changes introduced in GCC 5.  Older gcc
> versions forced vector alignment to 16 bytes due to requirements for
> POWER 6 and earlier CPUs, but these restrictions don't apply to CPUs
> supported by DPDK.
> 
> Bugzilla ID: 739
> 
> Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
> ---
> v2:
> - update copyright year
> - rebase for 21.11-rc0
> ---
>  config/ppc/meson.build | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/config/ppc/meson.build b/config/ppc/meson.build
> index adf49e1f42..5354db4e0a 100644
> --- a/config/ppc/meson.build
> +++ b/config/ppc/meson.build
> @@ -1,5 +1,6 @@
>  # SPDX-License-Identifier: BSD-3-Clause
>  # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
> +# Copyright(c) 2021 IBM Corporation
> 
>  if not dpdk_conf.get('RTE_ARCH_64')
>      error('Only 64-bit compiles are supported for this platform type')
> @@ -17,6 +18,12 @@ if not power9_supported
>      dpdk_conf.set('RTE_MACHINE','power8')
>  endif
> 
> +# Suppress the gcc warning "note: the layout of aggregates containing
> +# vectors with 4-byte alignment has changed in GCC 5".
> +if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')
> +    add_project_arguments('-Wno-psabi', language: 'c')
> +endif
> +
>  # Certain POWER9 systems can scale as high as 1536 LCORES, but setting such a
>  # high value can waste memory, cause timeouts in time limited autotests, and is
>  # unlikely to be used in many production situations.  Similarly, keeping the
> --

I am getting following build error in my environment:
"config/ppc/meson.build:23:6: ERROR: Unknown statement."

The compiler I have is:
powerpc64le-linux-gcc (gcc 10.2.0 "powerpc64le-linux-gcc.br_real (Buildroot
2020.08-14-ge5a2a90) 10.2.0")

meson version: Version: 0.59.1

Multi-line statements seems need to be merged with '\':

diff --git a/config/ppc/meson.build b/config/ppc/meson.build
index 0b1948fc7cb9..f95009c77e7a 100644
--- a/config/ppc/meson.build
+++ b/config/ppc/meson.build
@@ -20,7 +20,7 @@ endif

 # Suppress the gcc warning "note: the layout of aggregates containing
 # vectors with 4-byte alignment has changed in GCC 5".
-if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and
+if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and \
         cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')
     add_project_arguments('-Wno-psabi', language: 'c')
 endif
  
David Marchand Sept. 14, 2021, 10:16 a.m. UTC | #4
On Tue, Sep 14, 2021 at 11:18 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>
> On 9/3/2021 12:53 AM, David Christensen wrote:
> > Suppress the gcc warning "note: the layout of aggregates containing
> > vectors with 4-byte alignment has changed in GCC 5" on POWER systems
> > by setting "-Wno-psabi".  Warning was originally added to gcc in
> > commit https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9832651 to warn
> > of the vector alignment changes introduced in GCC 5.  Older gcc
> > versions forced vector alignment to 16 bytes due to requirements for
> > POWER 6 and earlier CPUs, but these restrictions don't apply to CPUs
> > supported by DPDK.
> >
> > Bugzilla ID: 739
> >
> > Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
> > ---
> > v2:
> > - update copyright year
> > - rebase for 21.11-rc0
> > ---
> >  config/ppc/meson.build | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/config/ppc/meson.build b/config/ppc/meson.build
> > index adf49e1f42..5354db4e0a 100644
> > --- a/config/ppc/meson.build
> > +++ b/config/ppc/meson.build
> > @@ -1,5 +1,6 @@
> >  # SPDX-License-Identifier: BSD-3-Clause
> >  # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
> > +# Copyright(c) 2021 IBM Corporation
> >
> >  if not dpdk_conf.get('RTE_ARCH_64')
> >      error('Only 64-bit compiles are supported for this platform type')
> > @@ -17,6 +18,12 @@ if not power9_supported
> >      dpdk_conf.set('RTE_MACHINE','power8')
> >  endif
> >
> > +# Suppress the gcc warning "note: the layout of aggregates containing
> > +# vectors with 4-byte alignment has changed in GCC 5".
> > +if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')
> > +    add_project_arguments('-Wno-psabi', language: 'c')
> > +endif
> > +
> >  # Certain POWER9 systems can scale as high as 1536 LCORES, but setting such a
> >  # high value can waste memory, cause timeouts in time limited autotests, and is
> >  # unlikely to be used in many production situations.  Similarly, keeping the
> > --
>
> I am getting following build error in my environment:
> "config/ppc/meson.build:23:6: ERROR: Unknown statement."
>
> The compiler I have is:
> powerpc64le-linux-gcc (gcc 10.2.0 "powerpc64le-linux-gcc.br_real (Buildroot
> 2020.08-14-ge5a2a90) 10.2.0")
>
> meson version: Version: 0.59.1

Good catch.
My fault, and I did not see it because I was still testing with gcc 9.


>
> Multi-line statements seems need to be merged with '\':
>
> diff --git a/config/ppc/meson.build b/config/ppc/meson.build
> index 0b1948fc7cb9..f95009c77e7a 100644
> --- a/config/ppc/meson.build
> +++ b/config/ppc/meson.build
> @@ -20,7 +20,7 @@ endif
>
>  # Suppress the gcc warning "note: the layout of aggregates containing
>  # vectors with 4-byte alignment has changed in GCC 5".
> -if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and
> +if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and \
>          cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')

I based this update of mine on other existing multiline statements in dpdk.
But I did not notice that all of them are within parens.

So both \ and () are fine.

Bruce, I did not see this described in our meson coding style.
Do you have an opinion for multiline statements in meson?
  
Bruce Richardson Sept. 14, 2021, 10:21 a.m. UTC | #5
On Tue, Sep 14, 2021 at 12:16:36PM +0200, David Marchand wrote:
> On Tue, Sep 14, 2021 at 11:18 AM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> >
> > On 9/3/2021 12:53 AM, David Christensen wrote:
> > > Suppress the gcc warning "note: the layout of aggregates containing
> > > vectors with 4-byte alignment has changed in GCC 5" on POWER systems
> > > by setting "-Wno-psabi".  Warning was originally added to gcc in
> > > commit https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9832651 to warn
> > > of the vector alignment changes introduced in GCC 5.  Older gcc
> > > versions forced vector alignment to 16 bytes due to requirements for
> > > POWER 6 and earlier CPUs, but these restrictions don't apply to CPUs
> > > supported by DPDK.
> > >
> > > Bugzilla ID: 739
> > >
> > > Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
> > > ---
> > > v2:
> > > - update copyright year
> > > - rebase for 21.11-rc0
> > > ---
> > >  config/ppc/meson.build | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > >
> > > diff --git a/config/ppc/meson.build b/config/ppc/meson.build
> > > index adf49e1f42..5354db4e0a 100644
> > > --- a/config/ppc/meson.build
> > > +++ b/config/ppc/meson.build
> > > @@ -1,5 +1,6 @@
> > >  # SPDX-License-Identifier: BSD-3-Clause
> > >  # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
> > > +# Copyright(c) 2021 IBM Corporation
> > >
> > >  if not dpdk_conf.get('RTE_ARCH_64')
> > >      error('Only 64-bit compiles are supported for this platform type')
> > > @@ -17,6 +18,12 @@ if not power9_supported
> > >      dpdk_conf.set('RTE_MACHINE','power8')
> > >  endif
> > >
> > > +# Suppress the gcc warning "note: the layout of aggregates containing
> > > +# vectors with 4-byte alignment has changed in GCC 5".
> > > +if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')
> > > +    add_project_arguments('-Wno-psabi', language: 'c')
> > > +endif
> > > +
> > >  # Certain POWER9 systems can scale as high as 1536 LCORES, but setting such a
> > >  # high value can waste memory, cause timeouts in time limited autotests, and is
> > >  # unlikely to be used in many production situations.  Similarly, keeping the
> > > --
> >
> > I am getting following build error in my environment:
> > "config/ppc/meson.build:23:6: ERROR: Unknown statement."
> >
> > The compiler I have is:
> > powerpc64le-linux-gcc (gcc 10.2.0 "powerpc64le-linux-gcc.br_real (Buildroot
> > 2020.08-14-ge5a2a90) 10.2.0")
> >
> > meson version: Version: 0.59.1
> 
> Good catch.
> My fault, and I did not see it because I was still testing with gcc 9.
> 
> 
> >
> > Multi-line statements seems need to be merged with '\':
> >
> > diff --git a/config/ppc/meson.build b/config/ppc/meson.build
> > index 0b1948fc7cb9..f95009c77e7a 100644
> > --- a/config/ppc/meson.build
> > +++ b/config/ppc/meson.build
> > @@ -20,7 +20,7 @@ endif
> >
> >  # Suppress the gcc warning "note: the layout of aggregates containing
> >  # vectors with 4-byte alignment has changed in GCC 5".
> > -if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and
> > +if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and \
> >          cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')
> 
> I based this update of mine on other existing multiline statements in dpdk.
> But I did not notice that all of them are within parens.
> 
> So both \ and () are fine.
> 
> Bruce, I did not see this described in our meson coding style.
> Do you have an opinion for multiline statements in meson?
> 

No, I don't have an opinion either way. If you want, we can pick one to use
in the coding style, but if we do we should also match the style for python
code, as I believe they both share this multi-line approach.
  

Patch

diff --git a/config/ppc/meson.build b/config/ppc/meson.build
index adf49e1f42..5354db4e0a 100644
--- a/config/ppc/meson.build
+++ b/config/ppc/meson.build
@@ -1,5 +1,6 @@ 
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+# Copyright(c) 2021 IBM Corporation

 if not dpdk_conf.get('RTE_ARCH_64')
     error('Only 64-bit compiles are supported for this platform type')
@@ -17,6 +18,12 @@  if not power9_supported
     dpdk_conf.set('RTE_MACHINE','power8')
 endif

+# Suppress the gcc warning "note: the layout of aggregates containing
+# vectors with 4-byte alignment has changed in GCC 5".
+if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0') and cc.version().version_compare('<12.0') and cc.has_argument('-Wno-psabi')
+    add_project_arguments('-Wno-psabi', language: 'c')
+endif
+
 # Certain POWER9 systems can scale as high as 1536 LCORES, but setting such a
 # high value can waste memory, cause timeouts in time limited autotests, and is
 # unlikely to be used in many production situations.  Similarly, keeping the