On Wed, Nov 20, 2019 at 8:51 PM David Marchand
<david.march...@redhat.com> wrote:
>
> On Wed, Nov 20, 2019 at 6:23 PM Anatoly Burakov
> <anatoly.bura...@intel.com> wrote:
> >
> > From: Marcin Baran <marcinx.ba...@intel.com>
> >
> > As per new ABI policy [1], all of the libraries are now versioned using
> > one global ABI version. Stable libraries use the MAJOR.MINOR ABI
> > version for their shared objects, while experimental libraries
> > use the 0.MAJORMINOR convention for their versioning.
> > Experimental library versioning is managed globally. Changes in this
> > patch implement the necessary steps to enable that.
>
> The next patch just removes the config entry CONFIG_RTE_MAJOR_ABI
> while this patch entirely removes its usage.
> I squashed patch 2 in patch 1 and added its commitlog here.
>
> >
> > [1] https://doc.dpdk.org/guides/contributing/abi_policy.html
> >
> > Signed-off-by: Marcin Baran <marcinx.ba...@intel.com>
> > Signed-off-by: Pawel Modrak <pawelx.mod...@intel.com>
> > Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com>
> > Acked-by: Bruce Richardson <bruce.richard...@intel.com>
>
> [snip]
>
> > diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
> > index 4df8849a08..3b318a5306 100644
> > --- a/mk/rte.lib.mk
> > +++ b/mk/rte.lib.mk
> > @@ -11,20 +11,16 @@ EXTLIB_BUILD ?= n
> >  # VPATH contains at least SRCDIR
> >  VPATH += $(SRCDIR)
> >
> > -ifneq ($(CONFIG_RTE_MAJOR_ABI),)
> > -ifneq ($(LIBABIVER),)
> > -LIBABIVER := $(CONFIG_RTE_MAJOR_ABI)
> > -endif
> > +ifneq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),)
> > +LIBABIVER := $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
> > +else
> > +# EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI
> > +LIBABIVER := 0.$(shell cat $(RTE_SRCDIR)/ABI_VERSION | td -d '.')
>
> s/td/tr/
>
> Will fix while applying.

On this part again, for ethtool example library, this triggers a
warning since ABI_VERSION does not exist in this example source
directory.

diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk
index 94a80e024..655a1b143 100644
--- a/mk/rte.lib.mk
+++ b/mk/rte.lib.mk
@@ -13,7 +13,7 @@ VPATH += $(SRCDIR)

 ifneq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),)
 LIBABIVER := $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
-else
+else ifeq ($(LIBABIVER),)
 # EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI
 LIBABIVER := 0.$(shell cat $(RTE_SRCDIR)/ABI_VERSION | tr -d '.')
 endif

In the patch removing LIBABIVER, I let examples/ethtool/lib/Makefile untouched.
With this, an external library manages its ABI version.


-- 
David Marchand

Reply via email to