[dpdk-stable] patch 'build: disable gcc 10 zero-length-bounds warning' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri May 22 11:39:44 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/24/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From f40d9a3cbbf10a46087ac0835ee41587d9313903 Mon Sep 17 00:00:00 2001
From: Kevin Traynor <ktraynor at redhat.com>
Date: Thu, 14 May 2020 14:18:57 +0100
Subject: [PATCH] build: disable gcc 10 zero-length-bounds warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

[ upstream commit cfacbcb5a23bc26cb913528c372adddabbb33ca1 ]

gcc 10 issues warnings about the use of rearm_data marker
from struct rte_mbuf.

e.g.
../drivers/net/enic/enic_rxtx_vec_avx2.c: In function ‘rx_one’:
../drivers/net/enic/enic_rxtx_vec_avx2.c:21:2:
warning:
array subscript 0 is outside the bounds of an interior zero-length array
‘RTE_MARKER64’ {aka ‘long unsigned int[0]’} [-Wzero-length-bounds]
   21 |  *(uint64_t *)&mb->rearm_data = enic->mbuf_initializer;
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../lib/librte_mbuf/rte_mbuf.h:45,
                 from ../drivers/net/enic/enic_rxtx_vec_avx2.c:6:
../lib/librte_mbuf/rte_mbuf_core.h:484:15:
note: while referencing ‘rearm_data’
  484 |  RTE_MARKER64 rearm_data;
      |

Disable this warning for gcc 10 in order to allow v20.05 to build
without changes to struct rte_mbuf.

Bugzilla ID: 396

Signed-off-by: Kevin Traynor <ktraynor at redhat.com>
Reviewed-by: David Marchand <david.marchand at redhat.com>
---
 config/meson.build           | 4 ++++
 mk/toolchain/gcc/rte.vars.mk | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/config/meson.build b/config/meson.build
index 35ef12e30c..78bfdf3094 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -191,6 +191,10 @@ warning_flags = [
 	'-Wno-packed-not-aligned',
 	'-Wno-missing-field-initializers'
 ]
+if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0')
+# FIXME: Bugzilla 396
+	warning_flags += '-Wno-zero-length-bounds'
+endif
 if not dpdk_conf.get('RTE_ARCH_64')
 # for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!
 	warning_flags += '-Wno-pointer-to-int-cast'
diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
index 9fc704193b..b3473c06fd 100644
--- a/mk/toolchain/gcc/rte.vars.mk
+++ b/mk/toolchain/gcc/rte.vars.mk
@@ -83,6 +83,11 @@ ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
 WERROR_FLAGS += -Wno-uninitialized
 endif
 
+ifeq ($(shell test $(GCC_VERSION) -ge 100 && echo 1), 1)
+# FIXME: Bugzilla 396
+WERROR_FLAGS += -Wno-zero-length-bounds
+endif
+
 HOST_WERROR_FLAGS := $(WERROR_FLAGS)
 
 ifeq ($(shell test $(HOST_GCC_VERSION) -gt 70 && echo 1), 1)
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-22 10:37:39.433709093 +0100
+++ 0005-build-disable-gcc-10-zero-length-bounds-warning.patch	2020-05-22 10:37:39.060411495 +0100
@@ -1,4 +1,4 @@
-From cfacbcb5a23bc26cb913528c372adddabbb33ca1 Mon Sep 17 00:00:00 2001
+From f40d9a3cbbf10a46087ac0835ee41587d9313903 Mon Sep 17 00:00:00 2001
 From: Kevin Traynor <ktraynor at redhat.com>
 Date: Thu, 14 May 2020 14:18:57 +0100
 Subject: [PATCH] build: disable gcc 10 zero-length-bounds warning
@@ -6,6 +6,8 @@
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
 
+[ upstream commit cfacbcb5a23bc26cb913528c372adddabbb33ca1 ]
+
 gcc 10 issues warnings about the use of rearm_data marker
 from struct rte_mbuf.
 
@@ -28,7 +30,6 @@
 without changes to struct rte_mbuf.
 
 Bugzilla ID: 396
-Cc: stable at dpdk.org
 
 Signed-off-by: Kevin Traynor <ktraynor at redhat.com>
 Reviewed-by: David Marchand <david.marchand at redhat.com>
@@ -38,10 +39,10 @@
  2 files changed, 9 insertions(+)
 
 diff --git a/config/meson.build b/config/meson.build
-index a1c38c053e..43ab113106 100644
+index 35ef12e30c..78bfdf3094 100644
 --- a/config/meson.build
 +++ b/config/meson.build
-@@ -208,6 +208,10 @@ warning_flags = [
+@@ -191,6 +191,10 @@ warning_flags = [
  	'-Wno-packed-not-aligned',
  	'-Wno-missing-field-initializers'
  ]
@@ -53,10 +54,10 @@
  # for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!
  	warning_flags += '-Wno-pointer-to-int-cast'
 diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
-index f19305e495..928f0e0830 100644
+index 9fc704193b..b3473c06fd 100644
 --- a/mk/toolchain/gcc/rte.vars.mk
 +++ b/mk/toolchain/gcc/rte.vars.mk
-@@ -81,6 +81,11 @@ ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
+@@ -83,6 +83,11 @@ ifeq ($(shell test $(GCC_VERSION) -lt 47 && echo 1), 1)
  WERROR_FLAGS += -Wno-uninitialized
  endif
  


More information about the stable mailing list