[dpdk-stable] patch 'eal/ppc: fix build with gcc 9.3' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue May 19 15:04:30 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/21/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 a131ab7d0f2fb6ab35e9e556f7630a607be9eefe Mon Sep 17 00:00:00 2001
From: David Christensen <drc at linux.vnet.ibm.com>
Date: Mon, 4 May 2020 14:03:47 -0700
Subject: [PATCH] eal/ppc: fix build with gcc 9.3

[ upstream commit 67889d11306a6e531be8d2fe53bc216172b90f5d ]

Building DPDK on Ubuntu 20.04 with GCC 9.3.0 results in a "subscript is
outside array bounds" message in rte_memcpy function.  The build error
is caused by an interaction between __builtin_constant_p and
"-Werror=array-bounds" as described in this bugzilla:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90387

Modify the code to disable the array-bounds check for GCC versions 9.0
to 9.3.

Signed-off-by: David Christensen <drc at linux.vnet.ibm.com>
---
 .../common/include/arch/ppc_64/rte_memcpy.h           | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h b/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
index 25311ba1d7..02188e79bc 100644
--- a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
+++ b/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
@@ -11,12 +11,19 @@
 /*To include altivec.h, GCC version must  >= 4.8 */
 #include <altivec.h>
 
+#include "rte_common.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #include "generic/rte_memcpy.h"
 
+#if (GCC_VERSION >= 90000 && GCC_VERSION < 90400)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Warray-bounds"
+#endif
+
 static inline void
 rte_mov16(uint8_t *dst, const uint8_t *src)
 {
@@ -192,6 +199,10 @@ rte_memcpy_func(void *dst, const void *src, size_t n)
 	return ret;
 }
 
+#if (GCC_VERSION >= 90000 && GCC_VERSION < 90400)
+#pragma GCC diagnostic pop
+#endif
+
 #ifdef __cplusplus
 }
 #endif
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-19 14:04:49.936695226 +0100
+++ 0135-eal-ppc-fix-build-with-gcc-9.3.patch	2020-05-19 14:04:44.444652506 +0100
@@ -1,8 +1,10 @@
-From 67889d11306a6e531be8d2fe53bc216172b90f5d Mon Sep 17 00:00:00 2001
+From a131ab7d0f2fb6ab35e9e556f7630a607be9eefe Mon Sep 17 00:00:00 2001
 From: David Christensen <drc at linux.vnet.ibm.com>
 Date: Mon, 4 May 2020 14:03:47 -0700
 Subject: [PATCH] eal/ppc: fix build with gcc 9.3
 
+[ upstream commit 67889d11306a6e531be8d2fe53bc216172b90f5d ]
+
 Building DPDK on Ubuntu 20.04 with GCC 9.3.0 results in a "subscript is
 outside array bounds" message in rte_memcpy function.  The build error
 is caused by an interaction between __builtin_constant_p and
@@ -13,26 +15,24 @@
 Modify the code to disable the array-bounds check for GCC versions 9.0
 to 9.3.
 
-Cc: stable at dpdk.org
-
 Signed-off-by: David Christensen <drc at linux.vnet.ibm.com>
 ---
- lib/librte_eal/ppc/include/rte_memcpy.h | 10 ++++++++++
- 1 file changed, 10 insertions(+)
+ .../common/include/arch/ppc_64/rte_memcpy.h           | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
 
-diff --git a/lib/librte_eal/ppc/include/rte_memcpy.h b/lib/librte_eal/ppc/include/rte_memcpy.h
-index d685b7b15b..c2a1f356d5 100644
---- a/lib/librte_eal/ppc/include/rte_memcpy.h
-+++ b/lib/librte_eal/ppc/include/rte_memcpy.h
-@@ -10,6 +10,7 @@
- #include <string.h>
+diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h b/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
+index 25311ba1d7..02188e79bc 100644
+--- a/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
++++ b/lib/librte_eal/common/include/arch/ppc_64/rte_memcpy.h
+@@ -11,12 +11,19 @@
+ /*To include altivec.h, GCC version must  >= 4.8 */
+ #include <altivec.h>
  
- #include "rte_altivec.h"
 +#include "rte_common.h"
- 
++
  #ifdef __cplusplus
  extern "C" {
-@@ -17,6 +18,11 @@ extern "C" {
+ #endif
  
  #include "generic/rte_memcpy.h"
  
@@ -44,7 +44,7 @@
  static inline void
  rte_mov16(uint8_t *dst, const uint8_t *src)
  {
-@@ -192,6 +198,10 @@ rte_memcpy_func(void *dst, const void *src, size_t n)
+@@ -192,6 +199,10 @@ rte_memcpy_func(void *dst, const void *src, size_t n)
  	return ret;
  }
  


More information about the stable mailing list