DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jerin Jacob <jerinjacobk@gmail.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dpdk-dev <dev@dpdk.org>
Subject: Re: [PATCH v2] build: fix warnings when running external commands
Date: Mon, 24 Jan 2022 19:38:00 +0530	[thread overview]
Message-ID: <CALBAE1PzySnTLfYHuaz1ooCROQN0oofGUBSkNJOMZQLVSKh11w@mail.gmail.com> (raw)
In-Reply-To: <20220120180639.808436-1-bruce.richardson@intel.com>

On Thu, Jan 20, 2022 at 11:37 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> 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
>
> Reported-by: Jerin Jacob <jerinjacobk@gmail.com>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>


Tested-by: Jerin Jacob <jerinj@marvell.com>


>
> ---
> V2: fix build errors in KNI module
> ---
>  app/test/meson.build                    | 2 +-
>  buildtools/meson.build                  | 2 +-
>  config/arm/meson.build                  | 2 +-
>  config/meson.build                      | 5 +++--
>  config/x86/meson.build                  | 2 +-
>  drivers/common/mlx5/linux/meson.build   | 2 +-
>  drivers/common/mlx5/windows/meson.build | 4 ++--
>  drivers/net/mlx4/meson.build            | 2 +-
>  kernel/linux/kni/meson.build            | 2 +-
>  kernel/linux/meson.build                | 9 +++++----
>  meson.build                             | 2 +-
>  11 files changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/app/test/meson.build b/app/test/meson.build
> index 344a609a4d..80a23c2dd1 100644
> --- a/app/test/meson.build
> +++ b/app/test/meson.build
> @@ -491,7 +491,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
> diff --git a/buildtools/meson.build b/buildtools/meson.build
> index 22ea0ba375..400b88f251 100644
> --- a/buildtools/meson.build
> +++ b/buildtools/meson.build
> @@ -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
> diff --git a/config/arm/meson.build b/config/arm/meson.build
> index c3a3f2faaf..e102381af5 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -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]
> diff --git a/config/meson.build b/config/meson.build
> index 805d5d51d0..ee12318d4f 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -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
> diff --git a/config/x86/meson.build b/config/x86/meson.build
> index e25ed316f4..54345c4da3 100644
> --- a/config/x86/meson.build
> +++ b/config/x86/meson.build
> @@ -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')
> diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build
> index 7909f23e21..4c7b53b9bd 100644
> --- a/drivers/common/mlx5/linux/meson.build
> +++ b/drivers/common/mlx5/linux/meson.build
> @@ -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
> diff --git a/drivers/common/mlx5/windows/meson.build b/drivers/common/mlx5/windows/meson.build
> index 980f76b11c..edbbaa9ae1 100644
> --- a/drivers/common/mlx5/windows/meson.build
> +++ b/drivers/common/mlx5/windows/meson.build
> @@ -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
> diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
> index 99a30eab8f..a038c1ec1b 100644
> --- a/drivers/net/mlx4/meson.build
> +++ b/drivers/net/mlx4/meson.build
> @@ -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
> diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
> index c683fc7b36..dae8c37b37 100644
> --- a/kernel/linux/kni/meson.build
> +++ b/kernel/linux/kni/meson.build
> @@ -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'
> diff --git a/kernel/linux/meson.build b/kernel/linux/meson.build
> index 0637452e95..d8fb20c1c3 100644
> --- a/kernel/linux/meson.build
> +++ b/kernel/linux/meson.build
> @@ -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
> diff --git a/meson.build b/meson.build
> index 12cb6e0e83..1223b79d74 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -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'
> --
> 2.32.0
>

  reply	other threads:[~2022-01-24 14:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <http://patches.dpdk.org/project/dpdk/patch/20220120174159.654464-1-bruce.richardson@intel.com/>
2022-01-20 18:06 ` Bruce Richardson
2022-01-24 14:08   ` Jerin Jacob [this message]
2022-02-02 14:44     ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALBAE1PzySnTLfYHuaz1ooCROQN0oofGUBSkNJOMZQLVSKh11w@mail.gmail.com \
    --to=jerinjacobk@gmail.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).