drivers/net: fix mlx* glue libraries ABI version

Message ID 20191204100546.32095-1-david.marchand@redhat.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series drivers/net: fix mlx* glue libraries ABI version |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/travis-robot warning Travis build: failed
ci/iol-intel-Performance fail Performance Testing issues
ci/iol-compilation success Compile Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

David Marchand Dec. 4, 2019, 10:05 a.m. UTC
  Those libraries have been missed when switching to global ABI version.

Fixes: cba806e07d6f ("build: change ABI versioning to global")
Cc: stable@dpdk.org

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/mlx4/Makefile    | 2 +-
 drivers/net/mlx4/meson.build | 2 +-
 drivers/net/mlx5/Makefile    | 2 +-
 drivers/net/mlx5/meson.build | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
  

Comments

Thomas Monjalon Dec. 12, 2019, 10:17 p.m. UTC | #1
04/12/2019 11:05, David Marchand:
> Those libraries have been missed when switching to global ABI version.

The versioning of the glue libraries are for compatibility checks
between the PMD and its dependency (rdma-core) packaged as a plugin,
called glue library.

This versioning is updated when there is a change in the verbs glue
interface, in order to avoid issues in case of PMD and glue
updated separately with a non-compatible version.
I don't think the mlx glue libraries are part of the ABI policy
which acts at the application level.

Am I missing something?
  
David Marchand May 7, 2020, 12:35 p.m. UTC | #2
On Thu, Dec 12, 2019 at 11:18 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 04/12/2019 11:05, David Marchand:
> > Those libraries have been missed when switching to global ABI version.
>
> The versioning of the glue libraries are for compatibility checks
> between the PMD and its dependency (rdma-core) packaged as a plugin,
> called glue library.
>
> This versioning is updated when there is a change in the verbs glue
> interface, in order to avoid issues in case of PMD and glue
> updated separately with a non-compatible version.
> I don't think the mlx glue libraries are part of the ABI policy
> which acts at the application level.
>
> Am I missing something?

Sorry, this patch fell into the cracks.

I agree that this is not part of the ABI policy.
This version only indicates something internal.

But what I am proposing here is just to remove this special case.
What is the point of exposing a special version, while the net drivers
are the only one depending on those glue libs?
Do you expect separate packaging for the net driver and its associated glue lib?

This special version also makes it impossible to install two versions
of dpdk if those versions of dpdk need the same glue version.

I still think it is better to align to the version of dpdk, though the
commitlog needs some work.
  
Thomas Monjalon May 7, 2020, 8:04 p.m. UTC | #3
07/05/2020 14:35, David Marchand:
> On Thu, Dec 12, 2019 at 11:18 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 04/12/2019 11:05, David Marchand:
> > > Those libraries have been missed when switching to global ABI version.
> >
> > The versioning of the glue libraries are for compatibility checks
> > between the PMD and its dependency (rdma-core) packaged as a plugin,
> > called glue library.
> >
> > This versioning is updated when there is a change in the verbs glue
> > interface, in order to avoid issues in case of PMD and glue
> > updated separately with a non-compatible version.
> > I don't think the mlx glue libraries are part of the ABI policy
> > which acts at the application level.
> >
> > Am I missing something?
> 
> Sorry, this patch fell into the cracks.
> 
> I agree that this is not part of the ABI policy.
> This version only indicates something internal.
> 
> But what I am proposing here is just to remove this special case.
> What is the point of exposing a special version, while the net drivers
> are the only one depending on those glue libs?
> Do you expect separate packaging for the net driver and its associated glue lib?
> 
> This special version also makes it impossible to install two versions
> of dpdk if those versions of dpdk need the same glue version.

Yes I'm OK with using DPDK version for glue versioning.
  

Patch

diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
index 329569dc10..dac5c5f64c 100644
--- a/drivers/net/mlx4/Makefile
+++ b/drivers/net/mlx4/Makefile
@@ -8,7 +8,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_mlx4.a
 LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION)
 LIB_GLUE_BASE = librte_pmd_mlx4_glue.so
-LIB_GLUE_VERSION = 18.02.0
+LIB_GLUE_VERSION = $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
 
 # Sources.
 SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4.c
diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
index 9eb4988420..3ef946fef0 100644
--- a/drivers/net/mlx4/meson.build
+++ b/drivers/net/mlx4/meson.build
@@ -11,7 +11,7 @@  build = true
 
 pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')
 LIB_GLUE_BASE = 'librte_pmd_mlx4_glue.so'
-LIB_GLUE_VERSION = '18.02.0'
+LIB_GLUE_VERSION = abi_version
 LIB_GLUE = LIB_GLUE_BASE + '.' + LIB_GLUE_VERSION
 if pmd_dlopen
 	dpdk_conf.set('RTE_IBVERBS_LINK_DLOPEN', 1)
diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile
index c5cf4397ac..90a9eeb61f 100644
--- a/drivers/net/mlx5/Makefile
+++ b/drivers/net/mlx5/Makefile
@@ -8,7 +8,7 @@  include $(RTE_SDK)/mk/rte.vars.mk
 LIB = librte_pmd_mlx5.a
 LIB_GLUE = $(LIB_GLUE_BASE).$(LIB_GLUE_VERSION)
 LIB_GLUE_BASE = librte_pmd_mlx5_glue.so
-LIB_GLUE_VERSION = 19.08.0
+LIB_GLUE_VERSION = $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
 
 # Sources.
 SRCS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += mlx5.c
diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
index d6b32db794..0216c22573 100644
--- a/drivers/net/mlx5/meson.build
+++ b/drivers/net/mlx5/meson.build
@@ -11,7 +11,7 @@  build = true
 
 pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')
 LIB_GLUE_BASE = 'librte_pmd_mlx5_glue.so'
-LIB_GLUE_VERSION = '19.08.0'
+LIB_GLUE_VERSION = abi_version
 LIB_GLUE = LIB_GLUE_BASE + '.' + LIB_GLUE_VERSION
 if pmd_dlopen
 	dpdk_conf.set('RTE_IBVERBS_LINK_DLOPEN', 1)