All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/6] build system improvements
@ 2019-08-12 23:03 Thomas Monjalon
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig Thomas Monjalon
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev

While testing compilation of mlx drivers,
I hit some issues and misses.
The result is 6 patches of cleanup, fixes and test improvements.

Thomas Monjalon (6):
  build: remove redundant libs from pkgconfig
  drivers: add some reasons for meson disabling
  net/mlx: fix meson build with custom dependency path
  net/mlx: fix build with make and recent gcc
  devtools: test compiler availability only once
  devtools: load target-specific compilation environment

 devtools/test-meson-builds.sh         | 52 +++++++++++++++++----------
 drivers/baseband/turbo_sw/meson.build |  1 +
 drivers/compress/isal/meson.build     |  1 -
 drivers/net/af_xdp/meson.build        |  1 -
 drivers/net/memif/meson.build         |  5 +--
 drivers/net/mlx4/Makefile             |  3 +-
 drivers/net/mlx4/meson.build          |  9 ++---
 drivers/net/mlx5/Makefile             |  3 +-
 drivers/net/mlx5/meson.build          |  7 ++--
 drivers/raw/ioat/meson.build          |  1 +
 10 files changed, 52 insertions(+), 31 deletions(-)

-- 
2.22.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
@ 2019-08-12 23:03 ` Thomas Monjalon
  2019-08-13  9:37   ` Luca Boccassi
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 2/6] drivers: add some reasons for meson disabling Thomas Monjalon
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson, Lee Daly, Fiona Trahe, Pablo de Lara,
	Ashish Gupta, Xiaolong Ye, Qi Zhang
  Cc: dev, bluca, stable

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


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [dpdk-dev] [PATCH 2/6] drivers: add some reasons for meson disabling
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig Thomas Monjalon
@ 2019-08-12 23:03 ` Thomas Monjalon
  2019-08-13  9:38   ` Luca Boccassi
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path Thomas Monjalon
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson, Nicolas Chautru, Jakub Grajciar; +Cc: dev

Some drivers were missing reasons text for their disabling in meson.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/baseband/turbo_sw/meson.build | 1 +
 drivers/net/memif/meson.build         | 5 +++--
 drivers/raw/ioat/meson.build          | 1 +
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/baseband/turbo_sw/meson.build b/drivers/baseband/turbo_sw/meson.build
index 33345aa01..1a1f7c9a9 100644
--- a/drivers/baseband/turbo_sw/meson.build
+++ b/drivers/baseband/turbo_sw/meson.build
@@ -7,6 +7,7 @@ if dpdk_conf.has('RTE_BBDEV_SDK_AVX2')
 	lib = cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: false)
 	if not lib.found()
 		build = false
+		reason = 'missing dependency, "libturbo"'
 	else
 		ext_deps += cc.find_library('libturbo', dirs: [path + '/lib_turbo'], required: true)
 		ext_deps += cc.find_library('libcrc', dirs: [path + '/lib_crc'], required: true)
diff --git a/drivers/net/memif/meson.build b/drivers/net/memif/meson.build
index bedc97311..a44d82535 100644
--- a/drivers/net/memif/meson.build
+++ b/drivers/net/memif/meson.build
@@ -1,8 +1,9 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright 2018-2019 Cisco Systems, Inc.  All rights reserved.
 
