* [dpdk-dev] ABI version of experimental libraries @ 2020-02-17 23:15 Thomas Monjalon 2020-02-17 23:44 ` [dpdk-dev] [PATCH] build: fix soname for " Thomas Monjalon 2020-02-18 9:42 ` [dpdk-dev] ABI version of " Bruce Richardson 0 siblings, 2 replies; 20+ messages in thread From: Thomas Monjalon @ 2020-02-17 23:15 UTC (permalink / raw) To: ray.kinsella, nhorman Cc: bruce.richardson, bluca, david.marchand, ktraynor, dev Hi, I would like to remind everybody our mistake when defining ABI versions. It has been "fixed" in this commit: http://git.dpdk.org/dpdk/commit/?id=f26c2b39 Please let's think about the consequence for the experimental libraries. In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are increasing, that's fine. When we'll switch to the new major ABI and use a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with soname 0.21 Numbers are dropping. In short, for experimental libs, ABI 20.1 > ABI 21.0 Are we OK with this or do we prefer reverting to normal numbering for experimental libraries in DPDK 20.02? ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-dev] [PATCH] build: fix soname for experimental libraries 2020-02-17 23:15 [dpdk-dev] ABI version of experimental libraries Thomas Monjalon @ 2020-02-17 23:44 ` Thomas Monjalon 2020-02-18 9:40 ` Bruce Richardson 2020-02-18 9:42 ` [dpdk-dev] ABI version of " Bruce Richardson 1 sibling, 1 reply; 20+ messages in thread From: Thomas Monjalon @ 2020-02-17 23:44 UTC (permalink / raw) To: dev Cc: ray.kinsella, nhorman, bluca, david.marchand, ktraynor, Bruce Richardson Because of an original mistake in ABI numbering, and a temporary workaround for ABI 20, for experimental libs, numbering would lead to consider ABI 20.1 > ABI 21.0 Before this patch: DPDK 19.11: ABI version 0.200 and soname 0.20 DPDK 20.02: ABI version 0.2001 and soname 0.201 Numbers are increasing, that's fine. For the next major ABI, back to normal numbering: DPDK 20.11: ABI version 0.210 and soname 0.21 Numbers are decreasing! After this patch: DPDK 19.11: ABI version 0.200 and soname 0.20 DPDK 20.02: ABI version 0.201 and soname 0.20 DPDK 20.11: ABI version 0.210 and soname 0.21 Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- config/meson.build | 8 ++++---- mk/rte.lib.mk | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/meson.build b/config/meson.build index 6c46767e3e..e7cd74e2c2 100644 --- a/config/meson.build +++ b/config/meson.build @@ -27,12 +27,12 @@ abi_version = run_command(find_program('cat', 'more'), # and the filename suffix as 0.majorminor versions, # e.g. v20.1 => librte_stable.so.20.1, librte_experimental.so.0.201 # sonames => librte_stable.so.20, librte_experimental.so.0.20 -# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.2001 -# sonames => librte_stable.so.20.0, librte_experimental.so.0.200 +# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.201 +# sonames => librte_stable.so.20.0, librte_experimental.so.0.20 abi_va = abi_version.split('.') stable_so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] -experimental_abi_version = '0.' + ''.join(abi_va) -experimental_so_version = '0.' + ''.join(stable_so_version.split('.')) +experimental_abi_version = '0.' + ''.join([abi_va[0], abi_va[2]]) +experimental_so_version = '0.' + ''.join([abi_va[0]]) # extract all version information into the build configuration dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int()) diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index b1a8372cc2..8730c084ce 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -15,8 +15,8 @@ LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION) SOVER := $(basename $(LIBABIVER)) ifeq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),) # EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI -LIBABIVER := 0.$(shell echo $(LIBABIVER) | tr -d '.') -SOVER := 0.$(shell echo $(SOVER) | tr -d '.') +LIBABIVER := 0.$(shell echo $(LIBABIVER) | cut -d '.' -f1,3 | tr -d '.') +SOVER := 0.$(shell echo $(SOVER) | cut -d '.' -f1) endif ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) -- 2.25.0 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix soname for experimental libraries 2020-02-17 23:44 ` [dpdk-dev] [PATCH] build: fix soname for " Thomas Monjalon @ 2020-02-18 9:40 ` Bruce Richardson 2020-02-18 9:47 ` Thomas Monjalon 0 siblings, 1 reply; 20+ messages in thread From: Bruce Richardson @ 2020-02-18 9:40 UTC (permalink / raw) To: Thomas Monjalon Cc: dev, ray.kinsella, nhorman, bluca, david.marchand, ktraynor On Tue, Feb 18, 2020 at 12:44:02AM +0100, Thomas Monjalon wrote: > Because of an original mistake in ABI numbering, > and a temporary workaround for ABI 20, > for experimental libs, numbering would lead to consider > ABI 20.1 > ABI 21.0 > > Before this patch: > > DPDK 19.11: ABI version 0.200 and soname 0.20 > DPDK 20.02: ABI version 0.2001 and soname 0.201 > Numbers are increasing, that's fine. > For the next major ABI, back to normal numbering: > DPDK 20.11: ABI version 0.210 and soname 0.21 > Numbers are decreasing! > > After this patch: > > DPDK 19.11: ABI version 0.200 and soname 0.20 > DPDK 20.02: ABI version 0.201 and soname 0.20 > DPDK 20.11: ABI version 0.210 and soname 0.21 > > Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > --- > config/meson.build | 8 ++++---- > mk/rte.lib.mk | 4 ++-- > 2 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/config/meson.build b/config/meson.build > index 6c46767e3e..e7cd74e2c2 100644 > --- a/config/meson.build > +++ b/config/meson.build > @@ -27,12 +27,12 @@ abi_version = run_command(find_program('cat', 'more'), > # and the filename suffix as 0.majorminor versions, > # e.g. v20.1 => librte_stable.so.20.1, librte_experimental.so.0.201 > # sonames => librte_stable.so.20, librte_experimental.so.0.20 > -# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.2001 > -# sonames => librte_stable.so.20.0, librte_experimental.so.0.200 > +# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.201 > +# sonames => librte_stable.so.20.0, librte_experimental.so.0.20 > abi_va = abi_version.split('.') > stable_so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] > -experimental_abi_version = '0.' + ''.join(abi_va) > -experimental_so_version = '0.' + ''.join(stable_so_version.split('.')) > +experimental_abi_version = '0.' + ''.join([abi_va[0], abi_va[2]]) > +experimental_so_version = '0.' + ''.join([abi_va[0]]) > My concern about this is that it will break, or rather need to be changed again for the 20.11 release. While I see the numbering as not-ideal in terms of version numbers, the existing scheme was originally designed to work with either 3-digit or 2-digit version numbers. /Bruce ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix soname for experimental libraries 2020-02-18 9:40 ` Bruce Richardson @ 2020-02-18 9:47 ` Thomas Monjalon 0 siblings, 0 replies; 20+ messages in thread From: Thomas Monjalon @ 2020-02-18 9:47 UTC (permalink / raw) To: Bruce Richardson Cc: dev, ray.kinsella, nhorman, bluca, david.marchand, ktraynor 18/02/2020 10:40, Bruce Richardson: > On Tue, Feb 18, 2020 at 12:44:02AM +0100, Thomas Monjalon wrote: > > Because of an original mistake in ABI numbering, > > and a temporary workaround for ABI 20, > > for experimental libs, numbering would lead to consider > > ABI 20.1 > ABI 21.0 > > > > Before this patch: > > > > DPDK 19.11: ABI version 0.200 and soname 0.20 > > DPDK 20.02: ABI version 0.2001 and soname 0.201 > > Numbers are increasing, that's fine. > > For the next major ABI, back to normal numbering: > > DPDK 20.11: ABI version 0.210 and soname 0.21 > > Numbers are decreasing! > > > > After this patch: > > > > DPDK 19.11: ABI version 0.200 and soname 0.20 > > DPDK 20.02: ABI version 0.201 and soname 0.20 > > DPDK 20.11: ABI version 0.210 and soname 0.21 > > > > Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") > > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net> > > --- > > config/meson.build | 8 ++++---- > > mk/rte.lib.mk | 4 ++-- > > 2 files changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/config/meson.build b/config/meson.build > > index 6c46767e3e..e7cd74e2c2 100644 > > --- a/config/meson.build > > +++ b/config/meson.build > > @@ -27,12 +27,12 @@ abi_version = run_command(find_program('cat', 'more'), > > # and the filename suffix as 0.majorminor versions, > > # e.g. v20.1 => librte_stable.so.20.1, librte_experimental.so.0.201 > > # sonames => librte_stable.so.20, librte_experimental.so.0.20 > > -# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.2001 > > -# sonames => librte_stable.so.20.0, librte_experimental.so.0.200 > > +# e.g. v20.0.1 => librte_stable.so.20.0.1, librte_experimental.so.0.201 > > +# sonames => librte_stable.so.20.0, librte_experimental.so.0.20 > > abi_va = abi_version.split('.') > > stable_so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] > > -experimental_abi_version = '0.' + ''.join(abi_va) > > -experimental_so_version = '0.' + ''.join(stable_so_version.split('.')) > > +experimental_abi_version = '0.' + ''.join([abi_va[0], abi_va[2]]) > > +experimental_so_version = '0.' + ''.join([abi_va[0]]) > > > > My concern about this is that it will break, or rather need to be changed > again for the 20.11 release. While I see the numbering as not-ideal in > terms of version numbers, the existing scheme was originally designed to > work with either 3-digit or 2-digit version numbers. It could be improved to work with 2-digit too. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-17 23:15 [dpdk-dev] ABI version of experimental libraries Thomas Monjalon 2020-02-17 23:44 ` [dpdk-dev] [PATCH] build: fix soname for " Thomas Monjalon @ 2020-02-18 9:42 ` Bruce Richardson 2020-02-18 9:50 ` Thomas Monjalon 1 sibling, 1 reply; 20+ messages in thread From: Bruce Richardson @ 2020-02-18 9:42 UTC (permalink / raw) To: Thomas Monjalon Cc: ray.kinsella, nhorman, bluca, david.marchand, ktraynor, dev On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > Hi, > > I would like to remind everybody our mistake when defining ABI versions. > It has been "fixed" in this commit: > http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > > Please let's think about the consequence for the experimental libraries. > > In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK > 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > increasing, that's fine. When we'll switch to the new major ABI and use > a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with > soname 0.21 Numbers are dropping. > > In short, for experimental libs, ABI 20.1 > ABI 21.0 > > Are we OK with this or do we prefer reverting to normal numbering for > experimental libraries in DPDK 20.02? > Personally, I would not be too concerned about the verions of experimental libs, so long as they don't conflict across versions and have some similarity to the major ABI version for the release. /Bruce ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-18 9:42 ` [dpdk-dev] ABI version of " Bruce Richardson @ 2020-02-18 9:50 ` Thomas Monjalon 2020-02-18 10:36 ` Kinsella, Ray 2020-02-19 11:43 ` [dpdk-dev] ABI version of experimental libraries Neil Horman 0 siblings, 2 replies; 20+ messages in thread From: Thomas Monjalon @ 2020-02-18 9:50 UTC (permalink / raw) To: Bruce Richardson Cc: ray.kinsella, nhorman, bluca, david.marchand, ktraynor, dev 18/02/2020 10:42, Bruce Richardson: > On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > > Hi, > > > > I would like to remind everybody our mistake when defining ABI versions. > > It has been "fixed" in this commit: > > http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > > > > Please let's think about the consequence for the experimental libraries. > > > > In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK > > 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > > increasing, that's fine. When we'll switch to the new major ABI and use > > a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with > > soname 0.21 Numbers are dropping. > > > > In short, for experimental libs, ABI 20.1 > ABI 21.0 > > > > Are we OK with this or do we prefer reverting to normal numbering for > > experimental libraries in DPDK 20.02? > > > Personally, I would not be too concerned about the verions of experimental > libs, so long as they don't conflict across versions and have some > similarity to the major ABI version for the release. You think sorting of the version numbers is not important? If we don't care comparing experimental version numbers, then OK, let's drop this patch. But please we need a small vote. Note: there would be no problem if we did not vote for having a special numbering for pure experimental libraries (I am still against). ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-18 9:50 ` Thomas Monjalon @ 2020-02-18 10:36 ` Kinsella, Ray 2020-02-20 19:50 ` Ferruh Yigit 2020-02-19 11:43 ` [dpdk-dev] ABI version of experimental libraries Neil Horman 1 sibling, 1 reply; 20+ messages in thread From: Kinsella, Ray @ 2020-02-18 10:36 UTC (permalink / raw) To: Thomas Monjalon, Richardson, Bruce Cc: nhorman, bluca, david.marchand, ktraynor, dev > -----Original Message----- > From: Thomas Monjalon <thomas@monjalon.net> > Sent: Tuesday 18 February 2020 09:50 > To: Richardson, Bruce <bruce.richardson@intel.com> > Cc: Kinsella, Ray <ray.kinsella@intel.com>; nhorman@tuxdriver.com; > bluca@debian.org; david.marchand@redhat.com; ktraynor@redhat.com; > dev@dpdk.org > Subject: Re: ABI version of experimental libraries > > 18/02/2020 10:42, Bruce Richardson: > > On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > > > Hi, > > > > > > I would like to remind everybody our mistake when defining ABI > versions. > > > It has been "fixed" in this commit: > > > http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > > > > > > Please let's think about the consequence for the experimental > libraries. > > > > > > In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In > DPDK > > > 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > > > increasing, that's fine. When we'll switch to the new major ABI > and > > > use a normal numbering: In DPDK 20.11, we will use the ABI version > > > 0.210 with soname 0.21 Numbers are dropping. > > > > > > In short, for experimental libs, ABI 20.1 > ABI 21.0 > > > > > > Are we OK with this or do we prefer reverting to normal numbering > > > for experimental libraries in DPDK 20.02? > > > > > Personally, I would not be too concerned about the verions of > > experimental libs, so long as they don't conflict across versions and > > have some similarity to the major ABI version for the release. > > You think sorting of the version numbers is not important? > If we don't care comparing experimental version numbers, then OK, let's > drop this patch. But please we need a small vote. > > Note: there would be no problem if we did not vote for having a special > numbering for pure experimental libraries (I am still against). > So while experimental library version numbers are not "important". I do agree with Thomas they should be sane, increase and should have a consistent format. Should we always pad them to 4 places? i.e. DPDK 19.11 ... 0.20 (needs to remain 0.20). DPDK 20.02 ... 0.2001 DPDK 20.11 ... 0.2100 DPDK 21.02 ... 0.2101 Make sense? Ray K ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-18 10:36 ` Kinsella, Ray @ 2020-02-20 19:50 ` Ferruh Yigit 2020-02-20 19:54 ` [dpdk-dev] [PATCH] build: fix experimental library versioning Ferruh Yigit 0 siblings, 1 reply; 20+ messages in thread From: Ferruh Yigit @ 2020-02-20 19:50 UTC (permalink / raw) To: Kinsella, Ray, Thomas Monjalon, Richardson, Bruce Cc: nhorman, bluca, david.marchand, ktraynor, dev On 2/18/2020 10:36 AM, Kinsella, Ray wrote: > > >> -----Original Message----- >> From: Thomas Monjalon <thomas@monjalon.net> >> Sent: Tuesday 18 February 2020 09:50 >> To: Richardson, Bruce <bruce.richardson@intel.com> >> Cc: Kinsella, Ray <ray.kinsella@intel.com>; nhorman@tuxdriver.com; >> bluca@debian.org; david.marchand@redhat.com; ktraynor@redhat.com; >> dev@dpdk.org >> Subject: Re: ABI version of experimental libraries >> >> 18/02/2020 10:42, Bruce Richardson: >>> On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: >>>> Hi, >>>> >>>> I would like to remind everybody our mistake when defining ABI >> versions. >>>> It has been "fixed" in this commit: >>>> http://git.dpdk.org/dpdk/commit/?id=f26c2b39 >>>> >>>> Please let's think about the consequence for the experimental >> libraries. >>>> >>>> In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In >> DPDK >>>> 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are >>>> increasing, that's fine. When we'll switch to the new major ABI >> and >>>> use a normal numbering: In DPDK 20.11, we will use the ABI version >>>> 0.210 with soname 0.21 Numbers are dropping. >>>> >>>> In short, for experimental libs, ABI 20.1 > ABI 21.0 >>>> >>>> Are we OK with this or do we prefer reverting to normal numbering >>>> for experimental libraries in DPDK 20.02? >>>> >>> Personally, I would not be too concerned about the verions of >>> experimental libs, so long as they don't conflict across versions and >>> have some similarity to the major ABI version for the release. >> >> You think sorting of the version numbers is not important? >> If we don't care comparing experimental version numbers, then OK, let's >> drop this patch. But please we need a small vote. >> >> Note: there would be no problem if we did not vote for having a special >> numbering for pure experimental libraries (I am still against). >> > > So while experimental library version numbers are not "important". > I do agree with Thomas they should be sane, increase and should have a consistent format. > > Should we always pad them to 4 places? > i.e. > > DPDK 19.11 ... 0.20 (needs to remain 0.20). > DPDK 20.02 ... 0.2001 > DPDK 20.11 ... 0.2100 > DPDK 21.02 ... 0.2101 > > Make sense? > What about following: DPDK version ABI version soname library name ------------ ----------- ------ ------------ DPDK 19.11 20.0 .so.0.200 .so.0.200 DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 DPDK 20.11 21.0 .so.0.210 .so.0.210 DPDK 21.02 21.1 .so.0.211 .so.0.211 This let us turn back to sane versions when soname fixed in 20.11. Also I think for experimental libraries soname should NOT be same in minor versions, otherwise it can create false impression that it is ABI compatible between two minor versions. I will reply the patch to this email. ^ permalink raw reply [flat|nested] 20+ messages in thread
* [dpdk-dev] [PATCH] build: fix experimental library versioning 2020-02-20 19:50 ` Ferruh Yigit @ 2020-02-20 19:54 ` Ferruh Yigit 2020-02-20 22:14 ` Luca Boccassi ` (3 more replies) 0 siblings, 4 replies; 20+ messages in thread From: Ferruh Yigit @ 2020-02-20 19:54 UTC (permalink / raw) To: Thomas Monjalon, Neil Horman, Bruce Richardson Cc: dev, Ferruh Yigit, ray.kinsella, bluca, david.marchand, ktraynor The problem occurred when workaround that makes soname two digits applied. With this change for the ABI version "20.0.1" the experimental library version become ".so.2001". After workaround removed in ABI version 21.0, the experimental library version will become ".so.210". "2001" is bigger value than "201" although it is a previous version of the library version, this can break the version comparisons. To fix this, introducing a temporary sub level versioning for the experimental libraries, so that minor version comparison will continue to work. After change experimental libraries will follow below versioning: DPDK version ABI version soname library name ------------ ----------- ------ ------------ DPDK 19.11 20.0 .so.0.200 .so.0.200 DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 DPDK 20.11 21.0 .so.0.210 .so.0.210 DPDK 21.02 21.1 .so.0.211 .so.0.211 Note: After workaround removed in DPDK 20.11 and soname switch back to single digit this patch won't work and needs to be updated. Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> --- Cc: Thomas Monjalon <thomas@monjalon.net> Cc: ray.kinsella@intel.com Cc: nhorman@tuxdriver.com Cc: bruce.richardson@intel.com Cc: bluca@debian.org Cc: david.marchand@redhat.com Cc: ktraynor@redhat.com --- config/meson.build | 4 ++-- mk/rte.lib.mk | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/config/meson.build b/config/meson.build index 6c46767e3..d3d2370ce 100644 --- a/config/meson.build +++ b/config/meson.build @@ -31,8 +31,8 @@ abi_version = run_command(find_program('cat', 'more'), # sonames => librte_stable.so.20.0, librte_experimental.so.0.200 abi_va = abi_version.split('.') stable_so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] -experimental_abi_version = '0.' + ''.join(abi_va) -experimental_so_version = '0.' + ''.join(stable_so_version.split('.')) +experimental_abi_version = '0.' + abi_va[0] + abi_va[1] + '.' + abi_va[2] +experimental_so_version = experimental_abi_version # extract all version information into the build configuration dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int()) diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk index b1a8372cc..682b590db 100644 --- a/mk/rte.lib.mk +++ b/mk/rte.lib.mk @@ -15,8 +15,8 @@ LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION) SOVER := $(basename $(LIBABIVER)) ifeq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),) # EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI -LIBABIVER := 0.$(shell echo $(LIBABIVER) | tr -d '.') -SOVER := 0.$(shell echo $(SOVER) | tr -d '.') +LIBABIVER := 0.$(shell echo $(LIBABIVER) | awk 'BEGIN { FS="." }; { print $$1$$2"."$$3 }') +SOVER := $(LIBABIVER) endif ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) @@ -135,7 +135,9 @@ $(RTE_OUTPUT)/lib/$(LIB): $(LIB) $(Q)cp -f $(LIB) $(RTE_OUTPUT)/lib ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so/') - $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') + $(Q)if [ $(SOVER) != $(LIBABIVER) ]; then \ + ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') ; \ + fi endif # -- 2.24.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix experimental library versioning 2020-02-20 19:54 ` [dpdk-dev] [PATCH] build: fix experimental library versioning Ferruh Yigit @ 2020-02-20 22:14 ` Luca Boccassi 2020-02-21 12:36 ` Ray Kinsella ` (2 subsequent siblings) 3 siblings, 0 replies; 20+ messages in thread From: Luca Boccassi @ 2020-02-20 22:14 UTC (permalink / raw) To: Ferruh Yigit, Thomas Monjalon, Neil Horman, Bruce Richardson Cc: dev, ray.kinsella, david.marchand, ktraynor On Thu, 2020-02-20 at 19:54 +0000, Ferruh Yigit wrote: > The problem occurred when workaround that makes soname two digits > applied. With this change for the ABI version "20.0.1" the > experimental > library version become ".so.2001". > After workaround removed in ABI version 21.0, the experimental > library > version will become ".so.210". > "2001" is bigger value than "201" although it is a previous version > of > the library version, this can break the version comparisons. > > To fix this, introducing a temporary sub level versioning for the > experimental libraries, so that minor version comparison will > continue > to work. > > After change experimental libraries will follow below versioning: > > DPDK version ABI version soname library name > ------------ ----------- ------ ------------ > DPDK 19.11 20.0 .so.0.200 .so.0.200 > DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 > DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 > DPDK 20.11 21.0 .so.0.210 .so.0.210 > DPDK 21.02 21.1 .so.0.211 .so.0.211 > > Note: After workaround removed in DPDK 20.11 and soname switch back > to > single digit this patch won't work and needs to be updated. > > Fixes: f26c2b39b271 ("build: fix soname info for 19.11 > compatibility") > > Signed-off-by: Ferruh Yigit < > ferruh.yigit@intel.com Acked-by: Luca Boccassi <bluca@debian.org> This solution looks like a good compromise to me. Thanks Ferruh. -- Kind regards, Luca Boccassi ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix experimental library versioning 2020-02-20 19:54 ` [dpdk-dev] [PATCH] build: fix experimental library versioning Ferruh Yigit 2020-02-20 22:14 ` Luca Boccassi @ 2020-02-21 12:36 ` Ray Kinsella 2020-02-21 15:24 ` David Marchand 2020-02-21 16:41 ` David Marchand 3 siblings, 0 replies; 20+ messages in thread From: Ray Kinsella @ 2020-02-21 12:36 UTC (permalink / raw) To: Ferruh Yigit, Thomas Monjalon, Neil Horman, Bruce Richardson Cc: dev, ray.kinsella, bluca, david.marchand, ktraynor On 20/02/2020 19:54, Ferruh Yigit wrote: > The problem occurred when workaround that makes soname two digits > applied. With this change for the ABI version "20.0.1" the experimental > library version become ".so.2001". > After workaround removed in ABI version 21.0, the experimental library > version will become ".so.210". > "2001" is bigger value than "201" although it is a previous version of > the library version, this can break the version comparisons. > > To fix this, introducing a temporary sub level versioning for the > experimental libraries, so that minor version comparison will continue > to work. > > After change experimental libraries will follow below versioning: > > DPDK version ABI version soname library name > ------------ ----------- ------ ------------ > DPDK 19.11 20.0 .so.0.200 .so.0.200 > DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 > DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 > DPDK 20.11 21.0 .so.0.210 .so.0.210 > DPDK 21.02 21.1 .so.0.211 .so.0.211 > > Note: After workaround removed in DPDK 20.11 and soname switch back to > single digit this patch won't work and needs to be updated. > > Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") > Acked-by: Ray Kinsella <mdr@ashroe.eu> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> > --- > Cc: Thomas Monjalon <thomas@monjalon.net> > Cc: ray.kinsella@intel.com > Cc: nhorman@tuxdriver.com > Cc: bruce.richardson@intel.com > Cc: bluca@debian.org > Cc: david.marchand@redhat.com > Cc: ktraynor@redhat.com > --- > config/meson.build | 4 ++-- > mk/rte.lib.mk | 8 +++++--- > 2 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/config/meson.build b/config/meson.build > index 6c46767e3..d3d2370ce 100644 > --- a/config/meson.build > +++ b/config/meson.build > @@ -31,8 +31,8 @@ abi_version = run_command(find_program('cat', 'more'), > # sonames => librte_stable.so.20.0, librte_experimental.so.0.200 > abi_va = abi_version.split('.') > stable_so_version = abi_va.length() == 2 ? abi_va[0] : abi_va[0] + '.' + abi_va[1] > -experimental_abi_version = '0.' + ''.join(abi_va) > -experimental_so_version = '0.' + ''.join(stable_so_version.split('.')) > +experimental_abi_version = '0.' + abi_va[0] + abi_va[1] + '.' + abi_va[2] > +experimental_so_version = experimental_abi_version > > # extract all version information into the build configuration > dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int()) > diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk > index b1a8372cc..682b590db 100644 > --- a/mk/rte.lib.mk > +++ b/mk/rte.lib.mk > @@ -15,8 +15,8 @@ LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION) > SOVER := $(basename $(LIBABIVER)) > ifeq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),) > # EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI > -LIBABIVER := 0.$(shell echo $(LIBABIVER) | tr -d '.') > -SOVER := 0.$(shell echo $(SOVER) | tr -d '.') > +LIBABIVER := 0.$(shell echo $(LIBABIVER) | awk 'BEGIN { FS="." }; { print $$1$$2"."$$3 }') > +SOVER := $(LIBABIVER) > endif > > ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > @@ -135,7 +135,9 @@ $(RTE_OUTPUT)/lib/$(LIB): $(LIB) > $(Q)cp -f $(LIB) $(RTE_OUTPUT)/lib > ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) > $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so/') > - $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') > + $(Q)if [ $(SOVER) != $(LIBABIVER) ]; then \ > + ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') ; \ > + fi > endif > > # > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix experimental library versioning 2020-02-20 19:54 ` [dpdk-dev] [PATCH] build: fix experimental library versioning Ferruh Yigit 2020-02-20 22:14 ` Luca Boccassi 2020-02-21 12:36 ` Ray Kinsella @ 2020-02-21 15:24 ` David Marchand 2020-02-21 15:34 ` Ferruh Yigit 2020-02-21 16:41 ` David Marchand 3 siblings, 1 reply; 20+ messages in thread From: David Marchand @ 2020-02-21 15:24 UTC (permalink / raw) To: Ferruh Yigit Cc: Thomas Monjalon, Neil Horman, Bruce Richardson, dev, Kinsella, Ray, Luca Boccassi, Kevin Traynor On Thu, Feb 20, 2020 at 8:55 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote: > > The problem occurred when workaround that makes soname two digits > applied. With this change for the ABI version "20.0.1" the experimental > library version become ".so.2001". > After workaround removed in ABI version 21.0, the experimental library > version will become ".so.210". > "2001" is bigger value than "201" although it is a previous version of > the library version, this can break the version comparisons. > > To fix this, introducing a temporary sub level versioning for the > experimental libraries, so that minor version comparison will continue > to work. > > After change experimental libraries will follow below versioning: > > DPDK version ABI version soname library name > ------------ ----------- ------ ------------ > DPDK 19.11 20.0 .so.0.200 .so.0.200 > DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 > DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 > DPDK 20.11 21.0 .so.0.210 .so.0.210 > DPDK 21.02 21.1 .so.0.211 .so.0.211 > > Note: After workaround removed in DPDK 20.11 and soname switch back to > single digit this patch won't work and needs to be updated. > > Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> The soname change breaks existing applications like testpmd (linked to various experimental libraries). I have the full details if needed in a pastebin (v19.11, master, patch_applied). $ LD_LIBRARY_PATH=$HOME/builds/x86_64-native-linux-gcc+shared+kmods/install/lib $HOME/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/bin/testpmd /home/dmarchan/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/bin/testpmd: error while loading shared libraries: librte_flow_classify.so.0.200: cannot open shared object file: No such file or directory libabigail reports this change as an error, so if it is intended, we need to bypass the check for those libraries. Functions changes summary: 0 Removed, 0 Changed (2 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable ELF SONAME changed Functions changes summary: 0 Removed, 0 Changed (7 filtered out), 0 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable SONAME changed from 'librte_flow_classify.so.0.200' to 'librte_flow_classify.so.0.200.1' Error: ABI issue reported for 'abidiff --suppr /home/dmarchan/dpdk/devtools/libabigail.abignore --no-added-syms --headers-dir1 /home/dmarchan/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/include --headers-dir2 /home/dmarchan/builds/x86_64-native-linux-gcc+shared+kmods/install/include /home/dmarchan/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/dump/librte_flow_classify.dump /home/dmarchan/builds/x86_64-native-linux-gcc+shared+kmods/install/dump/librte_flow_classify.dump' -- David Marchand ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix experimental library versioning 2020-02-21 15:24 ` David Marchand @ 2020-02-21 15:34 ` Ferruh Yigit 0 siblings, 0 replies; 20+ messages in thread From: Ferruh Yigit @ 2020-02-21 15:34 UTC (permalink / raw) To: David Marchand Cc: Thomas Monjalon, Neil Horman, Bruce Richardson, dev, Kinsella, Ray, Luca Boccassi, Kevin Traynor On 2/21/2020 3:24 PM, David Marchand wrote: > On Thu, Feb 20, 2020 at 8:55 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote: >> >> The problem occurred when workaround that makes soname two digits >> applied. With this change for the ABI version "20.0.1" the experimental >> library version become ".so.2001". >> After workaround removed in ABI version 21.0, the experimental library >> version will become ".so.210". >> "2001" is bigger value than "201" although it is a previous version of >> the library version, this can break the version comparisons. >> >> To fix this, introducing a temporary sub level versioning for the >> experimental libraries, so that minor version comparison will continue >> to work. >> >> After change experimental libraries will follow below versioning: >> >> DPDK version ABI version soname library name >> ------------ ----------- ------ ------------ >> DPDK 19.11 20.0 .so.0.200 .so.0.200 >> DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 >> DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 >> DPDK 20.11 21.0 .so.0.210 .so.0.210 >> DPDK 21.02 21.1 .so.0.211 .so.0.211 >> >> Note: After workaround removed in DPDK 20.11 and soname switch back to >> single digit this patch won't work and needs to be updated. >> >> Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") >> >> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> > > The soname change breaks existing applications like testpmd (linked to > various experimental libraries). > I have the full details if needed in a pastebin (v19.11, master, patch_applied). > > $ LD_LIBRARY_PATH=$HOME/builds/x86_64-native-linux-gcc+shared+kmods/install/lib > $HOME/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/bin/testpmd > /home/dmarchan/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/bin/testpmd: > error while loading shared libraries: librte_flow_classify.so.0.200: > cannot open shared object file: No such file or directory > > > libabigail reports this change as an error, so if it is intended, we > need to bypass the check for those libraries. soname change was intended, we don't provide any ABI compatibility in the experimental libraries, keeping same soname may mislead as if we do. The impact of it is, any application linked against experimental library will need to recompile in new release. Can we add exception to the the libabigail for experimental libraries? > > Functions changes summary: 0 Removed, 0 Changed (2 filtered out), 0 > Added functions > Variables changes summary: 0 Removed, 0 Changed, 0 Added variable > ELF SONAME changed > Functions changes summary: 0 Removed, 0 Changed (7 filtered out), 0 > Added functions > Variables changes summary: 0 Removed, 0 Changed, 0 Added variable > SONAME changed from 'librte_flow_classify.so.0.200' to > 'librte_flow_classify.so.0.200.1' > Error: ABI issue reported for 'abidiff --suppr > /home/dmarchan/dpdk/devtools/libabigail.abignore --no-added-syms > --headers-dir1 /home/dmarchan/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/include > --headers-dir2 /home/dmarchan/builds/x86_64-native-linux-gcc+shared+kmods/install/include > /home/dmarchan/abi/v19.11/x86_64-native-linux-gcc+shared+kmods/dump/librte_flow_classify.dump > /home/dmarchan/builds/x86_64-native-linux-gcc+shared+kmods/install/dump/librte_flow_classify.dump' > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] [PATCH] build: fix experimental library versioning 2020-02-20 19:54 ` [dpdk-dev] [PATCH] build: fix experimental library versioning Ferruh Yigit ` (2 preceding siblings ...) 2020-02-21 15:24 ` David Marchand @ 2020-02-21 16:41 ` David Marchand 3 siblings, 0 replies; 20+ messages in thread From: David Marchand @ 2020-02-21 16:41 UTC (permalink / raw) To: Ferruh Yigit Cc: Thomas Monjalon, Neil Horman, Bruce Richardson, dev, Kinsella, Ray, Luca Boccassi, Kevin Traynor On Thu, Feb 20, 2020 at 8:55 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote: > > The problem occurred when workaround that makes soname two digits > applied. With this change for the ABI version "20.0.1" the experimental > library version become ".so.2001". > After workaround removed in ABI version 21.0, the experimental library > version will become ".so.210". > "2001" is bigger value than "201" although it is a previous version of > the library version, this can break the version comparisons. > > To fix this, introducing a temporary sub level versioning for the > experimental libraries, so that minor version comparison will continue > to work. > > After change experimental libraries will follow below versioning: > > DPDK version ABI version soname library name > ------------ ----------- ------ ------------ > DPDK 19.11 20.0 .so.0.200 .so.0.200 > DPDK 20.02 20.0.1 .so.0.200.1 .so.0.200.1 > DPDK 20.05 20.0.2 .so.0.200.2 .so.0.200.2 > DPDK 20.11 21.0 .so.0.210 .so.0.210 > DPDK 21.02 21.1 .so.0.211 .so.0.211 > > Note: After workaround removed in DPDK 20.11 and soname switch back to > single digit this patch won't work and needs to be updated. > > Fixes: f26c2b39b271 ("build: fix soname info for 19.11 compatibility") > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Luca Boccassi <bluca@debian.org> Acked-by: Ray Kinsella <mdr@ashroe.eu> Applied. -- David Marchand ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-18 9:50 ` Thomas Monjalon 2020-02-18 10:36 ` Kinsella, Ray @ 2020-02-19 11:43 ` Neil Horman 2020-02-19 12:43 ` Thomas Monjalon 1 sibling, 1 reply; 20+ messages in thread From: Neil Horman @ 2020-02-19 11:43 UTC (permalink / raw) To: Thomas Monjalon Cc: Bruce Richardson, ray.kinsella, bluca, david.marchand, ktraynor, dev On Tue, Feb 18, 2020 at 10:50:09AM +0100, Thomas Monjalon wrote: > 18/02/2020 10:42, Bruce Richardson: > > On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > > > Hi, > > > > > > I would like to remind everybody our mistake when defining ABI versions. > > > It has been "fixed" in this commit: > > > http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > > > > > > Please let's think about the consequence for the experimental libraries. > > > > > > In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK > > > 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > > > increasing, that's fine. When we'll switch to the new major ABI and use > > > a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with > > > soname 0.21 Numbers are dropping. > > > > > > In short, for experimental libs, ABI 20.1 > ABI 21.0 > > > > > > Are we OK with this or do we prefer reverting to normal numbering for > > > experimental libraries in DPDK 20.02? > > > > > Personally, I would not be too concerned about the verions of experimental > > libs, so long as they don't conflict across versions and have some > > similarity to the major ABI version for the release. > > You think sorting of the version numbers is not important? > If we don't care comparing experimental version numbers, > then OK, let's drop this patch. But please we need a small vote. > > Note: there would be no problem if we did not vote for having > a special numbering for pure experimental libraries (I am still against). > I don't understand. Why would we change the ABI_VERSION at all in an LTS release at all? This operation is meant to take an an experimental API and mark it as stable by promoting its version number to the next major releases number. As such, in the LTS release, we should keep the soname the same, as there should be no other ABI changes in the promoted API. Neil > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-19 11:43 ` [dpdk-dev] ABI version of experimental libraries Neil Horman @ 2020-02-19 12:43 ` Thomas Monjalon 2020-02-19 13:50 ` Ray Kinsella 2020-02-19 21:17 ` Neil Horman 0 siblings, 2 replies; 20+ messages in thread From: Thomas Monjalon @ 2020-02-19 12:43 UTC (permalink / raw) To: Neil Horman Cc: Bruce Richardson, ray.kinsella, bluca, david.marchand, ktraynor, dev 19/02/2020 12:43, Neil Horman: > On Tue, Feb 18, 2020 at 10:50:09AM +0100, Thomas Monjalon wrote: > > 18/02/2020 10:42, Bruce Richardson: > > > On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > > > > Hi, > > > > > > > > I would like to remind everybody our mistake when defining ABI versions. > > > > It has been "fixed" in this commit: > > > > http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > > > > > > > > Please let's think about the consequence for the experimental libraries. > > > > > > > > In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK > > > > 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > > > > increasing, that's fine. When we'll switch to the new major ABI and use > > > > a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with > > > > soname 0.21 Numbers are dropping. > > > > > > > > In short, for experimental libs, ABI 20.1 > ABI 21.0 > > > > > > > > Are we OK with this or do we prefer reverting to normal numbering for > > > > experimental libraries in DPDK 20.02? > > > > > > > Personally, I would not be too concerned about the verions of experimental > > > libs, so long as they don't conflict across versions and have some > > > similarity to the major ABI version for the release. > > > > You think sorting of the version numbers is not important? > > If we don't care comparing experimental version numbers, > > then OK, let's drop this patch. But please we need a small vote. > > > > Note: there would be no problem if we did not vote for having > > a special numbering for pure experimental libraries (I am still against). > > > I don't understand. Why would we change the ABI_VERSION at all in an LTS release at > all? This operation is meant to take an an experimental API and mark it as > stable by promoting its version number to the next major releases number. As > such, in the LTS release, we should keep the soname the same, as there should be > no other ABI changes in the promoted API. The library version number is updated because we add new symbols. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-19 12:43 ` Thomas Monjalon @ 2020-02-19 13:50 ` Ray Kinsella 2020-02-21 16:57 ` Thomas Monjalon 2020-02-19 21:17 ` Neil Horman 1 sibling, 1 reply; 20+ messages in thread From: Ray Kinsella @ 2020-02-19 13:50 UTC (permalink / raw) To: dev On 19/02/2020 12:43, Thomas Monjalon wrote: > 19/02/2020 12:43, Neil Horman: >> On Tue, Feb 18, 2020 at 10:50:09AM +0100, Thomas Monjalon wrote: >>> 18/02/2020 10:42, Bruce Richardson: >>>> On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: >>>>> Hi, >>>>> >>>>> I would like to remind everybody our mistake when defining ABI versions. >>>>> It has been "fixed" in this commit: >>>>> http://git.dpdk.org/dpdk/commit/?id=f26c2b39 >>>>> >>>>> Please let's think about the consequence for the experimental libraries. >>>>> >>>>> In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK >>>>> 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are >>>>> increasing, that's fine. When we'll switch to the new major ABI and use >>>>> a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with >>>>> soname 0.21 Numbers are dropping. >>>>> >>>>> In short, for experimental libs, ABI 20.1 > ABI 21.0 >>>>> >>>>> Are we OK with this or do we prefer reverting to normal numbering for >>>>> experimental libraries in DPDK 20.02? >>>>> >>>> Personally, I would not be too concerned about the verions of experimental >>>> libs, so long as they don't conflict across versions and have some >>>> similarity to the major ABI version for the release. >>> >>> You think sorting of the version numbers is not important? >>> If we don't care comparing experimental version numbers, >>> then OK, let's drop this patch. But please we need a small vote. >>> >>> Note: there would be no problem if we did not vote for having >>> a special numbering for pure experimental libraries (I am still against). >>> >> I don't understand. Why would we change the ABI_VERSION at all in an LTS release at >> all? This operation is meant to take an an experimental API and mark it as >> stable by promoting its version number to the next major releases number. As >> such, in the LTS release, we should keep the soname the same, as there should be >> no other ABI changes in the promoted API. > > The library version number is updated because we add new symbols. > > So while experimental library version numbers are not "important". I do agree with Thomas they should be sane, increase and should have a consistent format. Should we always just pad them to 4 places as the simple solution? i.e. DPDK 19.11 ... 0.20 (needs to remain 0.20). DPDK 20.02 ... 0.2001 DPDK 20.11 ... 0.2100 DPDK 21.02 ... 0.2101 Make sense? Ray K ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-19 13:50 ` Ray Kinsella @ 2020-02-21 16:57 ` Thomas Monjalon 2020-02-24 9:32 ` Ray Kinsella 0 siblings, 1 reply; 20+ messages in thread From: Thomas Monjalon @ 2020-02-21 16:57 UTC (permalink / raw) To: dev; +Cc: Ray Kinsella 19/02/2020 14:50, Ray Kinsella: > On 19/02/2020 12:43, Thomas Monjalon wrote: > > 19/02/2020 12:43, Neil Horman: > >> On Tue, Feb 18, 2020 at 10:50:09AM +0100, Thomas Monjalon wrote: > >>> 18/02/2020 10:42, Bruce Richardson: > >>>> On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > >>>>> Hi, > >>>>> > >>>>> I would like to remind everybody our mistake when defining ABI versions. > >>>>> It has been "fixed" in this commit: > >>>>> http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > >>>>> > >>>>> Please let's think about the consequence for the experimental libraries. > >>>>> > >>>>> In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK > >>>>> 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > >>>>> increasing, that's fine. When we'll switch to the new major ABI and use > >>>>> a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with > >>>>> soname 0.21 Numbers are dropping. > >>>>> > >>>>> In short, for experimental libs, ABI 20.1 > ABI 21.0 > >>>>> > >>>>> Are we OK with this or do we prefer reverting to normal numbering for > >>>>> experimental libraries in DPDK 20.02? > >>>>> > >>>> Personally, I would not be too concerned about the verions of experimental > >>>> libs, so long as they don't conflict across versions and have some > >>>> similarity to the major ABI version for the release. > >>> > >>> You think sorting of the version numbers is not important? > >>> If we don't care comparing experimental version numbers, > >>> then OK, let's drop this patch. But please we need a small vote. > >>> > >>> Note: there would be no problem if we did not vote for having > >>> a special numbering for pure experimental libraries (I am still against). > >>> > >> I don't understand. Why would we change the ABI_VERSION at all in an LTS release at > >> all? This operation is meant to take an an experimental API and mark it as > >> stable by promoting its version number to the next major releases number. As > >> such, in the LTS release, we should keep the soname the same, as there should be > >> no other ABI changes in the promoted API. > > > > The library version number is updated because we add new symbols. > > > > > > So while experimental library version numbers are not "important". > I do agree with Thomas they should be sane, increase and should have a consistent format. > > Should we always just pad them to 4 places as the simple solution? > i.e. > > DPDK 19.11 ... 0.20 (needs to remain 0.20). > DPDK 20.02 ... 0.2001 > DPDK 20.11 ... 0.2100 > DPDK 21.02 ... 0.2101 A patch from Ferruh got merged. It is adding a dot to keep versioning consistent. Marking this patch as rejected. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-21 16:57 ` Thomas Monjalon @ 2020-02-24 9:32 ` Ray Kinsella 0 siblings, 0 replies; 20+ messages in thread From: Ray Kinsella @ 2020-02-24 9:32 UTC (permalink / raw) To: Thomas Monjalon, dev On 21/02/2020 16:57, Thomas Monjalon wrote: > 19/02/2020 14:50, Ray Kinsella: >> On 19/02/2020 12:43, Thomas Monjalon wrote: >>> 19/02/2020 12:43, Neil Horman: >>>> On Tue, Feb 18, 2020 at 10:50:09AM +0100, Thomas Monjalon wrote: >>>>> 18/02/2020 10:42, Bruce Richardson: >>>>>> On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: >>>>>>> Hi, >>>>>>> >>>>>>> I would like to remind everybody our mistake when defining ABI versions. >>>>>>> It has been "fixed" in this commit: >>>>>>> http://git.dpdk.org/dpdk/commit/?id=f26c2b39 >>>>>>> >>>>>>> Please let's think about the consequence for the experimental libraries. >>>>>>> >>>>>>> In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK >>>>>>> 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are >>>>>>> increasing, that's fine. When we'll switch to the new major ABI and use >>>>>>> a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with >>>>>>> soname 0.21 Numbers are dropping. >>>>>>> >>>>>>> In short, for experimental libs, ABI 20.1 > ABI 21.0 >>>>>>> >>>>>>> Are we OK with this or do we prefer reverting to normal numbering for >>>>>>> experimental libraries in DPDK 20.02? >>>>>>> >>>>>> Personally, I would not be too concerned about the verions of experimental >>>>>> libs, so long as they don't conflict across versions and have some >>>>>> similarity to the major ABI version for the release. >>>>> >>>>> You think sorting of the version numbers is not important? >>>>> If we don't care comparing experimental version numbers, >>>>> then OK, let's drop this patch. But please we need a small vote. >>>>> >>>>> Note: there would be no problem if we did not vote for having >>>>> a special numbering for pure experimental libraries (I am still against). >>>>> >>>> I don't understand. Why would we change the ABI_VERSION at all in an LTS release at >>>> all? This operation is meant to take an an experimental API and mark it as >>>> stable by promoting its version number to the next major releases number. As >>>> such, in the LTS release, we should keep the soname the same, as there should be >>>> no other ABI changes in the promoted API. >>> >>> The library version number is updated because we add new symbols. >>> >>> >> >> So while experimental library version numbers are not "important". >> I do agree with Thomas they should be sane, increase and should have a consistent format. >> >> Should we always just pad them to 4 places as the simple solution? >> i.e. >> >> DPDK 19.11 ... 0.20 (needs to remain 0.20). >> DPDK 20.02 ... 0.2001 >> DPDK 20.11 ... 0.2100 >> DPDK 21.02 ... 0.2101 > > A patch from Ferruh got merged. > It is adding a dot to keep versioning consistent. > > Marking this patch as rejected. > Ferruh's was a better solution. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [dpdk-dev] ABI version of experimental libraries 2020-02-19 12:43 ` Thomas Monjalon 2020-02-19 13:50 ` Ray Kinsella @ 2020-02-19 21:17 ` Neil Horman 1 sibling, 0 replies; 20+ messages in thread From: Neil Horman @ 2020-02-19 21:17 UTC (permalink / raw) To: Thomas Monjalon Cc: Bruce Richardson, ray.kinsella, bluca, david.marchand, ktraynor, dev On Wed, Feb 19, 2020 at 01:43:01PM +0100, Thomas Monjalon wrote: > 19/02/2020 12:43, Neil Horman: > > On Tue, Feb 18, 2020 at 10:50:09AM +0100, Thomas Monjalon wrote: > > > 18/02/2020 10:42, Bruce Richardson: > > > > On Tue, Feb 18, 2020 at 12:15:56AM +0100, Thomas Monjalon wrote: > > > > > Hi, > > > > > > > > > > I would like to remind everybody our mistake when defining ABI versions. > > > > > It has been "fixed" in this commit: > > > > > http://git.dpdk.org/dpdk/commit/?id=f26c2b39 > > > > > > > > > > Please let's think about the consequence for the experimental libraries. > > > > > > > > > > In DPDK 19.11, we use the ABI version 0.200 with soname 0.20 In DPDK > > > > > 20.02, we use the ABI version 0.2001 with soname 0.201 Numbers are > > > > > increasing, that's fine. When we'll switch to the new major ABI and use > > > > > a normal numbering: In DPDK 20.11, we will use the ABI version 0.210 with > > > > > soname 0.21 Numbers are dropping. > > > > > > > > > > In short, for experimental libs, ABI 20.1 > ABI 21.0 > > > > > > > > > > Are we OK with this or do we prefer reverting to normal numbering for > > > > > experimental libraries in DPDK 20.02? > > > > > > > > > Personally, I would not be too concerned about the verions of experimental > > > > libs, so long as they don't conflict across versions and have some > > > > similarity to the major ABI version for the release. > > > > > > You think sorting of the version numbers is not important? > > > If we don't care comparing experimental version numbers, > > > then OK, let's drop this patch. But please we need a small vote. > > > > > > Note: there would be no problem if we did not vote for having > > > a special numbering for pure experimental libraries (I am still against). > > > > > I don't understand. Why would we change the ABI_VERSION at all in an LTS release at > > all? This operation is meant to take an an experimental API and mark it as > > stable by promoting its version number to the next major releases number. As > > such, in the LTS release, we should keep the soname the same, as there should be > > no other ABI changes in the promoted API. > > The library version number is updated because we add new symbols. But thats a matter of policy (and possibly build mechanics). Not saying agree with this approach necessecarily (as I've not fully thought it through), but we could make room in the policy for this eventuality. Neil > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2020-02-24 9:32 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-02-17 23:15 [dpdk-dev] ABI version of experimental libraries Thomas Monjalon 2020-02-17 23:44 ` [dpdk-dev] [PATCH] build: fix soname for " Thomas Monjalon 2020-02-18 9:40 ` Bruce Richardson 2020-02-18 9:47 ` Thomas Monjalon 2020-02-18 9:42 ` [dpdk-dev] ABI version of " Bruce Richardson 2020-02-18 9:50 ` Thomas Monjalon 2020-02-18 10:36 ` Kinsella, Ray 2020-02-20 19:50 ` Ferruh Yigit 2020-02-20 19:54 ` [dpdk-dev] [PATCH] build: fix experimental library versioning Ferruh Yigit 2020-02-20 22:14 ` Luca Boccassi 2020-02-21 12:36 ` Ray Kinsella 2020-02-21 15:24 ` David Marchand 2020-02-21 15:34 ` Ferruh Yigit 2020-02-21 16:41 ` David Marchand 2020-02-19 11:43 ` [dpdk-dev] ABI version of experimental libraries Neil Horman 2020-02-19 12:43 ` Thomas Monjalon 2020-02-19 13:50 ` Ray Kinsella 2020-02-21 16:57 ` Thomas Monjalon 2020-02-24 9:32 ` Ray Kinsella 2020-02-19 21:17 ` Neil Horman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).