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 <tho...@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