build: fix experimental library versioning
authorFerruh Yigit <ferruh.yigit@intel.com>
Thu, 20 Feb 2020 19:54:53 +0000 (19:54 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Fri, 21 Feb 2020 16:44:02 +0000 (17:44 +0100)
commitec2b8cd7ed698f3eb81d9690ece1107d46882eb5
tree754359487f0a65c9ce8bc69a3f97473f980a99db
parent23d7ad5db41cefac70d06e58fbc6436590ddcefb
build: fix experimental library versioning

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 <ray.kinsella@intel.com>
config/meson.build
mk/rte.lib.mk