[v3,5/7] build: add lib abi checks to meson
Checks
Commit Message
This patch adds the ABI compatibility check for the lib directory to the
meson build. If enabled, the ABI compatibility checks will run for all
.so's in the lib directory (provided a matching dump file exists). The
build will fail if an ABI incompatibility is detected.
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
v2:
- fixed conditional around abi check custom target
v3:
- fix typo in meson option name
---
buildtools/meson.build | 4 ++++
lib/meson.build | 13 +++++++++++++
2 files changed, 17 insertions(+)
@@ -7,6 +7,10 @@ pmdinfo = find_program('gen-pmdinfo-cfile.sh')
check_experimental_syms = find_program('check-experimental-syms.sh')
+if get_option('compat_checks')
+ abidiff = find_program('abidiff')
+endif
+
# set up map-to-def script using python, either built-in or external
python3 = import('python').find_installation(required: false)
if python3.found()
@@ -180,6 +180,19 @@ foreach l:libraries
include_directories: includes,
dependencies: shared_deps)
+ if not is_windows and get_option('compat_checks')
+ custom_target(dir_name + '.abi_chk',
+ command: [abidiff,
+ meson.source_root() + '/lib/abi/'
+ + dir_name + '.dump',
+ '@INPUT@'],
+ input: shared_lib,
+ output: dir_name + '.abi_chk',
+ capture: true,
+ install: false,
+ build_by_default: is_experimental == 0)
+ endif
+
dpdk_libraries = [shared_lib] + dpdk_libraries
dpdk_static_libraries = [static_lib] + dpdk_static_libraries
endif # sources.length() > 0