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),
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))
# some perf tests (eg: memcpy perf autotest)take very long

View File

@ -45,7 +45,7 @@ if host_machine.system() != 'windows'
endif
foreach module : python3_required_modules
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))
endif
endforeach

View File

@ -463,7 +463,7 @@ else
# 'Primary Part number', 'Revision']
detect_vendor = find_program(join_paths(meson.current_source_dir(),
'armv8_machine.py'))
cmd = run_command(detect_vendor.path())
cmd = run_command(detect_vendor.path(), check: false)
if cmd.returncode() == 0
cmd_output = cmd.stdout().to_lower().strip().split(' ')
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
pver = meson.project_version().split('.')
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
# 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.')
endif
# 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
# DPDK must be built for at least 2 cores
if max_lcores < min_lcores

View File

@ -4,7 +4,7 @@
# get binutils version for the workaround of Bug 97
binutils_ok = true
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')
machine_args += '-mno-avx512f'
warning('Binutils error with AVX512 assembly, disabling AVX512 support')

View File

@ -36,7 +36,7 @@ foreach libname:libnames
endforeach
if static_ibverbs or dlopen_ibverbs
# 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())
endif
if static_ibverbs

View File

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

View File

@ -42,7 +42,7 @@ foreach libname:libnames
endforeach
if static_ibverbs or dlopen_ibverbs
# 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())
endif
if static_ibverbs

View File

@ -5,7 +5,7 @@
# Ref: https://jira.devtools.intel.com/browse/DPDK-29263
kmod_cflags = ''
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
kmod_cflags = '-DHAVE_ARG_TX_QUEUE'

View File

@ -11,7 +11,7 @@ cross_args = []
if not meson.is_cross_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'
if kernel_build_dir == ''
# 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"
make_returncode = run_command('make', '-sC', kernel_build_dir,
'kernelversion').returncode()
'kernelversion', check: true).returncode()
if make_returncode != 0
# backward compatibility:
# the headers could still be in the 'build' subdir
if not kernel_build_dir.endswith('build') and not kernel_build_dir.endswith('build/')
kernel_build_dir = join_paths(kernel_build_dir, 'build')
make_returncode = run_command('make', '-sC', kernel_build_dir,
'kernelversion').returncode()
'kernelversion', check: true).returncode()
endif
endif
@ -54,7 +54,8 @@ if kernel_build_dir == ''
endif
cross_compiler = find_program('c').path()
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')
cross_prefix = ''
found_target = false

View File

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