summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMarcin Baran <marcinx.baran@intel.com>2019-11-20 17:23:28 +0000
committerDavid Marchand <david.marchand@redhat.com>2019-11-20 23:05:39 +0100
commitcba806e07d6f7e6cfa9749346f2dc75288f984f7 (patch)
treeda1d8c885874d725c6ea20e3b44d233dd0e5984b /drivers
parent69b1bb49ed82a4e96b67046f4916eecc14c6ad55 (diff)
downloaddpdk-cba806e07d6f7e6cfa9749346f2dc75288f984f7.zip
dpdk-cba806e07d6f7e6cfa9749346f2dc75288f984f7.tar.gz
dpdk-cba806e07d6f7e6cfa9749346f2dc75288f984f7.tar.xz
build: change ABI versioning to global
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 CONFIG_RTE_MAJOR_ABI option was introduced to permit multiple DPDK versions installed side by side. The problem is now addressed through the new ABI policy, and thus can be removed. [David] For external libraries relying on Makefile, LIBABIVER is preserved to avoid using DPDK global ABI version. [1] https://doc.dpdk.org/guides/contributing/abi_policy.html Signed-off-by: Marcin Baran <marcinx.baran@intel.com> Signed-off-by: Pawel Modrak <pawelx.modrak@intel.com> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/meson.build18
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/meson.build b/drivers/meson.build
index b7fdfb7..72eec46 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -41,7 +41,6 @@ foreach class:dpdk_driver_classes
build = true # set to false to disable, e.g. missing deps
reason = '<unknown reason>' # set if build == false to explain
name = drv
- version = 1
allow_experimental_apis = false
sources = []
objs = []
@@ -124,12 +123,19 @@ foreach class:dpdk_driver_classes
output: out_filename,
depends: [pmdinfogen, tmp_lib])
- if get_option('per_library_versions')
- lib_version = '@0@.1'.format(version)
- so_version = '@0@'.format(version)
+ version_map = '@0@/@1@/@2@_version.map'.format(
+ meson.current_source_dir(),
+ drv_path, lib_name)
+
+ is_experimental = run_command(is_experimental_cmd,
+ files(version_map)).returncode()
+
+ if is_experimental != 0
+ lib_version = experimental_abi_version
+ so_version = experimental_abi_version
else
- lib_version = major_version
- so_version = major_version
+ lib_version = abi_version
+ so_version = abi_version
endif
# now build the static driver