common/mlx5: fix link with ibverbs glue dlopen option

Message ID 20200713153710.807451-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series common/mlx5: fix link with ibverbs glue dlopen option |

Checks

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

Commit Message

Thomas Monjalon July 13, 2020, 3:37 p.m. UTC
  In case the ibverbs glue is a separate library to dlopen,
the PMD library must allocate a glue structure to be filled by dlopen.

The glue management was in mlx5_common.c and moved to mlx5_common_os.c,
but the variable allocation was not removed from the original file.
The consequence was a link failure, if ibverbs dlopen option is enabled,
because of the redefinition of the variable (with GCC 10):
	multiple definition of 'mlx5_glue'

The original definition is removed to keep only the one moved
in the Linux sub-directory.

Fixes: 79aa430721b1 ("common/mlx5: split common file under Linux directory")
Cc: ophirmu@mellanox.com

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/common/mlx5/mlx5_common.c | 4 ----
 1 file changed, 4 deletions(-)
  

Comments

Matan Azrad July 14, 2020, 5:02 a.m. UTC | #1
From: Thomas Monjalon
> In case the ibverbs glue is a separate library to dlopen, the PMD library must
> allocate a glue structure to be filled by dlopen.
> 
> The glue management was in mlx5_common.c and moved to
> mlx5_common_os.c, but the variable allocation was not removed from the
> original file.
> The consequence was a link failure, if ibverbs dlopen option is enabled,
> because of the redefinition of the variable (with GCC 10):
> 	multiple definition of 'mlx5_glue'
> 
> The original definition is removed to keep only the one moved in the Linux
> sub-directory.
> 
> Fixes: 79aa430721b1 ("common/mlx5: split common file under Linux
> directory")
> Cc: ophirmu@mellanox.com
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Matan Azrad <matan@mellanox.com>
> ---
>  drivers/common/mlx5/mlx5_common.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/drivers/common/mlx5/mlx5_common.c
> b/drivers/common/mlx5/mlx5_common.c
> index 693e2c68c8..341239d164 100644
> --- a/drivers/common/mlx5/mlx5_common.c
> +++ b/drivers/common/mlx5/mlx5_common.c
> @@ -16,10 +16,6 @@
> 
>  int mlx5_common_logtype;
> 
> -#ifdef MLX5_GLUE
> -const struct mlx5_glue *mlx5_glue;
> -#endif
> -
>  uint8_t haswell_broadwell_cpu;
> 
>  static int
> --
> 2.27.0
  
Raslan Darawsheh July 18, 2020, 1:34 p.m. UTC | #2
Him

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Monday, July 13, 2020 6:37 PM
> To: dev@dpdk.org
> Cc: Raslan Darawsheh <rasland@mellanox.com>; Ophir Munk
> <ophirmu@mellanox.com>; Matan Azrad <matan@mellanox.com>; Shahaf
> Shuler <shahafs@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>
> Subject: [PATCH] common/mlx5: fix link with ibverbs glue dlopen option
> 
> In case the ibverbs glue is a separate library to dlopen,
> the PMD library must allocate a glue structure to be filled by dlopen.
> 
> The glue management was in mlx5_common.c and moved to
> mlx5_common_os.c,
> but the variable allocation was not removed from the original file.
> The consequence was a link failure, if ibverbs dlopen option is enabled,
> because of the redefinition of the variable (with GCC 10):
> 	multiple definition of 'mlx5_glue'
> 
> The original definition is removed to keep only the one moved
> in the Linux sub-directory.
> 
> Fixes: 79aa430721b1 ("common/mlx5: split common file under Linux
> directory")
> Cc: ophirmu@mellanox.com
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  drivers/common/mlx5/mlx5_common.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/drivers/common/mlx5/mlx5_common.c
> b/drivers/common/mlx5/mlx5_common.c
> index 693e2c68c8..341239d164 100644
> --- a/drivers/common/mlx5/mlx5_common.c
> +++ b/drivers/common/mlx5/mlx5_common.c
> @@ -16,10 +16,6 @@
> 
>  int mlx5_common_logtype;
> 
> -#ifdef MLX5_GLUE
> -const struct mlx5_glue *mlx5_glue;
> -#endif
> -
>  uint8_t haswell_broadwell_cpu;
> 
>  static int
> --
> 2.27.0

Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c
index 693e2c68c8..341239d164 100644
--- a/drivers/common/mlx5/mlx5_common.c
+++ b/drivers/common/mlx5/mlx5_common.c
@@ -16,10 +16,6 @@ 
 
 int mlx5_common_logtype;
 
-#ifdef MLX5_GLUE
-const struct mlx5_glue *mlx5_glue;
-#endif
-
 uint8_t haswell_broadwell_cpu;
 
 static int