-if host_machine.system() != 'linux'
-        build = false
+if not is_linux
+	build = false
+	reason = 'only supported on Linux'
 endif
 
 sources = files('rte_eth_memif.c',
diff --git a/drivers/raw/ioat/meson.build b/drivers/raw/ioat/meson.build
index 247ff88bf..0878418ae 100644
--- a/drivers/raw/ioat/meson.build
+++ b/drivers/raw/ioat/meson.build
@@ -2,6 +2,7 @@
 # Copyright 2019 Intel Corporation
 
 build = dpdk_conf.has('RTE_ARCH_X86')
+reason = 'only supported on x86'
 sources = files('ioat_rawdev.c',
 		'ioat_rawdev_test.c')
 deps += ['rawdev', 'bus_pci', 'mbuf']
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig Thomas Monjalon
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 2/6] drivers: add some reasons for meson disabling Thomas Monjalon
@ 2019-08-12 23:03 ` Thomas Monjalon
  2019-08-13  9:38   ` Luca Boccassi
  2019-08-14  8:39   ` Matan Azrad
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc Thomas Monjalon
                   ` (3 subsequent siblings)
  6 siblings, 2 replies; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson, Matan Azrad, Shahaf Shuler, Yongseok Koh,
	Viacheslav Ovsiienko
  Cc: dev, stable, Luca Boccassi

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


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
                   ` (2 preceding siblings ...)
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path Thomas Monjalon
@ 2019-08-12 23:03 ` Thomas Monjalon
  2019-08-13  9:39   ` [dpdk-dev] [dpdk-stable] " Luca Boccassi
  2019-08-14 10:19   ` [dpdk-dev] " Matan Azrad
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 5/6] devtools: test compiler availability only once Thomas Monjalon
                   ` (2 subsequent siblings)
  6 siblings, 2 replies; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson, Matan Azrad, Shahaf Shuler, Yongseok Koh,
	Viacheslav Ovsiienko
  Cc: dev, adrien.mazarguil, stable

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


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [dpdk-dev] [PATCH 5/6] devtools: test compiler availability only once
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
                   ` (3 preceding siblings ...)
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc Thomas Monjalon
@ 2019-08-12 23:03 ` Thomas Monjalon
  2019-08-13  9:40   ` Luca Boccassi
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 6/6] devtools: load target-specific compilation environment Thomas Monjalon
  2019-09-12 16:23 ` [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
  6 siblings, 1 reply; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev

The compilation test is skipped if the compiler is not available.
In the case of gcc/arm, it was tested both in the generic function
"build" and in the cross-compilation section.

By passing the compiler as argument of the generic function,
the test with "command" is done only once.

This small clean-up has the benefit of introducing the compiler
parameter to be used later in another improvement.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 devtools/test-meson-builds.sh | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 9fe0a04c9..f2b0b347b 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -29,11 +29,13 @@ else
 	exit 1
 fi
 
-build () # <directory> <meson options>
+build () # <directory> <target compiler> <meson options>
 {
 	builddir=$1
 	shift
-	if command -v $CC >/dev/null 2>&1 ; then
+	targetcc=$1
+	shift
+	if command -v $CC $targetcc >/dev/null 2>&1 ; then
 		if [ ! -f "$builddir/build.ninja" ] ; then
 			options="--werror -Dexamples=all $*"
 			echo "$MESON $options $srcdir $builddir"
@@ -71,7 +73,7 @@ for c in gcc clang ; do
 	command -v $c >/dev/null 2>&1 || continue
 	for s in static shared ; do
 		export CC="ccache $c"
-		build build-$c-$s --default-library=$s
+		build build-$c-$s $c --default-library=$s
 	done
 done
 
@@ -83,22 +85,19 @@ ok=$(cc -march=$default_machine -E - < /dev/null > /dev/null 2>&1 || echo false)
 if [ "$ok" = "false" ] ; then
 	default_machine='corei7'
 fi
-build build-x86-default -Dlibdir=lib -Dmachine=$default_machine $use_shared
+build build-x86-default cc -Dlibdir=lib -Dmachine=$default_machine $use_shared
 
-# enable cross compilation if gcc cross-compiler is found
 c=aarch64-linux-gnu-gcc
-if command -v $c >/dev/null 2>&1 ; then
-	# compile the general v8a also for clang to increase coverage
-	export CC="clang"
-	build build-arm64-host-clang $use_shared \
-		--cross-file $srcdir/config/arm/arm64_armv8_linux_gcc
-
-	for f in $srcdir/config/arm/arm*gcc ; do
-		export CC="ccache gcc"
-		build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) \
-			$use_shared --cross-file $f
-	done
-fi
+# generic armv8a with clang as host compiler
+export CC="clang"
+build build-arm64-host-clang $c $use_shared \
+	--cross-file $srcdir/config/arm/arm64_armv8_linux_gcc
+# all gcc/arm configurations
+for f in $srcdir/config/arm/arm*gcc ; do
+	export CC="ccache gcc"
+	build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $c \
+		$use_shared --cross-file $f
+done
 
 # Test installation of the x86-default target, to be used for checking
 # the sample apps build using the pkg-config file for cflags and libs
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [dpdk-dev] [PATCH 6/6] devtools: load target-specific compilation environment
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
                   ` (4 preceding siblings ...)
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 5/6] devtools: test compiler availability only once Thomas Monjalon
@ 2019-08-12 23:03 ` Thomas Monjalon
  2019-08-13  9:41   ` Luca Boccassi
  2019-09-12 16:23 ` [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
  6 siblings, 1 reply; 16+ messages in thread
From: Thomas Monjalon @ 2019-08-12 23:03 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev

In order to re-use the same test environment as with
test-build.sh, the configuration file is loaded at each build,
after adjusting the variable DPDK_TARGET.

This is especially useful to set the variable PKG_CONFIG_PATH,
or define some meson options (without -D) in DPDK_MESON_OPTIONS.

The DPDK_TARGET values can be
	aarch64-*, powerpc64-*, x86_64-*.
The matching DPDK_TARGET values for test-build.sh are
	arm64-*, ppc_64-*, x86_64-*.
The advised expressions to use in the common configuration file are:
	if echo $DPDK_TARGET | grep -q '^a.*64-' ; then
	elif echo $DPDK_TARGET | grep -q '^p.*pc.*64' ; then
	elif echo $DPDK_TARGET | grep -q '^x86_64' ; then
	fi

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 devtools/test-meson-builds.sh | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index f2b0b347b..a51a04d5a 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -29,15 +29,32 @@ else
 	exit 1
 fi
 
+default_path=$PATH
+default_pkgpath=$PKG_CONFIG_PATH
+
+reset_env ()
+{
+	export PATH=$default_path
+	export PKG_CONFIG_PATH=$default_pkgpath
+	unset DPDK_MESON_OPTIONS
+}
+
 build () # <directory> <target compiler> <meson options>
 {
 	builddir=$1
 	shift
 	targetcc=$1
 	shift
+	reset_env
+	DPDK_TARGET=$($targetcc -v 2>&1 | sed -n 's,^Target: ,,p')
+	. $srcdir/devtools/load-devel-config
 	if command -v $CC $targetcc >/dev/null 2>&1 ; then
 		if [ ! -f "$builddir/build.ninja" ] ; then
-			options="--werror -Dexamples=all $*"
+			options="--werror -Dexamples=all"
+			for option in $DPDK_MESON_OPTIONS ; do
+				options="$options -D$option"
+			done
+			options="$options $*"
 			echo "$MESON $options $srcdir $builddir"
 			$MESON $options $srcdir $builddir
 			unset CC
-- 
2.22.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig Thomas Monjalon
@ 2019-08-13  9:37   ` Luca Boccassi
  0 siblings, 0 replies; 16+ messages in thread
