[v3,2/2] common/mlx5: move build config initialization and check
Checks
Commit Message
The variable mlx5_config may be used by other mlx5 drivers
and should be always initialized.
By moving its initialization (with configuration file generation),
it is made consistent for Linux and Windows builds.
And the check of mlx5_config in net/mlx5 is moved at the top of
net/mlx5/hws/meson.build so HWS requirements are in the right context.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/common/mlx5/linux/meson.build | 3 +--
drivers/common/mlx5/meson.build | 2 ++
drivers/common/mlx5/windows/meson.build | 4 ----
drivers/net/mlx5/hws/meson.build | 4 ++++
drivers/net/mlx5/meson.build | 4 +---
5 files changed, 8 insertions(+), 9 deletions(-)
Comments
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Sunday, October 30, 2022 1:08 PM
> To: dev@dpdk.org
> Cc: Alex Vesker <valex@nvidia.com>; ferruh.yigit@amd.com;
> andrew.rybchenko@oktetlabs.ru; Raslan Darawsheh <rasland@nvidia.com>;
> david.marchand@redhat.com; Matan Azrad <matan@nvidia.com>; Slava
> Ovsiienko <viacheslavo@nvidia.com>
> Subject: [PATCH v3 2/2] common/mlx5: move build config initialization and
> check
>
> The variable mlx5_config may be used by other mlx5 drivers and should be
> always initialized.
> By moving its initialization (with configuration file generation), it is made
> consistent for Linux and Windows builds.
>
> And the check of mlx5_config in net/mlx5 is moved at the top of
> net/mlx5/hws/meson.build so HWS requirements are in the right context.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> Tested-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> Reviewed-by: David Marchand <david.marchand@redhat.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
> drivers/common/mlx5/linux/meson.build | 3 +--
> drivers/common/mlx5/meson.build | 2 ++
> drivers/common/mlx5/windows/meson.build | 4 ----
> drivers/net/mlx5/hws/meson.build | 4 ++++
> drivers/net/mlx5/meson.build | 4 +---
> 5 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/common/mlx5/linux/meson.build
> b/drivers/common/mlx5/linux/meson.build
> index 84e2a1ad8c..7e1575efc8 100644
> --- a/drivers/common/mlx5/linux/meson.build
> +++ b/drivers/common/mlx5/linux/meson.build
> @@ -8,7 +8,6 @@ dlopen_ibverbs = (get_option('ibverbs_link') == 'dlopen')
> LIB_GLUE_BASE = 'librte_common_mlx5_glue.so'
> LIB_GLUE_VERSION = abi_version
> LIB_GLUE = LIB_GLUE_BASE + '.' + LIB_GLUE_VERSION -mlx5_config =
> configuration_data() if dlopen_ibverbs
> dpdk_conf.set('RTE_IBVERBS_LINK_DLOPEN', 1)
> cflags += [
> @@ -232,7 +231,6 @@ foreach arg:has_member_args
> file_prefix = '#include <' + arg[1] + '>'
> mlx5_config.set(arg[0], cc.has_member(arg[2], arg[3], prefix : file_prefix,
> dependencies: libs)) endforeach -configure_file(output : 'mlx5_autoconf.h',
> configuration : mlx5_config)
>
> # Build Glue Library
> if dlopen_ibverbs
> @@ -243,6 +241,7 @@ if dlopen_ibverbs
> dlopen_install_dir = [ eal_pmd_path + '-glue' ]
> dlopen_includes = [global_inc]
> dlopen_includes += include_directories('../../../../lib/eal/include/generic')
> + dlopen_includes += include_directories('..')
> shared_lib = shared_library(
> dlopen_lib_name,
> dlopen_sources,
> diff --git a/drivers/common/mlx5/meson.build
> b/drivers/common/mlx5/meson.build index 6ddbde7e8f..60ccd95cbc
> 100644
> --- a/drivers/common/mlx5/meson.build
> +++ b/drivers/common/mlx5/meson.build
> @@ -37,4 +37,6 @@ else
> cflags += [ '-UPEDANTIC' ]
> endif
>
> +mlx5_config = configuration_data()
> subdir(exec_env)
> +configure_file(output: 'mlx5_autoconf.h', configuration: mlx5_config)
> diff --git a/drivers/common/mlx5/windows/meson.build
> b/drivers/common/mlx5/windows/meson.build
> index edbbaa9ae1..cc486014a8 100644
> --- a/drivers/common/mlx5/windows/meson.build
> +++ b/drivers/common/mlx5/windows/meson.build
> @@ -39,7 +39,3 @@ if get_option('buildtype').contains('debug')
> else
> cflags += [ '-UPEDANTIC' ]
> endif
> -
> -# Generate an empty mlx5_autoconf.h file for compatibility with Linux -
> config = configuration_data() -configure_file(output : 'mlx5_autoconf.h',
> configuration : config) diff --git a/drivers/net/mlx5/hws/meson.build
> b/drivers/net/mlx5/hws/meson.build
> index d2bb864fd2..38776d5163 100644
> --- a/drivers/net/mlx5/hws/meson.build
> +++ b/drivers/net/mlx5/hws/meson.build
> @@ -1,6 +1,10 @@
> # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2022 NVIDIA
> Corporation & Affiliates
>
> +if not (is_linux and mlx5_config.get('HAVE_IBV_FLOW_DV_SUPPORT', false))
> + subdir_done()
> +endif
> +
> includes += include_directories('.')
> sources += files(
> 'mlx5dr_context.c',
> diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
> index fa15158039..f1aab18f82 100644
> --- a/drivers/net/mlx5/meson.build
> +++ b/drivers/net/mlx5/meson.build
> @@ -78,6 +78,4 @@ testpmd_sources += files('mlx5_testpmd.c')
>
> subdir(exec_env)
>
> -if (is_linux and mlx5_config.get('HAVE_IBV_FLOW_DV_SUPPORT', false))
> - subdir('hws')
> -endif
> +subdir('hws')
> --
> 2.36.1
Acked-by: Alex Vesker <valex@nvidia.com>
@@ -8,7 +8,6 @@ dlopen_ibverbs = (get_option('ibverbs_link') == 'dlopen')
LIB_GLUE_BASE = 'librte_common_mlx5_glue.so'
LIB_GLUE_VERSION = abi_version
LIB_GLUE = LIB_GLUE_BASE + '.' + LIB_GLUE_VERSION
-mlx5_config = configuration_data()
if dlopen_ibverbs
dpdk_conf.set('RTE_IBVERBS_LINK_DLOPEN', 1)
cflags += [
@@ -232,7 +231,6 @@ foreach arg:has_member_args
file_prefix = '#include <' + arg[1] + '>'
mlx5_config.set(arg[0], cc.has_member(arg[2], arg[3], prefix : file_prefix, dependencies: libs))
endforeach
-configure_file(output : 'mlx5_autoconf.h', configuration : mlx5_config)
# Build Glue Library
if dlopen_ibverbs
@@ -243,6 +241,7 @@ if dlopen_ibverbs
dlopen_install_dir = [ eal_pmd_path + '-glue' ]
dlopen_includes = [global_inc]
dlopen_includes += include_directories('../../../../lib/eal/include/generic')
+ dlopen_includes += include_directories('..')
shared_lib = shared_library(
dlopen_lib_name,
dlopen_sources,
@@ -37,4 +37,6 @@ else
cflags += [ '-UPEDANTIC' ]
endif
+mlx5_config = configuration_data()
subdir(exec_env)
+configure_file(output: 'mlx5_autoconf.h', configuration: mlx5_config)
@@ -39,7 +39,3 @@ if get_option('buildtype').contains('debug')
else
cflags += [ '-UPEDANTIC' ]
endif
-
-# Generate an empty mlx5_autoconf.h file for compatibility with Linux
-config = configuration_data()
-configure_file(output : 'mlx5_autoconf.h', configuration : config)
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2022 NVIDIA Corporation & Affiliates
+if not (is_linux and mlx5_config.get('HAVE_IBV_FLOW_DV_SUPPORT', false))
+ subdir_done()
+endif
+
includes += include_directories('.')
sources += files(
'mlx5dr_context.c',
@@ -78,6 +78,4 @@ testpmd_sources += files('mlx5_testpmd.c')
subdir(exec_env)
-if (is_linux and mlx5_config.get('HAVE_IBV_FLOW_DV_SUPPORT', false))
- subdir('hws')
-endif
+subdir('hws')