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
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
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