[dpdk-stable] patch 'net/mlx4: fix build with -fno-common' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue May 19 15:03:35 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 624db5a0ab8e9cddd0f2322bb2c840e71f2e780e Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas at monjalon.net>
Date: Wed, 8 Apr 2020 02:09:00 +0200
Subject: [PATCH] net/mlx4: fix build with -fno-common

[ upstream commit a5e5af7f20b4106b68eeedf83daada0371b83918 ]

The variable storages of the same name are merged together
if compiled with -fcommon. This is the default.
This default behaviour allows to declare a variable in a header file and
share the variable in every .o binaries thanks to merge at link-time.

In the case of dlopen linking of the glue library, the pointer mlx4_glue
is referencing the glue functions struct and is set after calling
dlopen.

If compiling with -fno-common (default in GCC 10), the variables must be
declared as extern to avoid multiple re-definitions.
In case the glue layer is split in glue library, the variable mlx4_glue
needs to have its own storage for the rest of the PMD.

Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
Acked-by: Matan Azrad <matan at mellanox.com>
---
 drivers/net/mlx4/mlx4.c      | 4 ++++
 drivers/net/mlx4/mlx4_glue.h | 2 +-
 drivers/net/mlx4/mlx4_rxtx.h | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index ab5e6c66cb..7771417ebe 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -49,6 +49,10 @@
 #include "mlx4_rxtx.h"
 #include "mlx4_utils.h"
 
+#ifdef MLX4_GLUE
+const struct mlx4_glue *mlx4_glue;
+#endif
+
 static const char *MZ_MLX4_PMD_SHARED_DATA = "mlx4_pmd_shared_data";
 
 /* Shared memory between primary and secondary processes. */
diff --git a/drivers/net/mlx4/mlx4_glue.h b/drivers/net/mlx4/mlx4_glue.h
index 668ca86700..5d9e985495 100644
--- a/drivers/net/mlx4/mlx4_glue.h
+++ b/drivers/net/mlx4/mlx4_glue.h
@@ -84,6 +84,6 @@ struct mlx4_glue {
 				   void *attr);
 };
 
-const struct mlx4_glue *mlx4_glue;
+extern const struct mlx4_glue *mlx4_glue;
 
 #endif /* MLX4_GLUE_H_ */
diff --git a/drivers/net/mlx4/mlx4_rxtx.h b/drivers/net/mlx4/mlx4_rxtx.h
index 8baf33fa94..9de6c59411 100644
--- a/drivers/net/mlx4/mlx4_rxtx.h
+++ b/drivers/net/mlx4/mlx4_rxtx.h
@@ -124,7 +124,7 @@ struct txq {
 
 /* mlx4_rxq.c */
 
-uint8_t mlx4_rss_hash_key_default[MLX4_RSS_HASH_KEY_SIZE];
+extern uint8_t mlx4_rss_hash_key_default[MLX4_RSS_HASH_KEY_SIZE];
 int mlx4_rss_init(struct mlx4_priv *priv);
 void mlx4_rss_deinit(struct mlx4_priv *priv);
 struct mlx4_rss *mlx4_rss_get(struct mlx4_priv *priv, uint64_t fields,
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-19 14:04:47.718686898 +0100
+++ 0080-net-mlx4-fix-build-with-fno-common.patch	2020-05-19 14:04:44.248648953 +0100
@@ -1,8 +1,10 @@
-From a5e5af7f20b4106b68eeedf83daada0371b83918 Mon Sep 17 00:00:00 2001
+From 624db5a0ab8e9cddd0f2322bb2c840e71f2e780e Mon Sep 17 00:00:00 2001
 From: Thomas Monjalon <thomas at monjalon.net>
 Date: Wed, 8 Apr 2020 02:09:00 +0200
 Subject: [PATCH] net/mlx4: fix build with -fno-common
 
+[ upstream commit a5e5af7f20b4106b68eeedf83daada0371b83918 ]
+
 The variable storages of the same name are merged together
 if compiled with -fcommon. This is the default.
 This default behaviour allows to declare a variable in a header file and
@@ -17,8 +19,6 @@
 In case the glue layer is split in glue library, the variable mlx4_glue
 needs to have its own storage for the rest of the PMD.
 
-Cc: stable at dpdk.org
-
 Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
 Acked-by: Matan Azrad <matan at mellanox.com>
 ---
@@ -28,7 +28,7 @@
  3 files changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
-index 8e298788af..5d7202720b 100644
+index ab5e6c66cb..7771417ebe 100644
 --- a/drivers/net/mlx4/mlx4.c
 +++ b/drivers/net/mlx4/mlx4.c
 @@ -49,6 +49,10 @@


More information about the stable mailing list