config/ppc: ignore gcc 11 psabi warnings

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

Checks

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

Commit Message

David Christensen June 23, 2021, 4:16 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>
---
 config/ppc/meson.build | 6 ++++++
 1 file changed, 6 insertions(+)
  

Patch

diff --git a/config/ppc/meson.build b/config/ppc/meson.build
index 4f7806bab1..6c2db4a0aa 100644
--- a/config/ppc/meson.build
+++ b/config/ppc/meson.build
@@ -17,6 +17,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