build: fix warnings when running external commands

Meson 0.61.1 is giving warnings that the calls to run_command do not
always explicitly specify if the result is to be checked or not, i.e.
there is a missing "check" parameter. This is because the default
behaviour without the parameter is due to change in the future.

We can fix these warnings by explicitly adding into each call whether
the result should be checked by meson or not. This patch therefore
adds in "check: false" to each run_command call where the result is
being checked by the DPDK meson.build code afterwards, and adds in
"check: true" to any calls where the result is currently unchecked.

Bugzilla ID: 921
Cc: stable@dpdk.org

Reported-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Jerin Jacob <jerinj@marvell.com>
This commit is contained in:
Bruce Richardson 2022-01-20 18:06:39 +00:00 committed by Thomas Monjalon
parent 44f44d8298
commit ecb904cc45
11 changed files with 18 additions and 16 deletions

View File

@ -457,7 +457,7 @@ dpdk_test = executable('dpdk-test',
driver_install_path), driver_install_path),
install: true) install: true)
has_hugepage = run_command('has-hugepage.sh').stdout().strip() != '0' has_hugepage = run_command('has-hugepage.sh', check: true).stdout().strip() != '0'
message('hugepage availability: @0@'.format(has_hugepage)) message('hugepage availability: @0@'.format(has_hugepage))
# some perf tests (eg: memcpy perf autotest)take very long # some perf tests (eg: memcpy perf autotest)take very long

View File

@ -45,7 +45,7 @@ if host_machine.system() != 'windows'
endif endif
foreach module : python3_required_modules foreach module : python3_required_modules
script = 'import importlib.util; import sys; exit(importlib.util.find_spec("@0@") is None)' script = 'import importlib.util; import sys; exit(importlib.util.find_spec("@0@") is None)'
if run_command(py3, '-c', script.format(module)).returncode() != 0 if run_command(py3, '-c', script.format(module), check: false).returncode() != 0
error('missing python module: @0@'.format(module)) error('missing python module: @0@'.format(module))
endif endif
endforeach endforeach

View File

@ -463,7 +463,7 @@ else
# 'Primary Part number', 'Revision'] # 'Primary Part number', 'Revision']
detect_vendor = find_program(join_paths(meson.current_source_dir(), detect_vendor = find_program(join_paths(meson.current_source_dir(),
'armv8_machine.py')) 'armv8_machine.py'))
cmd = run_command(detect_vendor.path()) cmd = run_command(detect_vendor.path(), check: false)
if cmd.returncode() == 0 if cmd.returncode() == 0
cmd_output = cmd.stdout().to_lower().strip().split(' ') cmd_output = cmd.stdout().to_lower().strip().split(' ')
implementer_id = cmd_output[0] implementer_id = cmd_output[0]

View File

@ -22,7 +22,8 @@ is_ms_linker = is_windows and (cc.get_id() == 'clang')
# depending on the configuration options # depending on the configuration options
pver = meson.project_version().split('.') pver = meson.project_version().split('.')
major_version = '@0@.@1@'.format(pver.get(0), pver.get(1)) major_version = '@0@.@1@'.format(pver.get(0), pver.get(1))
abi_version = run_command(find_program('cat', 'more'), abi_version_file).stdout().strip() abi_version = run_command(find_program('cat', 'more'), abi_version_file,
check: true).stdout().strip()
# Libraries have the abi_version as the filename extension # Libraries have the abi_version as the filename extension
# and have the soname be all but the final part of the abi_version. # and have the soname be all but the final part of the abi_version.
@ -334,7 +335,7 @@ if max_lcores == 'detect'
error('Discovery of max_lcores is not supported for cross-compilation.') error('Discovery of max_lcores is not supported for cross-compilation.')
endif endif
# overwrite the default value with discovered values # overwrite the default value with discovered values
max_lcores = run_command(get_cpu_count_cmd).stdout().to_int() max_lcores = run_command(get_cpu_count_cmd, check: true).stdout().to_int()
min_lcores = 2 min_lcores = 2
# DPDK must be built for at least 2 cores # DPDK must be built for at least 2 cores
if max_lcores < min_lcores if max_lcores < min_lcores

View File

@ -4,7 +4,7 @@
# get binutils version for the workaround of Bug 97 # get binutils version for the workaround of Bug 97
binutils_ok = true binutils_ok = true
if is_linux or cc.get_id() == 'gcc' if is_linux or cc.get_id() == 'gcc'
binutils_ok = run_command(binutils_avx512_check).returncode() == 0 binutils_ok = run_command(binutils_avx512_check, check: false).returncode() == 0
if not binutils_ok and cc.has_argument('-mno-avx512f') if not binutils_ok and cc.has_argument('-mno-avx512f')
machine_args += '-mno-avx512f' machine_args += '-mno-avx512f'
warning('Binutils error with AVX512 assembly, disabling AVX512 support') warning('Binutils error with AVX512 assembly, disabling AVX512 support')

View File

@ -36,7 +36,7 @@ foreach libname:libnames
endforeach endforeach
if static_ibverbs or dlopen_ibverbs if static_ibverbs or dlopen_ibverbs
# Build without adding shared libs to Requires.private # Build without adding shared libs to Requires.private
ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check: true).stdout()
ext_deps += declare_dependency(compile_args: ibv_cflags.split()) ext_deps += declare_dependency(compile_args: ibv_cflags.split())
endif endif
if static_ibverbs if static_ibverbs

