[dpdk-dev] [PATCH] build: fix soname for experimental libraries
Thomas Monjalon
thomas at monjalon.net
Tue Feb 18 00:44:02 CET 2020
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 at 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
More information about the dev
mailing list