From: Luca Boccassi @ 2019-08-13  9:37 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson, Lee Daly, Fiona Trahe,
	Pablo de Lara, Ashish Gupta, Xiaolong Ye, Qi Zhang
  Cc: dev, stable

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 2/6] drivers: add some reasons for meson disabling
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 2/6] drivers: add some reasons for meson disabling Thomas Monjalon
@ 2019-08-13  9:38   ` Luca Boccassi
  0 siblings, 0 replies; 16+ messages in thread
From: Luca Boccassi @ 2019-08-13  9:38 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson, Nicolas Chautru, Jakub Grajciar; +Cc: dev

On Tue, 2019-08-13 at 01:03 +0200, Thomas Monjalon wrote:
> Some drivers were missing reasons text for their disabling in meson.
> 
> Signed-off-by: Thomas Monjalon <
> thomas@monjalon.net
> >
> ---
>  drivers/baseband/turbo_sw/meson.build | 1 +
>  drivers/net/memif/meson.build         | 5 +++--
>  drivers/raw/ioat/meson.build          | 1 +
>  3 files changed, 5 insertions(+), 2 deletions(-)
> 

Acked-by: Luca Boccassi <bluca@debian.org>

-- 
Kind regards,
Luca Boccassi


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path Thomas Monjalon
@ 2019-08-13  9:38   ` Luca Boccassi
  2019-08-14  8:39   ` Matan Azrad
  1 sibling, 0 replies; 16+ messages in thread
From: Luca Boccassi @ 2019-08-13  9:38 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson, Matan Azrad, Shahaf Shuler,
	Yongseok Koh, Viacheslav Ovsiienko
  Cc: dev, stable

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [dpdk-stable] [PATCH 4/6] net/mlx: fix build with make and recent gcc
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc Thomas Monjalon
@ 2019-08-13  9:39   ` Luca Boccassi
  2019-08-14 10:19   ` [dpdk-dev] " Matan Azrad
  1 sibling, 0 replies; 16+ messages in thread
From: Luca Boccassi @ 2019-08-13  9:39 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson, Matan Azrad, Shahaf Shuler,
	Yongseok Koh, Viacheslav Ovsiienko
  Cc: dev, adrien.mazarguil, stable

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 5/6] devtools: test compiler availability only once
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 5/6] devtools: test compiler availability only once Thomas Monjalon
@ 2019-08-13  9:40   ` Luca Boccassi
  0 siblings, 0 replies; 16+ messages in thread
