lib: check experimental symbols with meson

Call check-experimental-syms.sh script as part of the meson build to ensure
that all functions are correctly tagged.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
This commit is contained in:
Bruce Richardson 2019-10-08 15:36:27 +01:00 committed by Thomas Monjalon
parent 7b3a6d7e35
commit ff962da373
2 changed files with 13 additions and 1 deletions

View File

@ -5,6 +5,8 @@ subdir('pmdinfogen')
pmdinfo = find_program('gen-pmdinfo-cfile.sh') pmdinfo = find_program('gen-pmdinfo-cfile.sh')
check_experimental_syms = find_program('check-experimental-syms.sh')
# set up map-to-def script using python, either built-in or external # set up map-to-def script using python, either built-in or external
python3 = import('python').find_installation(required: false) python3 = import('python').find_installation(required: false)
if python3.found() if python3.found()

View File

@ -143,11 +143,21 @@ foreach l:libraries
command: [map_to_def_cmd, '@INPUT@', '@OUTPUT@'], command: [map_to_def_cmd, '@INPUT@', '@OUTPUT@'],
input: version_map, input: version_map,
output: 'rte_@0@_exports.def'.format(name)) output: 'rte_@0@_exports.def'.format(name))
lk_deps = [version_map, def_file]
if is_windows if is_windows
lk_args = ['-Wl,/def:' + def_file.full_path(), lk_args = ['-Wl,/def:' + def_file.full_path(),
'-Wl,/implib:lib\\' + implib] '-Wl,/implib:lib\\' + implib]
else else
lk_args = ['-Wl,--version-script=' + version_map] lk_args = ['-Wl,--version-script=' + version_map]
# on unix systems check the output of the
# experimental syms script, using it as a
# dependency of the .so build
lk_deps += custom_target(name + '.exp_chk',
command: [check_experimental_syms,
version_map, '@INPUT@'],
capture: true,
input: static_lib,
output: name + '.exp_chk')
endif endif
shared_lib = shared_library(libname, shared_lib = shared_library(libname,
@ -157,7 +167,7 @@ foreach l:libraries
dependencies: shared_deps, dependencies: shared_deps,
include_directories: includes, include_directories: includes,
link_args: lk_args, link_args: lk_args,
link_depends: [version_map, def_file], link_depends: lk_deps,
version: lib_version, version: lib_version,
soversion: so_version, soversion: so_version,
install: true) install: true)