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.la...@intel.com> Signed-off-by: Bruce Richardson <bruce.richard...@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(+) diff --git a/buildtools/meson.build b/buildtools/meson.build index 6ef2c5721..1d6915708 100644 --- a/buildtools/meson.build +++ b/buildtools/meson.build @@ -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() diff --git a/lib/meson.build b/lib/meson.build index 6ceb5e756..69ea3a2b0 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -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 -- 2.17.1