As explained in drivers/meson.build, " For the find_library() case (but not with dependency()) we also need to specify the "-l" flags in pkgconfig_extra_libs variable too, so that it can be reflected in the pkgconfig output for static builds. " The commit e30b4e566f47 ("build: improve dependency handling") must be followed up with this one in order to remove more occurences of pkgconfig_extra_libs redundant with use of dependency(). Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD") Cc: xiaolong.ye@intel.com Fixes: 3c32e89f68e1 ("compress/isal: add skeleton ISA-L compression PMD") Cc: lee.daly@intel.com Cc: bluca@debian.org Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- drivers/compress/isal/meson.build | 1 - drivers/net/af_xdp/meson.build | 1 - 2 files changed, 2 deletions(-) diff --git a/drivers/compress/isal/meson.build b/drivers/compress/isal/meson.build index 67b5c4aae..25578880d 100644 --- a/drivers/compress/isal/meson.build +++ b/drivers/compress/isal/meson.build @@ -10,6 +10,5 @@ endif deps += 'bus_vdev' sources = files('isal_compress_pmd.c', 'isal_compress_pmd_ops.c') ext_deps += dep -pkgconfig_extra_libs += '-lisal' allow_experimental_apis = true diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build index ac679b92b..307aa0e38 100644 --- a/drivers/net/af_xdp/meson.build +++ b/drivers/net/af_xdp/meson.build @@ -10,7 +10,6 @@ endif if bpf_dep.found() and cc.has_header('bpf/xsk.h') and cc.has_header('linux/if_xdp.h') ext_deps += bpf_dep - pkgconfig_extra_libs += '-lbpf' else build = false reason = 'missing dependency, "libbpf"' -- 2.22.0
If rdma-core is not installed in a standard directory of the system, it is possible to specify the location of the pkgconfig file via an environment variable: PKG_CONFIG_PATH=$PKG_CONFIG_PATH:~/rdma-core/build/lib/pkgconfig In this case, the dependency may become mandatory to specify for the configuration tests (checking dependency symbols or fields). Some spacing is also fixed around. Fixes: 8e4937640022 ("net/mlx4: add external allocator for Verbs object") Fixes: 1dd7c7e38c19 ("net/mlx4: support meson build") Fixes: 96d7c62a70c7 ("net/mlx5: support meson build") Cc: stable@dpdk.org Suggested-by: Luca Boccassi <bluca@debian.org> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- drivers/net/mlx4/meson.build | 9 +++++---- drivers/net/mlx5/meson.build | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build index 028cd97fa..efee45776 100644 --- a/drivers/net/mlx4/meson.build +++ b/drivers/net/mlx4/meson.build @@ -76,7 +76,7 @@ if build # mlx4_autoconf.h file is still generated. # input array for meson member search: # [ "MACRO to define if found", "header for the search", - # "symbol to search","struct member to search" ] + # "symbol to search", "struct member to search" ] # has_member_args = [ [ 'HAVE_IBV_MLX4_WQE_LSO_SEG', 'infiniband/mlx4dv.h', @@ -93,12 +93,13 @@ if build ] config = configuration_data() foreach arg:has_sym_args - config.set(arg[0], cc.has_header_symbol(arg[1], arg[2])) + config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], + dependencies: libs)) endforeach foreach arg:has_member_args - file_prefix = '#include<' + arg[1] + '>' + file_prefix = '#include <' + arg[1] + '>' config.set(arg[0], cc.has_member(arg[2], arg[3], - prefix : file_prefix)) + prefix: file_prefix, dependencies: libs)) endforeach configure_file(output : 'mlx4_autoconf.h', configuration : config) endif diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build index 62b41caf1..3c5144c9b 100644 --- a/drivers/net/mlx5/meson.build +++ b/drivers/net/mlx5/meson.build @@ -177,12 +177,13 @@ if build ] config = configuration_data() foreach arg:has_sym_args - config.set(arg[0], cc.has_header_symbol(arg[1], arg[2])) + config.set(arg[0], cc.has_header_symbol(arg[1], arg[2], + dependencies: libs)) endforeach foreach arg:has_member_args - file_prefix = '#include<' + arg[1] + '>' + file_prefix = '#include <' + arg[1] + '>' config.set(arg[0], cc.has_member(arg[2], arg[3], - prefix : file_prefix)) + prefix : file_prefix, dependencies: libs)) endforeach configure_file(output : 'mlx5_autoconf.h', configuration : config) endif -- 2.22.0
With VERBOSE=1, this error was seen in debug mode with gcc 9.1: In file included from /tmp/dpdk.auto-config-h.sh.c.w0VWMi:1: In file included from rdma-core/build/include/infiniband/mlx5dv.h:47: In file included from rdma-core/build/include/infiniband/verbs.h:46: In file included from rdma-core/build/include/infiniband/verbs_api.h:66: In file included from rdma-core/build/include/infiniband/ib_user_ioctl_verbs.h:38: include/rdma/ib_user_verbs.h:161:28: fatal error: zero size arrays are an extension [-Wzero-length-array] __aligned_u64 driver_data0; ^ 1 error generated. As a result, buildtools/auto-config-h.sh was not generating a correct autoconf file, so the compilation was generating such error: fatal error: redefinition of 'mlx5_ib_uapi_flow_action_packet_reformat_type' It is fixed by disabling -pedantic option when calling auto-config-h.sh from the makefile-based system. Cc: adrien.mazarguil@6wind.com Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon <thomas@monjalon.net> --- drivers/net/mlx4/Makefile | 3 ++- drivers/net/mlx5/Makefile | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile index 8126b0dfc..25d7c7555 100644 --- a/drivers/net/mlx4/Makefile +++ b/drivers/net/mlx4/Makefile @@ -68,6 +68,7 @@ endif # User-defined CFLAGS. ifeq ($(CONFIG_RTE_LIBRTE_MLX4_DEBUG),y) CFLAGS += -pedantic -UNDEBUG -DPEDANTIC +AUTO_CONFIG_CFLAGS += -Wno-pedantic else CFLAGS += -DNDEBUG -UPEDANTIC endif @@ -77,7 +78,7 @@ include $(RTE_SDK)/mk/rte.lib.mk # Generate and clean-up mlx4_autoconf.h. export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS -export AUTO_CONFIG_CFLAGS = -Wno-error +export AUTO_CONFIG_CFLAGS += -Wno-error ifndef V AUTOCONF_OUTPUT := >/dev/null diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile index dbb2a4e80..299cf3afe 100644 --- a/drivers/net/mlx5/Makefile +++ b/drivers/net/mlx5/Makefile @@ -83,6 +83,7 @@ endif # User-defined CFLAGS. ifeq ($(CONFIG_RTE_LIBRTE_MLX5_DEBUG),y) CFLAGS += -pedantic -UNDEBUG -DPEDANTIC +AUTO_CONFIG_CFLAGS += -Wno-pedantic else CFLAGS += -DNDEBUG -UPEDANTIC endif @@ -92,7 +93,7 @@ include $(RTE_SDK)/mk/rte.lib.mk # Generate and clean-up mlx5_autoconf.h. export CC CFLAGS CPPFLAGS EXTRA_CFLAGS EXTRA_CPPFLAGS -export AUTO_CONFIG_CFLAGS = -Wno-error +export AUTO_CONFIG_CFLAGS += -Wno-error ifndef V AUTOCONF_OUTPUT := >/dev/null -- 2.22.0
On Tue, 2019-08-13 at 01:03 +0200, Thomas Monjalon wrote:
> As explained in drivers/meson.build,
> "
> For the find_library() case (but not with dependency()) we also
> need to specify the "-l" flags in pkgconfig_extra_libs variable
> too, so that it can be reflected in the pkgconfig output for
> static builds.
> "
>
> The commit e30b4e566f47 ("build: improve dependency handling")
> must be followed up with this one in order to remove more
> occurences of pkgconfig_extra_libs redundant with use of
> dependency().
>
> Fixes: f1debd77efaf ("net/af_xdp: introduce AF_XDP PMD")
> Cc:
> xiaolong.ye@intel.com
>
> Fixes: 3c32e89f68e1 ("compress/isal: add skeleton ISA-L compression
> PMD")
> Cc:
> lee.daly@intel.com
>
> Cc:
> bluca@debian.org
>
> Cc:
> stable@dpdk.org
>
>
> Signed-off-by: Thomas Monjalon <
> thomas@monjalon.net
> >
> ---
> drivers/compress/isal/meson.build | 1 -
> drivers/net/af_xdp/meson.build | 1 -
> 2 files changed, 2 deletions(-)
>
> diff --git a/drivers/compress/isal/meson.build
> b/drivers/compress/isal/meson.build
> index 67b5c4aae..25578880d 100644
> --- a/drivers/compress/isal/meson.build
> +++ b/drivers/compress/isal/meson.build
> @@ -10,6 +10,5 @@ endif
> deps += 'bus_vdev'
> sources = files('isal_compress_pmd.c', 'isal_compress_pmd_ops.c')
> ext_deps += dep
> -pkgconfig_extra_libs += '-lisal'
>
> allow_experimental_apis = true
> diff --git a/drivers/net/af_xdp/meson.build
> b/drivers/net/af_xdp/meson.build
> index ac679b92b..307aa0e38 100644
> --- a/drivers/net/af_xdp/meson.build
> +++ b/drivers/net/af_xdp/meson.build
> @@ -10,7 +10,6 @@ endif
>
> if bpf_dep.found() and cc.has_header('bpf/xsk.h') and
> cc.has_header('linux/if_xdp.h')
> ext_deps += bpf_dep
> - pkgconfig_extra_libs += '-lbpf'
> else
> build = false
> reason = 'missing dependency, "libbpf"'
>
Acked-by: Luca Boccassi <bluca@debian.org>
--
Kind regards,
Luca Boccassi
On Tue, 2019-08-13 at 01:03 +0200, Thomas Monjalon wrote:
> If rdma-core is not installed in a standard directory of the system,
> it is possible to specify the location of the pkgconfig file via
> an environment variable:
> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:~/rdma-core/build/lib/pkgconfig
>
> In this case, the dependency may become mandatory to specify
> for the configuration tests (checking dependency symbols or fields).
>
> Some spacing is also fixed around.
>
> Fixes: 8e4937640022 ("net/mlx4: add external allocator for Verbs
> object")
> Fixes: 1dd7c7e38c19 ("net/mlx4: support meson build")
> Fixes: 96d7c62a70c7 ("net/mlx5: support meson build")
> Cc:
> stable@dpdk.org
>
>
> Suggested-by: Luca Boccassi <
> bluca@debian.org
> >
> Signed-off-by: Thomas Monjalon <
> thomas@monjalon.net
> >
> ---
> drivers/net/mlx4/meson.build | 9 +++++----
> drivers/net/mlx5/meson.build | 7 ++++---
> 2 files changed, 9 insertions(+), 7 deletions(-)
Acked-by: Luca Boccassi <bluca@debian.org>
--
Kind regards,
Luca Boccassi
On Tue, 2019-08-13 at 01:03 +0200, Thomas Monjalon wrote:
> With VERBOSE=1, this error was seen in debug mode with gcc 9.1:
>
> In file included from /tmp/dpdk.auto-config-h.sh.c.w0VWMi:1:
> In file included from rdma-core/build/include/infiniband/mlx5dv.h:47:
> In file included from rdma-core/build/include/infiniband/verbs.h:46:
> In file included from rdma-
> core/build/include/infiniband/verbs_api.h:66:
> In file included from rdma-
> core/build/include/infiniband/ib_user_ioctl_verbs.h:38:
> include/rdma/ib_user_verbs.h:161:28: fatal error:
> zero size arrays are an extension [-Wzero-length-array]
> __aligned_u64 driver_data0;
> ^
> 1 error generated.
>
> As a result, buildtools/auto-config-h.sh was not generating
> a correct autoconf file, so the compilation was generating such
> error:
>
> fatal error: redefinition of
> 'mlx5_ib_uapi_flow_action_packet_reformat_type'
>
> It is fixed by disabling -pedantic option when calling auto-config-
> h.sh
> from the makefile-based system.
>
> Cc:
> adrien.mazarguil@6wind.com
>
> Cc:
> stable@dpdk.org
>
>
> Signed-off-by: Thomas Monjalon <
> thomas@monjalon.net
> >
Acked-by: Luca Boccassi <bluca@debian.org>
--
Kind regards,
Luca Boccassi
From: Thomas Monjalon <thomas@monjalon.net>
> If rdma-core is not installed in a standard directory of the system, it is
> possible to specify the location of the pkgconfig file via an environment
> variable:
> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:~/rdma-core/build/lib/pkgconfig
>
> In this case, the dependency may become mandatory to specify for the
> configuration tests (checking dependency symbols or fields).
>
> Some spacing is also fixed around.
>
> Fixes: 8e4937640022 ("net/mlx4: add external allocator for Verbs object")
> Fixes: 1dd7c7e38c19 ("net/mlx4: support meson build")
> Fixes: 96d7c62a70c7 ("net/mlx5: support meson build")
> Cc: stable@dpdk.org
>
> Suggested-by: Luca Boccassi <bluca@debian.org>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Matan Azrad <matan@mellanox.com>
From: Thomas Monjalon <thomas@monjalon.net>
> With VERBOSE=1, this error was seen in debug mode with gcc 9.1:
>
> In file included from /tmp/dpdk.auto-config-h.sh.c.w0VWMi:1:
> In file included from rdma-core/build/include/infiniband/mlx5dv.h:47:
> In file included from rdma-core/build/include/infiniband/verbs.h:46:
> In file included from rdma-core/build/include/infiniband/verbs_api.h:66:
> In file included from rdma-
> core/build/include/infiniband/ib_user_ioctl_verbs.h:38:
> include/rdma/ib_user_verbs.h:161:28: fatal error:
> zero size arrays are an extension [-Wzero-length-array]
> __aligned_u64 driver_data0;
> ^
> 1 error generated.
>
> As a result, buildtools/auto-config-h.sh was not generating a correct
> autoconf file, so the compilation was generating such error:
>
> fatal error: redefinition of
> 'mlx5_ib_uapi_flow_action_packet_reformat_type'
>
> It is fixed by disabling -pedantic option when calling auto-config-h.sh from
> the makefile-based system.
>
> Cc: adrien.mazarguil@6wind.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Matan Azrad <matan@mellanox.com>
Consider to create more patches to cleanup the compiler commands to ignore pedantic in the code.
Matan