View File

@ -8,8 +8,8 @@ sources += files(
'mlx5_common_os.c', 'mlx5_common_os.c',
) )
res_lib = run_command(python3, '-c', 'import os; print(os.environ["DEVX_LIB_PATH"])') res_lib = run_command(python3, '-c', 'import os; print(os.environ["DEVX_LIB_PATH"])', check: false)
res_inc = run_command(python3, '-c', 'import os; print(os.environ["DEVX_INC_PATH"])') res_inc = run_command(python3, '-c', 'import os; print(os.environ["DEVX_INC_PATH"])', check: false)
if (res_lib.returncode() != 0 or res_inc.returncode() != 0) if (res_lib.returncode() != 0 or res_inc.returncode() != 0)
build = false build = false

View File

@ -42,7 +42,7 @@ foreach libname:libnames
endforeach endforeach
if static_ibverbs or dlopen_ibverbs if static_ibverbs or dlopen_ibverbs
# Build without adding shared libs to Requires.private # Build without adding shared libs to Requires.private
ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs').stdout() ibv_cflags = run_command(pkgconf, '--cflags', 'libibverbs', check:true).stdout()
ext_deps += declare_dependency(compile_args: ibv_cflags.split()) ext_deps += declare_dependency(compile_args: ibv_cflags.split())
endif endif
if static_ibverbs if static_ibverbs

View File

@ -5,7 +5,7 @@
# Ref: https://jira.devtools.intel.com/browse/DPDK-29263 # Ref: https://jira.devtools.intel.com/browse/DPDK-29263
kmod_cflags = '' kmod_cflags = ''
file_path = kernel_source_dir + '/include/linux/netdevice.h' file_path = kernel_source_dir + '/include/linux/netdevice.h'
run_cmd = run_command('grep', 'ndo_tx_timeout', file_path) run_cmd = run_command('grep', 'ndo_tx_timeout', file_path, check: false)
if run_cmd.stdout().contains('txqueue') == true if run_cmd.stdout().contains('txqueue') == true
kmod_cflags = '-DHAVE_ARG_TX_QUEUE' kmod_cflags = '-DHAVE_ARG_TX_QUEUE'

View File

@ -11,7 +11,7 @@ cross_args = []
if not meson.is_cross_build() if not meson.is_cross_build()
# native build # native build
kernel_version = run_command('uname', '-r').stdout().strip() kernel_version = run_command('uname', '-r', check: true).stdout().strip()
kernel_install_dir = '/lib/modules/' + kernel_version + '/extra/dpdk' kernel_install_dir = '/lib/modules/' + kernel_version + '/extra/dpdk'
if kernel_build_dir == '' if kernel_build_dir == ''
# use default path for native builds # use default path for native builds
@ -24,14 +24,14 @@ if not meson.is_cross_build()
# test running make in kernel directory, using "make kernelversion" # test running make in kernel directory, using "make kernelversion"
make_returncode = run_command('make', '-sC', kernel_build_dir, make_returncode = run_command('make', '-sC', kernel_build_dir,
'kernelversion').returncode() 'kernelversion', check: true).returncode()
if make_returncode != 0 if make_returncode != 0
# backward compatibility: # backward compatibility:
# the headers could still be in the 'build' subdir # the headers could still be in the 'build' subdir
if not kernel_build_dir.endswith('build') and not kernel_build_dir.endswith('build/') if not kernel_build_dir.endswith('build') and not kernel_build_dir.endswith('build/')
kernel_build_dir = join_paths(kernel_build_dir, 'build') kernel_build_dir = join_paths(kernel_build_dir, 'build')
make_returncode = run_command('make', '-sC', kernel_build_dir, make_returncode = run_command('make', '-sC', kernel_build_dir,
'kernelversion').returncode() 'kernelversion', check: true).returncode()
endif endif
endif endif
@ -54,7 +54,8 @@ if kernel_build_dir == ''
endif endif
cross_compiler = find_program('c').path() cross_compiler = find_program('c').path()
if cross_compiler.endswith('gcc') if cross_compiler.endswith('gcc')
cross_prefix = run_command([py3, '-c', 'print("' + cross_compiler + '"[:-3])']).stdout().strip() cross_prefix = run_command([py3, '-c', 'print("' + cross_compiler + '"[:-3])'],
check: true).stdout().strip()
elif cross_compiler.endswith('clang') elif cross_compiler.endswith('clang')
cross_prefix = '' cross_prefix = ''
found_target = false found_target = false

View File

@ -5,7 +5,7 @@ project('DPDK', 'C',
# Get version number from file. # Get version number from file.
# Fallback to "more" for Windows compatibility. # Fallback to "more" for Windows compatibility.
version: run_command(find_program('cat', 'more'), version: run_command(find_program('cat', 'more'),
files('VERSION')).stdout().strip(), files('VERSION'), check: true).stdout().strip(),
license: 'BSD', license: 'BSD',
default_options: ['buildtype=release', 'default_library=static'], default_options: ['buildtype=release', 'default_library=static'],
meson_version: '>= 0.49.2' meson_version: '>= 0.49.2'