From: Luca Boccassi @ 2019-08-13  9:40 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson; +Cc: dev

On Tue, 2019-08-13 at 01:03 +0200, Thomas Monjalon wrote:
> The compilation test is skipped if the compiler is not available.
> In the case of gcc/arm, it was tested both in the generic function
> "build" and in the cross-compilation section.
> 
> By passing the compiler as argument of the generic function,
> the test with "command" is done only once.
> 
> This small clean-up has the benefit of introducing the compiler
> parameter to be used later in another improvement.
> 
> Signed-off-by: Thomas Monjalon <
> thomas@monjalon.net
> >
> ---
>  devtools/test-meson-builds.sh | 33 ++++++++++++++++-----------------
>  1 file changed, 16 insertions(+), 17 deletions(-)

Acked-by: Luca Boccassi <bluca@debian.org>

-- 
Kind regards,
Luca Boccassi

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 6/6] devtools: load target-specific compilation environment
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 6/6] devtools: load target-specific compilation environment Thomas Monjalon
@ 2019-08-13  9:41   ` Luca Boccassi
  0 siblings, 0 replies; 16+ messages in thread
From: Luca Boccassi @ 2019-08-13  9:41 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson; +Cc: dev

On Tue, 2019-08-13 at 01:03 +0200, Thomas Monjalon wrote:
> In order to re-use the same test environment as with
> test-build.sh, the configuration file is loaded at each build,
> after adjusting the variable DPDK_TARGET.
> 
> This is especially useful to set the variable PKG_CONFIG_PATH,
> or define some meson options (without -D) in DPDK_MESON_OPTIONS.
> 
> The DPDK_TARGET values can be
>         aarch64-*, powerpc64-*, x86_64-*.
> The matching DPDK_TARGET values for test-build.sh are
>         arm64-*, ppc_64-*, x86_64-*.
> The advised expressions to use in the common configuration file are:
>         if echo $DPDK_TARGET | grep -q '^a.*64-' ; then
>         elif echo $DPDK_TARGET | grep -q '^p.*pc.*64' ; then
>         elif echo $DPDK_TARGET | grep -q '^x86_64' ; then
>         fi
> 
> Signed-off-by: Thomas Monjalon <
> thomas@monjalon.net
> >
> ---
>  devtools/test-meson-builds.sh | 19 ++++++++++++++++++-
>  1 file changed, 18 insertions(+), 1 deletion(-)

Acked-by: Luca Boccassi <bluca@debian.org>

-- 
Kind regards,
Luca Boccassi

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path Thomas Monjalon
  2019-08-13  9:38   ` Luca Boccassi
