[dpdk-dev] [PATCH v2] config/ppc: ignore gcc 11 psabi warnings
David Marchand
david.marchand at redhat.com
Tue Sep 14 12:16:36 CEST 2021
On Tue, Sep 14, 2021 at 11:18 AM Ferruh Yigit <ferruh.yigit at 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 at 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 at 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?
--
David Marchand
More information about the dev
mailing list