@ 2019-08-14  8:39   ` Matan Azrad
  1 sibling, 0 replies; 16+ messages in thread
From: Matan Azrad @ 2019-08-14  8:39 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson, Shahaf Shuler, Yongseok Koh,
	Slava Ovsiienko
  Cc: dev, stable, 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>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc Thomas Monjalon
  2019-08-13  9:39   ` [dpdk-dev] [dpdk-stable] " Luca Boccassi
@ 2019-08-14 10:19   ` Matan Azrad
  1 sibling, 0 replies; 16+ messages in thread
From: Matan Azrad @ 2019-08-14 10:19 UTC (permalink / raw)
  To: Thomas Monjalon, bruce.richardson, Shahaf Shuler, Yongseok Koh,
	Slava Ovsiienko
  Cc: dev, Adrien Mazarguil, stable

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

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [dpdk-dev] [PATCH 0/6] build system improvements
  2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
                   ` (5 preceding siblings ...)
  2019-08-12 23:03 ` [dpdk-dev] [PATCH 6/6] devtools: load target-specific compilation environment Thomas Monjalon
@ 2019-09-12 16:23 ` Thomas Monjalon
  6 siblings, 0 replies; 16+ messages in thread
From: Thomas Monjalon @ 2019-09-12 16:23 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson

13/08/2019 01:03, Thomas Monjalon:
> While testing compilation of mlx drivers,
> I hit some issues and misses.
> The result is 6 patches of cleanup, fixes and test improvements.
> 
> Thomas Monjalon (6):
>   build: remove redundant libs from pkgconfig
>   drivers: add some reasons for meson disabling
>   net/mlx: fix meson build with custom dependency path
>   net/mlx: fix build with make and recent gcc
>   devtools: test compiler availability only once
>   devtools: load target-specific compilation environment
> 
>  devtools/test-meson-builds.sh         | 52 +++++++++++++++++----------
>  drivers/baseband/turbo_sw/meson.build |  1 +
>  drivers/compress/isal/meson.build     |  1 -
>  drivers/net/af_xdp/meson.build        |  1 -
>  drivers/net/memif/meson.build         |  5 +--
>  drivers/net/mlx4/Makefile             |  3 +-
>  drivers/net/mlx4/meson.build          |  9 ++---
>  drivers/net/mlx5/Makefile             |  3 +-
>  drivers/net/mlx5/meson.build          |  7 ++--
>  drivers/raw/ioat/meson.build          |  1 +
>  10 files changed, 52 insertions(+), 31 deletions(-)

Applied




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-09-12 16:23 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-12 23:03 [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon
2019-08-12 23:03 ` [dpdk-dev] [PATCH 1/6] build: remove redundant libs from pkgconfig Thomas Monjalon
2019-08-13  9:37   ` Luca Boccassi
2019-08-12 23:03 ` [dpdk-dev] [PATCH 2/6] drivers: add some reasons for meson disabling Thomas Monjalon
2019-08-13  9:38   ` Luca Boccassi
2019-08-12 23:03 ` [dpdk-dev] [PATCH 3/6] net/mlx: fix meson build with custom dependency path Thomas Monjalon
2019-08-13  9:38   ` Luca Boccassi
2019-08-14  8:39   ` Matan Azrad
2019-08-12 23:03 ` [dpdk-dev] [PATCH 4/6] net/mlx: fix build with make and recent gcc Thomas Monjalon
2019-08-13  9:39   ` [dpdk-dev] [dpdk-stable] " Luca Boccassi
2019-08-14 10:19   ` [dpdk-dev] " Matan Azrad
2019-08-12 23:03 ` [dpdk-dev] [PATCH 5/6] devtools: test compiler availability only once Thomas Monjalon
2019-08-13  9:40   ` Luca Boccassi
2019-08-12 23:03 ` [dpdk-dev] [PATCH 6/6] devtools: load target-specific compilation environment Thomas Monjalon
2019-08-13  9:41   ` Luca Boccassi
2019-09-12 16:23 ` [dpdk-dev] [PATCH 0/6] build system improvements Thomas Monjalon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.