public inbox for dev@dpdk.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] devtools: test different build types
@ 2021-04-12 21:53 Thomas Monjalon
  2021-05-21 15:03 ` David Marchand
                   ` (4 more replies)
  0 siblings, 5 replies; 44+ messages in thread
From: Thomas Monjalon @ 2021-04-12 21:53 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand

All builds were of type debugoptimized.
It is kept only for builds having an ABI check.
Others will have the default build type (release),
except if specified differently as in the x86 generic build
which will be a test of the non-optimized debug build type.
Some static builds will test the minsize build type.

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

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index daf817ac3e..37f258bd48 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -92,13 +92,16 @@ load_env () # <target compiler>
 	command -v $targetcc >/dev/null 2>&1 || return 1
 }
 
-config () # <dir> <builddir> <meson options>
+config () # <dir> <builddir> <ABI check> <meson options>
 {
 	dir=$1
 	shift
 	builddir=$1
 	shift
+	abicheck=$1
+	shift
 	if [ -f "$builddir/build.ninja" ] ; then
+		[ $abicheck = ABI ] || return 0
 		# for existing environments, switch to debugoptimized if unset
 		# so that ABI checks can run
 		if ! $MESON configure $builddir |
@@ -114,7 +117,9 @@ config () # <dir> <builddir> <meson options>
 	else
 		options="$options -Dexamples=l3fwd" # save disk space
 	fi
-	options="$options --buildtype=debugoptimized"
+	if [ $abicheck = ABI ] ; then
+		options="$options --buildtype=debugoptimized"
+	fi
 	for option in $DPDK_MESON_OPTIONS ; do
 		options="$options -D$option"
 	done
@@ -165,7 +170,7 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 		cross=
 	fi
 	load_env $targetcc || return 0
-	config $srcdir $builds_dir/$targetdir $cross --werror $*
+	config $srcdir $builds_dir/$targetdir $abicheck $cross --werror $*
 	compile $builds_dir/$targetdir
 	if [ -n "$DPDK_ABI_REF_VERSION" -a "$abicheck" = ABI ] ; then
 		abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION
@@ -179,7 +184,7 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 			fi
 
 			rm -rf $abirefdir/build
-			config $abirefdir/src $abirefdir/build $cross \
+			config $abirefdir/src $abirefdir/build $abicheck $cross \
 				-Dexamples= $*
 			compile $abirefdir/build
 			install_target $abirefdir/build $abirefdir/$targetdir
@@ -213,9 +218,10 @@ for c in gcc clang ; do
 			abicheck=ABI
 		else
 			abicheck=skipABI # save time and disk space
+			buildtype='--buildtype=minsize'
 		fi
 		export CC="$CCACHE $c"
-		build build-$c-$s $c $abicheck --default-library=$s
+		build build-$c-$s $c $abicheck $buildtype --default-library=$s
 		unset CC
 	done
 done
@@ -227,7 +233,7 @@ generic_machine='nehalem'
 if ! check_cc_flags "-march=$generic_machine" ; then
 	generic_machine='corei7'
 fi
-build build-x86-generic cc skipABI -Dcheck_includes=true \
+build build-x86-generic cc skipABI --buildtype=debug -Dcheck_includes=true \
 	-Dlibdir=lib -Dmachine=$generic_machine $use_shared
 
 # 32-bit with default compiler
-- 
2.31.1


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

* Re: [dpdk-dev] [PATCH] devtools: test different build types
  2021-04-12 21:53 [dpdk-dev] [PATCH] devtools: test different build types Thomas Monjalon
@ 2021-05-21 15:03 ` David Marchand
  2021-07-23 20:26   ` Andrew Rybchenko
  2021-08-02 22:45 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 44+ messages in thread
From: David Marchand @ 2021-05-21 15:03 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Bruce Richardson

On Mon, Apr 12, 2021 at 11:54 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> @@ -213,9 +218,10 @@ for c in gcc clang ; do
>                         abicheck=ABI

init of buildtype var is missing here.

Rest lgtm.

>                 else
>                         abicheck=skipABI # save time and disk space
> +                       buildtype='--buildtype=minsize'
>                 fi
>                 export CC="$CCACHE $c"
> -               build build-$c-$s $c $abicheck --default-library=$s
> +               build build-$c-$s $c $abicheck $buildtype --default-library=$s
>                 unset CC
>         done
>  done


-- 
David Marchand


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

* Re: [dpdk-dev] [PATCH] devtools: test different build types
  2021-05-21 15:03 ` David Marchand
@ 2021-07-23 20:26   ` Andrew Rybchenko
  0 siblings, 0 replies; 44+ messages in thread
From: Andrew Rybchenko @ 2021-07-23 20:26 UTC (permalink / raw)
  To: David Marchand, Thomas Monjalon; +Cc: dev, Bruce Richardson

On 5/21/21 6:03 PM, David Marchand wrote:
> On Mon, Apr 12, 2021 at 11:54 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>> @@ -213,9 +218,10 @@ for c in gcc clang ; do
>>                          abicheck=ABI
> 
> init of buildtype var is missing here.

+1

> Rest lgtm.
> 
>>                  else
>>                          abicheck=skipABI # save time and disk space
>> +                       buildtype='--buildtype=minsize'
>>                  fi
>>                  export CC="$CCACHE $c"
>> -               build build-$c-$s $c $abicheck --default-library=$s
>> +               build build-$c-$s $c $abicheck $buildtype --default-library=$s
>>                  unset CC
>>          done
>>   done
> 
> 

with review notes applied:

Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

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

* [dpdk-dev] [PATCH v2] devtools: test different build types
  2021-04-12 21:53 [dpdk-dev] [PATCH] devtools: test different build types Thomas Monjalon
  2021-05-21 15:03 ` David Marchand
@ 2021-08-02 22:45 ` Thomas Monjalon
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-02 22:45 UTC (permalink / raw)
  To: dev; +Cc: Andrew Rybchenko, Bruce Richardson

All builds were of type debugoptimized.
It is kept only for builds having an ABI check.
Others will have the default build type (release),
except if specified differently as in the x86 generic build
which will be a test of the non-optimized debug build type.
Some static builds will test the minsize build type.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
v2: fix init of var buildtype
---
 devtools/test-meson-builds.sh | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 9ec8e2bc7e..7bd305a669 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -92,13 +92,16 @@ load_env () # <target compiler>
 	command -v $targetcc >/dev/null 2>&1 || return 1
 }
 
-config () # <dir> <builddir> <meson options>
+config () # <dir> <builddir> <ABI check> <meson options>
 {
 	dir=$1
 	shift
 	builddir=$1
 	shift
+	abicheck=$1
+	shift
 	if [ -f "$builddir/build.ninja" ] ; then
+		[ $abicheck = ABI ] || return 0
 		# for existing environments, switch to debugoptimized if unset
 		# so that ABI checks can run
 		if ! $MESON configure $builddir |
@@ -114,7 +117,9 @@ config () # <dir> <builddir> <meson options>
 	else
 		options="$options -Dexamples=l3fwd" # save disk space
 	fi
-	options="$options --buildtype=debugoptimized"
+	if [ $abicheck = ABI ] ; then
+		options="$options --buildtype=debugoptimized"
+	fi
 	for option in $DPDK_MESON_OPTIONS ; do
 		options="$options -D$option"
 	done
@@ -165,7 +170,7 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 		cross=
 	fi
 	load_env $targetcc || return 0
-	config $srcdir $builds_dir/$targetdir $cross --werror $*
+	config $srcdir $builds_dir/$targetdir $abicheck $cross --werror $*
 	compile $builds_dir/$targetdir
 	if [ -n "$DPDK_ABI_REF_VERSION" -a "$abicheck" = ABI ] ; then
 		abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION
@@ -179,7 +184,7 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 			fi
 
 			rm -rf $abirefdir/build
-			config $abirefdir/src $abirefdir/build $cross \
+			config $abirefdir/src $abirefdir/build $abicheck $cross \
 				-Dexamples= $*
 			compile $abirefdir/build
 			install_target $abirefdir/build $abirefdir/$targetdir
@@ -211,11 +216,13 @@ for c in gcc clang ; do
 	for s in static shared ; do
 		if [ $s = shared ] ; then
 			abicheck=ABI
+			buildtype=
 		else
 			abicheck=skipABI # save time and disk space
+			buildtype='--buildtype=minsize'
 		fi
 		export CC="$CCACHE $c"
-		build build-$c-$s $c $abicheck --default-library=$s
+		build build-$c-$s $c $abicheck $buildtype --default-library=$s
 		unset CC
 	done
 done
@@ -227,7 +234,7 @@ generic_isa='nehalem'
 if ! check_cc_flags "-march=$generic_isa" ; then
 	generic_isa='corei7'
 fi
-build build-x86-generic cc skipABI -Dcheck_includes=true \
+build build-x86-generic cc skipABI --buildtype=debug -Dcheck_includes=true \
 	-Dlibdir=lib -Dcpu_instruction_set=$generic_isa $use_shared
 
 # 32-bit with default compiler
-- 
2.31.1


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

* [dpdk-dev] [PATCH v3 0/5] more build tests
  2021-04-12 21:53 [dpdk-dev] [PATCH] devtools: test different build types Thomas Monjalon
  2021-05-21 15:03 ` David Marchand
  2021-08-02 22:45 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
@ 2021-08-08 12:51 ` Thomas Monjalon
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 1/5] net/qede: fix minsize build Thomas Monjalon
                     ` (6 more replies)
  2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
  4 siblings, 7 replies; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-08 12:51 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand

While testing more build types, some errors occur.

v3: fix minsize build with GCC
v2: fix init of var buildtype

Thomas Monjalon (5):
  net/qede: fix minsize build
  regex/mlx5: fix minsize build
  vdpa/mlx5: fix minsize build
  test/crypto: fix minsize build
  devtools: test different build types

 app/test/test_cryptodev_blockcipher.c    |  2 +-
 devtools/test-meson-builds.sh            | 19 +++++++++++++------
 drivers/net/qede/qede_rxtx.c             |  3 ++-
 drivers/regex/mlx5/mlx5_regex_fastpath.c |  3 ++-
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c        |  4 ++--
 5 files changed, 20 insertions(+), 11 deletions(-)

-- 
2.31.1


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

* [dpdk-dev] [PATCH v3 1/5] net/qede: fix minsize build
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
@ 2021-08-08 12:51   ` Thomas Monjalon
  2021-08-09  5:15     ` [dpdk-dev] [EXT] " Devendra Singh Rawat
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 2/5] regex/mlx5: " Thomas Monjalon
                     ` (5 subsequent siblings)
  6 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-08 12:51 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand, Rasesh Mody,
	Devendra Singh Rawat

Error occurs when configuring meson with --buildtype=minsize
with GCC 11.1.0:

In function ‘__internal_ram_wr_relaxed’,
    inlined from ‘internal_ram_wr’ at ecore_int_api.h:166:2,
    inlined from ‘qede_update_rx_prod.constprop’ at qede_rxtx.c:736:2:
drivers/net/qede/base/bcm_osal.h:136:9: error:
‘rx_prods’ is used uninitialized [-Werror=uninitialized]
|         rte_write32_relaxed((_val), (_reg_addr))
|         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ecore_int_api.h:151:17: note: in expansion of macro ‘DIRECT_REG_WR_RELAXED’
|                 DIRECT_REG_WR_RELAXED(p_hwfn, &((u32 OSAL_IOMEM *)addr)[i],
|                 ^~~~~~~~~~~~~~~~~~~~~
drivers/net/qede/qede_rxtx.c: In function ‘qede_update_rx_prod.constprop’:
drivers/net/qede/qede_rxtx.c:724:33: note: ‘rx_prods’ declared here
|         struct eth_rx_prod_data rx_prods = { 0 };
|                                 ^~~~~~~~

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/net/qede/qede_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index 298f4e3e42..35cde561ba 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -721,9 +721,10 @@ qede_update_rx_prod(__rte_unused struct qede_dev *edev,
 {
 	uint16_t bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring);
 	uint16_t cqe_prod = ecore_chain_get_prod_idx(&rxq->rx_comp_ring);
-	struct eth_rx_prod_data rx_prods = { 0 };
+	struct eth_rx_prod_data rx_prods;
 
 	/* Update producers */
+	memset(&rx_prods, 0, sizeof(rx_prods));
 	rx_prods.bd_prod = rte_cpu_to_le_16(bd_prod);
 	rx_prods.cqe_prod = rte_cpu_to_le_16(cqe_prod);
 
-- 
2.31.1


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

* [dpdk-dev] [PATCH v3 2/5] regex/mlx5: fix minsize build
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 1/5] net/qede: fix minsize build Thomas Monjalon
@ 2021-08-08 12:51   ` Thomas Monjalon
  2021-08-11  8:48     ` Ruifeng Wang
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: " Thomas Monjalon
                     ` (4 subsequent siblings)
  6 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-08 12:51 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand, Ori Kam

Error occurs when configuring meson with --buildtype=minsize
with GCC 11.1.0:

drivers/regex/mlx5/mlx5_regex_fastpath.c:398:17: error:
‘len’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
|                 complete_umr_wqe(qp, sq, &qp->jobs[mkey_job_id], sq->pi,
|                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|                                  klm_num, len);
|                                  ~~~~~~~~~~~~~
drivers/regex/mlx5/mlx5_regex_fastpath.c:315:31: note: ‘len’ was declared here
|         uint32_t klm_num = 0, len;
|                               ^~~

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/regex/mlx5/mlx5_regex_fastpath.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/regex/mlx5/mlx5_regex_fastpath.c b/drivers/regex/mlx5/mlx5_regex_fastpath.c
index 786718af53..c79445ce7d 100644
--- a/drivers/regex/mlx5/mlx5_regex_fastpath.c
+++ b/drivers/regex/mlx5/mlx5_regex_fastpath.c
@@ -312,7 +312,8 @@ prep_regex_umr_wqe_set(struct mlx5_regex_priv *priv, struct mlx5_regex_qp *qp,
 	struct mlx5_regex_job *job = NULL;
 	size_t sqid = sq->sqn, mkey_job_id = 0;
 	size_t left_ops = nb_ops;
-	uint32_t klm_num = 0, len;
+	uint32_t klm_num = 0;
+	uint32_t len = 0;
 	struct mlx5_klm *mkey_klm = NULL;
 	struct mlx5_klm klm;
 
-- 
2.31.1


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

* [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: fix minsize build
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 1/5] net/qede: fix minsize build Thomas Monjalon
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 2/5] regex/mlx5: " Thomas Monjalon
@ 2021-08-08 12:51   ` Thomas Monjalon
  2021-08-09  6:43     ` Matan Azrad
  2021-08-11  8:48     ` Ruifeng Wang
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 4/5] test/crypto: " Thomas Monjalon
                     ` (3 subsequent siblings)
  6 siblings, 2 replies; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-08 12:51 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand, Matan Azrad,
	Viacheslav Ovsiienko

Error occurs when configuring meson with --buildtype=minsize
with GCC 11.1.0:

drivers/vdpa/mlx5/mlx5_vdpa_mem.c: In function ‘mlx5_vdpa_mem_register’:
drivers/vdpa/mlx5/mlx5_vdpa_mem.c:183:24: error:
initialization of ‘uint64_t’ {aka ‘long unsigned int’} from ‘void *’
makes integer from pointer without a cast [-Werror=int-conversion]
|         uint64_t gcd = NULL;
|                        ^~~~
drivers/vdpa/mlx5/mlx5_vdpa_mem.c:244:75: error:
‘mode’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
|                         klm_size = mode == MLX5_MKC_ACCESS_MODE_KLM ?
|                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|                               KLM_SIZE_MAX_ALIGN(empty_region_sz) : gcd;
|                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/vdpa/mlx5/mlx5_vdpa_mem.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_mem.c b/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
index a13bde5a0b..59ce4e891c 100644
--- a/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
+++ b/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
@@ -177,10 +177,10 @@ mlx5_vdpa_mem_register(struct mlx5_vdpa_priv *priv)
 	struct mlx5_devx_mkey_attr mkey_attr;
 	struct mlx5_vdpa_query_mr *entry = NULL;
 	struct rte_vhost_mem_region *reg = NULL;
-	uint8_t mode;
+	uint8_t mode = 0;
 	uint32_t entries_num = 0;
 	uint32_t i;
-	uint64_t gcd;
+	uint64_t gcd = 0;
 	uint64_t klm_size;
 	uint64_t mem_size;
 	uint64_t k;
-- 
2.31.1


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

* [dpdk-dev] [PATCH v3 4/5] test/crypto: fix minsize build
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
                     ` (2 preceding siblings ...)
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: " Thomas Monjalon
@ 2021-08-08 12:51   ` Thomas Monjalon
  2021-08-11  8:48     ` Ruifeng Wang
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 5/5] devtools: test different build types Thomas Monjalon
                     ` (2 subsequent siblings)
  6 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-08 12:51 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand, Akhil Goyal, Declan Doherty

Error occurs when configuring meson with --buildtype=minsize
with GCC 11.1.0:

app/test/test_cryptodev_blockcipher.c:1133:45: error:
‘blk_tcs’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
|         const struct blockcipher_test_case *blk_tcs;
|                                             ^~~~~~~

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 app/test/test_cryptodev_blockcipher.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/test/test_cryptodev_blockcipher.c b/app/test/test_cryptodev_blockcipher.c
index 53fd4718af..0d5082887e 100644
--- a/app/test/test_cryptodev_blockcipher.c
+++ b/app/test/test_cryptodev_blockcipher.c
@@ -1184,7 +1184,7 @@ build_blockcipher_test_suite(enum blockcipher_test_type test_type)
 		ts_setup = authonly_setup;
 		break;
 	default:
-		break;
+		return NULL;
 	}
 
 	ts = calloc(1, sizeof(struct unit_test_suite) +
-- 
2.31.1


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

* [dpdk-dev] [PATCH v3 5/5] devtools: test different build types
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
                     ` (3 preceding siblings ...)
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 4/5] test/crypto: " Thomas Monjalon
@ 2021-08-08 12:51   ` Thomas Monjalon
  2024-08-15 16:26     ` Stephen Hemminger
  2021-09-15 20:27   ` [dpdk-dev] [PATCH v3 0/5] more build tests Ferruh Yigit
  2021-09-16  7:05   ` David Marchand
  6 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2021-08-08 12:51 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, david.marchand, Andrew Rybchenko

All builds were of type debugoptimized.
It is kept only for builds having an ABI check.
Others will have the default build type (release),
except if specified differently as in the x86 generic build
which will be a test of the non-optimized debug build type.
Some static builds will test the minsize build type.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

---

This patch cannot be merged now because it makes clang 11.1.0 crashing.
---
 devtools/test-meson-builds.sh | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 9ec8e2bc7e..7bd305a669 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -92,13 +92,16 @@ load_env () # <target compiler>
 	command -v $targetcc >/dev/null 2>&1 || return 1
 }
 
-config () # <dir> <builddir> <meson options>
+config () # <dir> <builddir> <ABI check> <meson options>
 {
 	dir=$1
 	shift
 	builddir=$1
 	shift
+	abicheck=$1
+	shift
 	if [ -f "$builddir/build.ninja" ] ; then
+		[ $abicheck = ABI ] || return 0
 		# for existing environments, switch to debugoptimized if unset
 		# so that ABI checks can run
 		if ! $MESON configure $builddir |
@@ -114,7 +117,9 @@ config () # <dir> <builddir> <meson options>
 	else
 		options="$options -Dexamples=l3fwd" # save disk space
 	fi
-	options="$options --buildtype=debugoptimized"
+	if [ $abicheck = ABI ] ; then
+		options="$options --buildtype=debugoptimized"
+	fi
 	for option in $DPDK_MESON_OPTIONS ; do
 		options="$options -D$option"
 	done
@@ -165,7 +170,7 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 		cross=
 	fi
 	load_env $targetcc || return 0
-	config $srcdir $builds_dir/$targetdir $cross --werror $*
+	config $srcdir $builds_dir/$targetdir $abicheck $cross --werror $*
 	compile $builds_dir/$targetdir
 	if [ -n "$DPDK_ABI_REF_VERSION" -a "$abicheck" = ABI ] ; then
 		abirefdir=${DPDK_ABI_REF_DIR:-reference}/$DPDK_ABI_REF_VERSION
@@ -179,7 +184,7 @@ build () # <directory> <target cc | cross file> <ABI check> [meson options]
 			fi
 
 			rm -rf $abirefdir/build
-			config $abirefdir/src $abirefdir/build $cross \
+			config $abirefdir/src $abirefdir/build $abicheck $cross \
 				-Dexamples= $*
 			compile $abirefdir/build
 			install_target $abirefdir/build $abirefdir/$targetdir
@@ -211,11 +216,13 @@ for c in gcc clang ; do
 	for s in static shared ; do
 		if [ $s = shared ] ; then
 			abicheck=ABI
+			buildtype=
 		else
 			abicheck=skipABI # save time and disk space
+			buildtype='--buildtype=minsize'
 		fi
 		export CC="$CCACHE $c"
-		build build-$c-$s $c $abicheck --default-library=$s
+		build build-$c-$s $c $abicheck $buildtype --default-library=$s
 		unset CC
 	done
 done
@@ -227,7 +234,7 @@ generic_isa='nehalem'
 if ! check_cc_flags "-march=$generic_isa" ; then
 	generic_isa='corei7'
 fi
-build build-x86-generic cc skipABI -Dcheck_includes=true \
+build build-x86-generic cc skipABI --buildtype=debug -Dcheck_includes=true \
 	-Dlibdir=lib -Dcpu_instruction_set=$generic_isa $use_shared
 
 # 32-bit with default compiler
-- 
2.31.1


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

* Re: [dpdk-dev] [EXT] [PATCH v3 1/5] net/qede: fix minsize build
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 1/5] net/qede: fix minsize build Thomas Monjalon
@ 2021-08-09  5:15     ` Devendra Singh Rawat
  2021-08-09  7:11       ` Rasesh Mody
  2021-09-15 15:16       ` David Marchand
  0 siblings, 2 replies; 44+ messages in thread
From: Devendra Singh Rawat @ 2021-08-09  5:15 UTC (permalink / raw)
  To: Thomas Monjalon, dev@dpdk.org
  Cc: bruce.richardson@intel.com, david.marchand@redhat.com,
	Rasesh Mody



-----Original Message-----
From: Thomas Monjalon <thomas@monjalon.net> 
Sent: Sunday, August 8, 2021 6:22 PM
To: dev@dpdk.org
Cc: bruce.richardson@intel.com; david.marchand@redhat.com; Rasesh Mody <rmody@marvell.com>; Devendra Singh Rawat <dsinghrawat@marvell.com>
Subject: [EXT] [PATCH v3 1/5] net/qede: fix minsize build

External Email

----------------------------------------------------------------------
Error occurs when configuring meson with --buildtype=minsize with GCC 11.1.0:

In function ‘__internal_ram_wr_relaxed’,
    inlined from ‘internal_ram_wr’ at ecore_int_api.h:166:2,
    inlined from ‘qede_update_rx_prod.constprop’ at qede_rxtx.c:736:2:
drivers/net/qede/base/bcm_osal.h:136:9: error:
‘rx_prods’ is used uninitialized [-Werror=uninitialized]
|         rte_write32_relaxed((_val), (_reg_addr))
|         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ecore_int_api.h:151:17: note: in expansion of macro ‘DIRECT_REG_WR_RELAXED’
|                 DIRECT_REG_WR_RELAXED(p_hwfn, &((u32 OSAL_IOMEM *)addr)[i],
|                 ^~~~~~~~~~~~~~~~~~~~~
drivers/net/qede/qede_rxtx.c: In function ‘qede_update_rx_prod.constprop’:
drivers/net/qede/qede_rxtx.c:724:33: note: ‘rx_prods’ declared here
|         struct eth_rx_prod_data rx_prods = { 0 };
|                                 ^~~~~~~~

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/net/qede/qede_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c index 298f4e3e42..35cde561ba 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -721,9 +721,10 @@ qede_update_rx_prod(__rte_unused struct qede_dev *edev,  {
 	uint16_t bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring);
 	uint16_t cqe_prod = ecore_chain_get_prod_idx(&rxq->rx_comp_ring);
-	struct eth_rx_prod_data rx_prods = { 0 };
+	struct eth_rx_prod_data rx_prods;
 
 	/* Update producers */
+	memset(&rx_prods, 0, sizeof(rx_prods));
 	rx_prods.bd_prod = rte_cpu_to_le_16(bd_prod);
 	rx_prods.cqe_prod = rte_cpu_to_le_16(cqe_prod);
 
--
2.31.1

ACKed.

Thanks,
Devendra

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

* Re: [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: fix minsize build
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: " Thomas Monjalon
@ 2021-08-09  6:43     ` Matan Azrad
  2021-08-11  8:48     ` Ruifeng Wang
  1 sibling, 0 replies; 44+ messages in thread
From: Matan Azrad @ 2021-08-09  6:43 UTC (permalink / raw)
  To: NBU-Contact-Thomas Monjalon, dev@dpdk.org
  Cc: bruce.richardson@intel.com, david.marchand@redhat.com,
	Slava Ovsiienko



From: Thomas Monjalon
> Error occurs when configuring meson with --buildtype=minsize with GCC
> 11.1.0:
> 
> drivers/vdpa/mlx5/mlx5_vdpa_mem.c: In function
> ‘mlx5_vdpa_mem_register’:
> drivers/vdpa/mlx5/mlx5_vdpa_mem.c:183:24: error:
> initialization of ‘uint64_t’ {aka ‘long unsigned int’} from ‘void *’
> makes integer from pointer without a cast [-Werror=int-conversion]
> |         uint64_t gcd = NULL;
> |                        ^~~~
> drivers/vdpa/mlx5/mlx5_vdpa_mem.c:244:75: error:
> ‘mode’ may be used uninitialized in this function [-Werror=maybe-
> uninitialized]
> |                         klm_size = mode == MLX5_MKC_ACCESS_MODE_KLM ?
> |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> |                               KLM_SIZE_MAX_ALIGN(empty_region_sz) : gcd;
> |
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Matan Azrad <matan@nvidia.com>

Thanks

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

* Re: [dpdk-dev] [EXT] [PATCH v3 1/5] net/qede: fix minsize build
  2021-08-09  5:15     ` [dpdk-dev] [EXT] " Devendra Singh Rawat
@ 2021-08-09  7:11       ` Rasesh Mody
  2021-09-15 15:16       ` David Marchand
  1 sibling, 0 replies; 44+ messages in thread
From: Rasesh Mody @ 2021-08-09  7:11 UTC (permalink / raw)
  To: Devendra Singh Rawat, Thomas Monjalon, dev@dpdk.org
  Cc: bruce.richardson@intel.com, david.marchand@redhat.com



> From: Devendra Singh Rawat <dsinghrawat@marvell.com>
> Sent: Monday, August 9, 2021 10:46 AM
> 
> 
> 
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Sunday, August 8, 2021 6:22 PM
> To: dev@dpdk.org
> Cc: bruce.richardson@intel.com; david.marchand@redhat.com; Rasesh
> Mody <rmody@marvell.com>; Devendra Singh Rawat
> <dsinghrawat@marvell.com>
> Subject: [EXT] [PATCH v3 1/5] net/qede: fix minsize build
> 
> External Email
> 
> ----------------------------------------------------------------------
> Error occurs when configuring meson with --buildtype=minsize with GCC
> 11.1.0:
> 
> In function ‘__internal_ram_wr_relaxed’,
>     inlined from ‘internal_ram_wr’ at ecore_int_api.h:166:2,
>     inlined from ‘qede_update_rx_prod.constprop’ at qede_rxtx.c:736:2:
> drivers/net/qede/base/bcm_osal.h:136:9: error:
> ‘rx_prods’ is used uninitialized [-Werror=uninitialized]
> |         rte_write32_relaxed((_val), (_reg_addr))
> |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ecore_int_api.h:151:17: note: in expansion of macro
> ‘DIRECT_REG_WR_RELAXED’
> |                 DIRECT_REG_WR_RELAXED(p_hwfn, &((u32 OSAL_IOMEM
> *)addr)[i],
> |                 ^~~~~~~~~~~~~~~~~~~~~
> drivers/net/qede/qede_rxtx.c: In function
> ‘qede_update_rx_prod.constprop’:
> drivers/net/qede/qede_rxtx.c:724:33: note: ‘rx_prods’ declared here
> |         struct eth_rx_prod_data rx_prods = { 0 };
> |                                 ^~~~~~~~
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Rasesh Mody <rmody@marvell.com>

> ---
>  drivers/net/qede/qede_rxtx.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
> index 298f4e3e42..35cde561ba 100644
> --- a/drivers/net/qede/qede_rxtx.c
> +++ b/drivers/net/qede/qede_rxtx.c
> @@ -721,9 +721,10 @@ qede_update_rx_prod(__rte_unused struct
> qede_dev *edev,  {
>  	uint16_t bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring);
>  	uint16_t cqe_prod = ecore_chain_get_prod_idx(&rxq-
> >rx_comp_ring);
> -	struct eth_rx_prod_data rx_prods = { 0 };
> +	struct eth_rx_prod_data rx_prods;
> 
>  	/* Update producers */
> +	memset(&rx_prods, 0, sizeof(rx_prods));
>  	rx_prods.bd_prod = rte_cpu_to_le_16(bd_prod);
>  	rx_prods.cqe_prod = rte_cpu_to_le_16(cqe_prod);
> 
> --
> 2.31.1
> 
> ACKed.
> 
> Thanks,
> Devendra

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

* Re: [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: fix minsize build
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: " Thomas Monjalon
  2021-08-09  6:43     ` Matan Azrad
@ 2021-08-11  8:48     ` Ruifeng Wang
  1 sibling, 0 replies; 44+ messages in thread
From: Ruifeng Wang @ 2021-08-11  8:48 UTC (permalink / raw)
  To: thomas@monjalon.net, dev@dpdk.org
  Cc: bruce.richardson@intel.com, david.marchand@redhat.com,
	Matan Azrad, Viacheslav Ovsiienko, nd

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> Sent: Sunday, August 8, 2021 8:52 PM
> To: dev@dpdk.org
> Cc: bruce.richardson@intel.com; david.marchand@redhat.com; Matan Azrad
> <matan@nvidia.com>; Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> Subject: [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: fix minsize build
> 
> Error occurs when configuring meson with --buildtype=minsize with GCC
> 11.1.0:
> 
> drivers/vdpa/mlx5/mlx5_vdpa_mem.c: In function
> ‘mlx5_vdpa_mem_register’:
> drivers/vdpa/mlx5/mlx5_vdpa_mem.c:183:24: error:
> initialization of ‘uint64_t’ {aka ‘long unsigned int’} from ‘void *’
> makes integer from pointer without a cast [-Werror=int-conversion]
> |         uint64_t gcd = NULL;
> |                        ^~~~
> drivers/vdpa/mlx5/mlx5_vdpa_mem.c:244:75: error:
> ‘mode’ may be used uninitialized in this function [-Werror=maybe-
> uninitialized]
> |                         klm_size = mode == MLX5_MKC_ACCESS_MODE_KLM ?
> |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> |                               KLM_SIZE_MAX_ALIGN(empty_region_sz) : gcd;
> |
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  drivers/vdpa/mlx5/mlx5_vdpa_mem.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
> b/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
> index a13bde5a0b..59ce4e891c 100644
> --- a/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
> +++ b/drivers/vdpa/mlx5/mlx5_vdpa_mem.c
> @@ -177,10 +177,10 @@ mlx5_vdpa_mem_register(struct mlx5_vdpa_priv
> *priv)
>  	struct mlx5_devx_mkey_attr mkey_attr;
>  	struct mlx5_vdpa_query_mr *entry = NULL;
>  	struct rte_vhost_mem_region *reg = NULL;
> -	uint8_t mode;
> +	uint8_t mode = 0;
>  	uint32_t entries_num = 0;
>  	uint32_t i;
> -	uint64_t gcd;
> +	uint64_t gcd = 0;
>  	uint64_t klm_size;
>  	uint64_t mem_size;
>  	uint64_t k;
> --
> 2.31.1
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>

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

* Re: [dpdk-dev] [PATCH v3 2/5] regex/mlx5: fix minsize build
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 2/5] regex/mlx5: " Thomas Monjalon
@ 2021-08-11  8:48     ` Ruifeng Wang
  0 siblings, 0 replies; 44+ messages in thread
From: Ruifeng Wang @ 2021-08-11  8:48 UTC (permalink / raw)
  To: thomas@monjalon.net, dev@dpdk.org
  Cc: bruce.richardson@intel.com, david.marchand@redhat.com, Ori Kam,
	nd

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> Sent: Sunday, August 8, 2021 8:52 PM
> To: dev@dpdk.org
> Cc: bruce.richardson@intel.com; david.marchand@redhat.com; Ori Kam
> <orika@nvidia.com>
> Subject: [dpdk-dev] [PATCH v3 2/5] regex/mlx5: fix minsize build
> 
> Error occurs when configuring meson with --buildtype=minsize with GCC
> 11.1.0:
> 
> drivers/regex/mlx5/mlx5_regex_fastpath.c:398:17: error:
> ‘len’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
> |                 complete_umr_wqe(qp, sq, &qp->jobs[mkey_job_id], sq->pi,
> |
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> |                                  klm_num, len);
> |                                  ~~~~~~~~~~~~~
> drivers/regex/mlx5/mlx5_regex_fastpath.c:315:31: note: ‘len’ was declared
> here
> |         uint32_t klm_num = 0, len;
> |                               ^~~
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  drivers/regex/mlx5/mlx5_regex_fastpath.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/regex/mlx5/mlx5_regex_fastpath.c
> b/drivers/regex/mlx5/mlx5_regex_fastpath.c
> index 786718af53..c79445ce7d 100644
> --- a/drivers/regex/mlx5/mlx5_regex_fastpath.c
> +++ b/drivers/regex/mlx5/mlx5_regex_fastpath.c
> @@ -312,7 +312,8 @@ prep_regex_umr_wqe_set(struct mlx5_regex_priv
> *priv, struct mlx5_regex_qp *qp,
>  	struct mlx5_regex_job *job = NULL;
>  	size_t sqid = sq->sqn, mkey_job_id = 0;
>  	size_t left_ops = nb_ops;
> -	uint32_t klm_num = 0, len;
> +	uint32_t klm_num = 0;
> +	uint32_t len = 0;
>  	struct mlx5_klm *mkey_klm = NULL;
>  	struct mlx5_klm klm;
> 
> --
> 2.31.1
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>

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

* Re: [dpdk-dev] [PATCH v3 4/5] test/crypto: fix minsize build
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 4/5] test/crypto: " Thomas Monjalon
@ 2021-08-11  8:48     ` Ruifeng Wang
  0 siblings, 0 replies; 44+ messages in thread
From: Ruifeng Wang @ 2021-08-11  8:48 UTC (permalink / raw)
  To: thomas@monjalon.net, dev@dpdk.org
  Cc: bruce.richardson@intel.com, david.marchand@redhat.com,
	Akhil Goyal, Declan Doherty, nd

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> Sent: Sunday, August 8, 2021 8:52 PM
> To: dev@dpdk.org
> Cc: bruce.richardson@intel.com; david.marchand@redhat.com; Akhil Goyal
> <gakhil@marvell.com>; Declan Doherty <declan.doherty@intel.com>
> Subject: [dpdk-dev] [PATCH v3 4/5] test/crypto: fix minsize build
> 
> Error occurs when configuring meson with --buildtype=minsize with GCC
> 11.1.0:
> 
> app/test/test_cryptodev_blockcipher.c:1133:45: error:
> ‘blk_tcs’ may be used uninitialized in this function [-Werror=maybe-
> uninitialized]
> |         const struct blockcipher_test_case *blk_tcs;
> |                                             ^~~~~~~
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  app/test/test_cryptodev_blockcipher.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/app/test/test_cryptodev_blockcipher.c
> b/app/test/test_cryptodev_blockcipher.c
> index 53fd4718af..0d5082887e 100644
> --- a/app/test/test_cryptodev_blockcipher.c
> +++ b/app/test/test_cryptodev_blockcipher.c
> @@ -1184,7 +1184,7 @@ build_blockcipher_test_suite(enum
> blockcipher_test_type test_type)
>  		ts_setup = authonly_setup;
>  		break;
>  	default:
> -		break;
> +		return NULL;
>  	}
> 
>  	ts = calloc(1, sizeof(struct unit_test_suite) +
> --
> 2.31.1
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>

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

* Re: [dpdk-dev] [EXT] [PATCH v3 1/5] net/qede: fix minsize build
  2021-08-09  5:15     ` [dpdk-dev] [EXT] " Devendra Singh Rawat
  2021-08-09  7:11       ` Rasesh Mody
@ 2021-09-15 15:16       ` David Marchand
  1 sibling, 0 replies; 44+ messages in thread
From: David Marchand @ 2021-09-15 15:16 UTC (permalink / raw)
  To: Devendra Singh Rawat
  Cc: Thomas Monjalon, dev@dpdk.org, bruce.richardson@intel.com,
	Rasesh Mody

On Mon, Aug 9, 2021 at 7:15 AM Devendra Singh Rawat
<dsinghrawat@marvell.com> wrote:
>
>
>
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Sunday, August 8, 2021 6:22 PM
> To: dev@dpdk.org
> Cc: bruce.richardson@intel.com; david.marchand@redhat.com; Rasesh Mody <rmody@marvell.com>; Devendra Singh Rawat <dsinghrawat@marvell.com>
> Subject: [EXT] [PATCH v3 1/5] net/qede: fix minsize build
>
> External Email
>
> ----------------------------------------------------------------------
> Error occurs when configuring meson with --buildtype=minsize with GCC 11.1.0:
>
> In function ‘__internal_ram_wr_relaxed’,
>     inlined from ‘internal_ram_wr’ at ecore_int_api.h:166:2,
>     inlined from ‘qede_update_rx_prod.constprop’ at qede_rxtx.c:736:2:
> drivers/net/qede/base/bcm_osal.h:136:9: error:
> ‘rx_prods’ is used uninitialized [-Werror=uninitialized]
> |         rte_write32_relaxed((_val), (_reg_addr))
> |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ecore_int_api.h:151:17: note: in expansion of macro ‘DIRECT_REG_WR_RELAXED’
> |                 DIRECT_REG_WR_RELAXED(p_hwfn, &((u32 OSAL_IOMEM *)addr)[i],
> |                 ^~~~~~~~~~~~~~~~~~~~~
> drivers/net/qede/qede_rxtx.c: In function ‘qede_update_rx_prod.constprop’:
> drivers/net/qede/qede_rxtx.c:724:33: note: ‘rx_prods’ declared here
> |         struct eth_rx_prod_data rx_prods = { 0 };
> |                                 ^~~~~~~~
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

Can you configure your mail client so that it quotes the original mail
with some '> ' prefix?
Your reply confused patchwork which added back a SoB from Thomas.


> ---
>  drivers/net/qede/qede_rxtx.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c index 298f4e3e42..35cde561ba 100644
> --- a/drivers/net/qede/qede_rxtx.c
> +++ b/drivers/net/qede/qede_rxtx.c
> @@ -721,9 +721,10 @@ qede_update_rx_prod(__rte_unused struct qede_dev *edev,  {
>         uint16_t bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring);
>         uint16_t cqe_prod = ecore_chain_get_prod_idx(&rxq->rx_comp_ring);
> -       struct eth_rx_prod_data rx_prods = { 0 };
> +       struct eth_rx_prod_data rx_prods;
>
>         /* Update producers */
> +       memset(&rx_prods, 0, sizeof(rx_prods));
>         rx_prods.bd_prod = rte_cpu_to_le_16(bd_prod);
>         rx_prods.cqe_prod = rte_cpu_to_le_16(cqe_prod);
>
> --
> 2.31.1
>
> ACKed.

Please reply with a full tag so that patchwork catches it.

It saves me some time/brain cycles when applying patches.

Thanks.


-- 
David Marchand


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

* Re: [dpdk-dev] [PATCH v3 0/5] more build tests
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
                     ` (4 preceding siblings ...)
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 5/5] devtools: test different build types Thomas Monjalon
@ 2021-09-15 20:27   ` Ferruh Yigit
  2021-09-16  7:05   ` David Marchand
  6 siblings, 0 replies; 44+ messages in thread
From: Ferruh Yigit @ 2021-09-15 20:27 UTC (permalink / raw)
  To: Thomas Monjalon, dev; +Cc: bruce.richardson, david.marchand

On 8/8/2021 1:51 PM, Thomas Monjalon wrote:
> While testing more build types, some errors occur.
> 
> v3: fix minsize build with GCC
> v2: fix init of var buildtype
> 
> Thomas Monjalon (5):
>   net/qede: fix minsize build
>   regex/mlx5: fix minsize build
>   vdpa/mlx5: fix minsize build
>   test/crypto: fix minsize build
>   devtools: test different build types
> 
>  app/test/test_cryptodev_blockcipher.c    |  2 +-
>  devtools/test-meson-builds.sh            | 19 +++++++++++++------
>  drivers/net/qede/qede_rxtx.c             |  3 ++-
>  drivers/regex/mlx5/mlx5_regex_fastpath.c |  3 ++-
>  drivers/vdpa/mlx5/mlx5_vdpa_mem.c        |  4 ++--
>  5 files changed, 20 insertions(+), 11 deletions(-)
> 

With the 'test-meson-builds.sh' update (patch 5/5) clang crashes for me [1], it
can be related to my environment but I can reproduce the issue 100%.


When the patch 5/5 is dropped, I confirm it builds fine with
'--buildtype=minsize' meson option.

So _only for first four patches_:
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>


[1]
FAILED: drivers/libtmp_rte_crypto_ccp.a.p/crypto_ccp_ccp_dev.c.o
clang-12: error: clang frontend command failed with exit code 70 (use -v to see
invocation)

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

* Re: [dpdk-dev] [PATCH v3 0/5] more build tests
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
                     ` (5 preceding siblings ...)
  2021-09-15 20:27   ` [dpdk-dev] [PATCH v3 0/5] more build tests Ferruh Yigit
@ 2021-09-16  7:05   ` David Marchand
  6 siblings, 0 replies; 44+ messages in thread
From: David Marchand @ 2021-09-16  7:05 UTC (permalink / raw)
  To: Thomas Monjalon, Yigit, Ferruh; +Cc: dev, Bruce Richardson

On Sun, Aug 8, 2021 at 2:51 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> While testing more build types, some errors occur.
>
> v3: fix minsize build with GCC
> v2: fix init of var buildtype
>
> Thomas Monjalon (5):
>   net/qede: fix minsize build
>   regex/mlx5: fix minsize build
>   vdpa/mlx5: fix minsize build
>   test/crypto: fix minsize build
>   devtools: test different build types
>
>  app/test/test_cryptodev_blockcipher.c    |  2 +-
>  devtools/test-meson-builds.sh            | 19 +++++++++++++------
>  drivers/net/qede/qede_rxtx.c             |  3 ++-
>  drivers/regex/mlx5/mlx5_regex_fastpath.c |  3 ++-
>  drivers/vdpa/mlx5/mlx5_vdpa_mem.c        |  4 ++--
>  5 files changed, 20 insertions(+), 11 deletions(-)
>

Applied first 4 patches.
Thanks.


-- 
David Marchand


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

* Re: [dpdk-dev] [PATCH v3 5/5] devtools: test different build types
  2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 5/5] devtools: test different build types Thomas Monjalon
@ 2024-08-15 16:26     ` Stephen Hemminger
  0 siblings, 0 replies; 44+ messages in thread
From: Stephen Hemminger @ 2024-08-15 16:26 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, bruce.richardson, david.marchand, Andrew Rybchenko

On Sun,  8 Aug 2021 14:51:38 +0200
Thomas Monjalon <thomas@monjalon.net> wrote:

> All builds were of type debugoptimized.
> It is kept only for builds having an ABI check.
> Others will have the default build type (release),
> except if specified differently as in the x86 generic build
> which will be a test of the non-optimized debug build type.
> Some static builds will test the minsize build type.
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> 
> ---
> 
> This patch cannot be merged now because it makes clang 11.1.0 crashing.
> ---

Dropping this patch from patchwork because of the clang crash.

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

* [PATCH v4 0/4] more build tests
  2021-04-12 21:53 [dpdk-dev] [PATCH] devtools: test different build types Thomas Monjalon
                   ` (2 preceding siblings ...)
  2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
@ 2026-01-28 11:58 ` Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process Thomas Monjalon
                     ` (3 more replies)
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
  4 siblings, 4 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-01-28 11:58 UTC (permalink / raw)
  To: dev; +Cc: david.marchand

While testing more build types, some errors occur.

v4: fix new warnings with minsize
v3: fix minsize build with GCC
v2: fix init of var buildtype

Thomas Monjalon (4):
  bus/pci: fix unmap on failure in multi-process
  argparse: fix minsize build
  mldev: fix minsize build
  devtools: test different build types

 devtools/test-meson-builds.sh    | 6 ++++--
 drivers/bus/pci/linux/pci_vfio.c | 3 ++-
 lib/argparse/rte_argparse.c      | 2 +-
 lib/mldev/rte_mldev.c            | 2 +-
 4 files changed, 8 insertions(+), 5 deletions(-)

-- 
2.52.0


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

* [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process
  2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
@ 2026-01-28 11:58   ` Thomas Monjalon
  2026-01-28 14:11     ` Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 2/4] argparse: fix minsize build Thomas Monjalon
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2026-01-28 11:58 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Anatoly Burakov, Chenbo Xia, Nipun Gupta

This error is seen in build of type "minsize":

In function 'pci_vfio_map_resource_secondary':
drivers/bus/pci/linux/pci_vfio.c:1005:28: error:
'maps' may be used uninitialized [-Werror=maybe-uninitialized]
 1005 |                 if (maps[j].addr)

On failure before assigning maps, it was trying to unmap.
The fix is changing the goto destination after unmapping.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/bus/pci/linux/pci_vfio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index 242f567ed7..bc5c5c2499 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -968,7 +968,7 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
 
 	ret = pci_vfio_fill_regions(dev, vfio_dev_fd, &device_info);
 	if (ret)
-		goto err_vfio_dev_fd;
+		goto err_vfio_dev;
 
 	/* map BARs */
 	maps = vfio_res->maps;
@@ -1005,6 +1005,7 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
 		if (maps[j].addr)
 			pci_unmap_resource(maps[j].addr, maps[j].size);
 	}
+err_vfio_dev:
 	rte_vfio_release_device(rte_pci_get_sysfs_path(),
 			pci_addr, vfio_dev_fd);
 	return -1;
-- 
2.52.0


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

* [PATCH v4 2/4] argparse: fix minsize build
  2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process Thomas Monjalon
@ 2026-01-28 11:58   ` Thomas Monjalon
  2026-01-29  1:35     ` fengchengwen
  2026-01-28 11:58   ` [PATCH v4 3/4] mldev: " Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 4/4] devtools: test different build types Thomas Monjalon
  3 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2026-01-28 11:58 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Chengwen Feng

This error is seen in build of type "minsize":

In function 'parse_args', lib/argparse/rte_argparse.c:764:31: error:
'arg_idx' may be used uninitialized [-Werror=maybe-uninitialized]
  764 |                 if (arg_parsed[arg_idx] && !arg_attr_flag_multi(arg)) {
      |                               ^

It looks to be a compiler issue because we are not supposed
to reach this point in case of find_option_arg() failure.

The variable is initialized to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/argparse/rte_argparse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/argparse/rte_argparse.c b/lib/argparse/rte_argparse.c
index 9c3c5e7ae3..88c3e7740c 100644
--- a/lib/argparse/rte_argparse.c
+++ b/lib/argparse/rte_argparse.c
@@ -702,7 +702,7 @@ parse_args(const struct rte_argparse *obj, bool *arg_parsed,
 	const char *arg_name;
 	size_t n_args_to_move;
 	char **args_to_move;
-	uint32_t arg_idx;
+	uint32_t arg_idx = 0;
 	char *curr_argv;
 	char *value;
 	int ret;
-- 
2.52.0


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

* [PATCH v4 3/4] mldev: fix minsize build
  2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 2/4] argparse: fix minsize build Thomas Monjalon
@ 2026-01-28 11:58   ` Thomas Monjalon
  2026-01-28 11:58   ` [PATCH v4 4/4] devtools: test different build types Thomas Monjalon
  3 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-01-28 11:58 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Srikanth Yalavarthi

This error is seen in build of type "minsize":

In function 'rte_ml_dev_pmd_allocate':
lib/mldev/rte_mldev.c:84:16: error:
'dev' may be used uninitialized [-Werror=maybe-uninitialized]
   84 |         if (dev->data == NULL) {
      |             ~~~^~~~~~

It looks to be a compiler issue because we are not supposed
to reach this point without finding a device to assign.

The variable is initialized to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/mldev/rte_mldev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/mldev/rte_mldev.c b/lib/mldev/rte_mldev.c
index f5061f015c..7fae867882 100644
--- a/lib/mldev/rte_mldev.c
+++ b/lib/mldev/rte_mldev.c
@@ -55,7 +55,7 @@ rte_ml_dev_pmd_allocate(const char *name, uint8_t socket_id)
 {
 	char mz_name[RTE_MEMZONE_NAMESIZE];
 	const struct rte_memzone *mz;
-	struct rte_ml_dev *dev;
+	struct rte_ml_dev *dev = NULL;
 	int16_t dev_id;
 
 	/* implicit initialization of library before adding first device */
-- 
2.52.0


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

* [PATCH v4 4/4] devtools: test different build types
  2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
                     ` (2 preceding siblings ...)
  2026-01-28 11:58   ` [PATCH v4 3/4] mldev: " Thomas Monjalon
@ 2026-01-28 11:58   ` Thomas Monjalon
  3 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-01-28 11:58 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Andrew Rybchenko, Bruce Richardson

All builds were of type debugoptimized.
It is kept only for builds having an ABI check.
Others will have the default build type (release),
except if specified differently as in the x86 generic build
which will be a test of the non-optimized debug build type.
Some static builds will test the minsize build type.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 devtools/test-meson-builds.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 867a0a9c0c..11e4be3f88 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -233,13 +233,15 @@ for c in gcc clang ; do
 	for s in static shared ; do
 		if [ $s = shared ] ; then
 			abicheck=ABI
+			buildtype=
 			stdatomic=-Denable_stdatomic=true
 		else
 			abicheck=skipABI # save time and disk space
+			buildtype='--buildtype=minsize'
 			stdatomic=-Denable_stdatomic=false
 		fi
 		export CC="$CCACHE $c"
-		build build-$c-$s $c $abicheck $stdatomic --default-library=$s
+		build build-$c-$s $c $abicheck $buildtype $stdatomic --default-library=$s
 		unset CC
 	done
 done
@@ -254,7 +256,7 @@ generic_isa='nehalem'
 if ! check_cc_flags "-march=$generic_isa" ; then
 	generic_isa='corei7'
 fi
-build build-x86-generic cc skipABI -Dcheck_includes=true \
+build build-x86-generic cc skipABI --buildtype=debug -Dcheck_includes=true \
 	-Dlibdir=lib -Dcpu_instruction_set=$generic_isa $use_shared
 
 # 32-bit with default compiler
-- 
2.52.0


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

* Re: [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process
  2026-01-28 11:58   ` [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process Thomas Monjalon
@ 2026-01-28 14:11     ` Thomas Monjalon
  0 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-01-28 14:11 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Anatoly Burakov, Chenbo Xia, Nipun Gupta

28/01/2026 12:58, Thomas Monjalon:
> This error is seen in build of type "minsize":
> 
> In function 'pci_vfio_map_resource_secondary':
> drivers/bus/pci/linux/pci_vfio.c:1005:28: error:
> 'maps' may be used uninitialized [-Werror=maybe-uninitialized]
>  1005 |                 if (maps[j].addr)
> 
> On failure before assigning maps, it was trying to unmap.
> The fix is changing the goto destination after unmapping.

After David had a look, he told me unmap would never happen
because the loop range is empty.
So we should change this description with this:
"
On failure before assigning maps, it was trying to unmap.
The compiler should have detected that the unmap loop is a nop.

The fix is changing the goto destination after unmapping
to allow compiling with "minsize" option.
"

Because it is not fixing anything but minsize build,
the title should be "bus/pci: fix minsize build"



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

* Re: [PATCH v4 2/4] argparse: fix minsize build
  2026-01-28 11:58   ` [PATCH v4 2/4] argparse: fix minsize build Thomas Monjalon
@ 2026-01-29  1:35     ` fengchengwen
  0 siblings, 0 replies; 44+ messages in thread
From: fengchengwen @ 2026-01-29  1:35 UTC (permalink / raw)
  To: Thomas Monjalon, dev; +Cc: david.marchand

Acked-by: Chengwen Feng <fengchengwen@huawei.com>

On 1/28/2026 7:58 PM, Thomas Monjalon wrote:
> This error is seen in build of type "minsize":
> 
> In function 'parse_args', lib/argparse/rte_argparse.c:764:31: error:
> 'arg_idx' may be used uninitialized [-Werror=maybe-uninitialized]
>   764 |                 if (arg_parsed[arg_idx] && !arg_attr_flag_multi(arg)) {
>       |                               ^
> 
> It looks to be a compiler issue because we are not supposed
> to reach this point in case of find_option_arg() failure.
> 
> The variable is initialized to allow compiling with "minsize" option.
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>



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

* [PATCH v4 00/11] more build tests
  2021-04-12 21:53 [dpdk-dev] [PATCH] devtools: test different build types Thomas Monjalon
                   ` (3 preceding siblings ...)
  2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
@ 2026-02-05 21:27 ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 01/11] mem: check fbarray name truncation in secondary process Thomas Monjalon
                     ` (11 more replies)
  4 siblings, 12 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand

While testing more build types, some errors occur.

v5: add minsize and fix debug build types in GHA
    fix new warnings with minsize and debug builds
v4: fix new warnings with minsize
v3: fix minsize build with GCC
v2: fix init of var buildtype

Thomas Monjalon (11):
  mem: check fbarray name truncation in secondary process
  mem: avoid hugepage path overflow
  argparse: fix minsize build
  mldev: fix minsize build
  bus/pci: fix minsize build
  power/intel_pstate: fix minsize build
  net/bnxt/tf_ulp: fix minsize build
  net/iavf: fix minsize build
  ci: fix debug build type
  devtools: test different build types
  ci: check minsize build type in GHA

 .ci/linux-build.sh                            |  3 ++-
 .github/workflows/build.yml                   |  2 ++
 devtools/test-meson-builds.sh                 |  6 ++++--
 drivers/bus/pci/linux/pci_vfio.c              |  3 ++-
 drivers/net/bnxt/tf_ulp/ulp_utils.h           |  2 ++
 drivers/net/intel/iavf/iavf_ipsec_crypto.c    |  2 +-
 .../power/intel_pstate/intel_pstate_cpufreq.c |  2 +-
 lib/argparse/rte_argparse.c                   |  2 +-
 lib/eal/linux/eal_memalloc.c                  |  7 ++++++-
 lib/eal/linux/eal_memory.c                    | 20 ++++++++++++-------
 lib/mldev/rte_mldev.c                         |  2 +-
 11 files changed, 35 insertions(+), 16 deletions(-)

-- 
2.52.0


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

* [PATCH v4 01/11] mem: check fbarray name truncation in secondary process
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 02/11] mem: avoid hugepage path overflow Thomas Monjalon
                     ` (10 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Anatoly Burakov

When compiling in debug mode, the format-truncation check
raises a warning:

In function 'secondary_msl_create_walk':
     lib/eal/linux/eal_memalloc.c:1401:50:
     error: '%i' directive output may be truncated writing
     between 1 and 11 bytes into a region of size between 0 and 63
     [-Werror=format-truncation=]
     note: 'snprintf' output between 3 and 76 bytes
     into a destination of size 64
 1401 |         snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i",
 1402 |                 primary_msl->memseg_arr.name, getpid());

This is a new warning enabled in DPDK 26.03.
It is solved by checking the return of snprintf.

Bugzilla ID: 1878

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/eal/linux/eal_memalloc.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/eal/linux/eal_memalloc.c b/lib/eal/linux/eal_memalloc.c
index d9e8ea76b9..4dee224ac5 100644
--- a/lib/eal/linux/eal_memalloc.c
+++ b/lib/eal/linux/eal_memalloc.c
@@ -1398,8 +1398,13 @@ secondary_msl_create_walk(const struct rte_memseg_list *msl,
 	local_msl = &local_memsegs[msl_idx];
 
 	/* create distinct fbarrays for each secondary */
-	snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i",
+	ret = snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i",
 		primary_msl->memseg_arr.name, getpid());
+	if (ret >= RTE_FBARRAY_NAME_LEN) {
+		EAL_LOG(ERR, "fbarray name %s_%i is too long",
+				primary_msl->memseg_arr.name, getpid());
+		return -1;
+	}
 
 	ret = rte_fbarray_init(&local_msl->memseg_arr, name,
 		primary_msl->memseg_arr.len,
-- 
2.52.0


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

* [PATCH v4 02/11] mem: avoid hugepage path overflow
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 01/11] mem: check fbarray name truncation in secondary process Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-06  8:12     ` David Marchand
  2026-02-05 21:27   ` [PATCH v4 03/11] argparse: fix minsize build Thomas Monjalon
                     ` (9 subsequent siblings)
  11 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Anatoly Burakov

When constructing hugepage path, allocate the variable
to avoid a possible overflow which was detected in debug build:

In function 'find_numasocket':
lib/eal/linux/eal_memory.c:450:31:
	error: 'snprintf' output may be truncated
	before the last format character [-Werror=format-truncation=]
lib/eal/linux/eal_memory.c:449:9:
	note: 'snprintf' output 2 or more bytes (assuming 4097)
	into a destination of size 4096
  449 | snprintf(hugedir_str, sizeof(hugedir_str),
  450 |                 "%s/%s", hpi->hugedir, eal_get_hugefile_prefix());

This is a new warning (format-truncation) enabled in DPDK 26.03.

Bugzilla ID: 1878

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/eal/linux/eal_memory.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/lib/eal/linux/eal_memory.c b/lib/eal/linux/eal_memory.c
index 7c4197a5b8..ceda9c3246 100644
--- a/lib/eal/linux/eal_memory.c
+++ b/lib/eal/linux/eal_memory.c
@@ -436,8 +436,9 @@ find_numasocket(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
 	unsigned i, hp_count = 0;
 	uint64_t virt_addr;
 	char buf[BUFSIZ];
-	char hugedir_str[PATH_MAX];
+	char *hugedir_str;
 	FILE *f;
+	int ret;
 
 	f = fopen("/proc/self/numa_maps", "r");
 	if (f == NULL) {
@@ -446,8 +447,14 @@ find_numasocket(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
 		return 0;
 	}
 
-	snprintf(hugedir_str, sizeof(hugedir_str),
-			"%s/%s", hpi->hugedir, eal_get_hugefile_prefix());
+	ret = asprintf(&hugedir_str, "%s/%s",
+			hpi->hugedir, eal_get_hugefile_prefix());
+	if (ret < 0) {
+		EAL_LOG(ERR, "%s(): failed to store hugepage path", __func__);
+		goto error;
+	}
+
+	ret = -1;
 
 	/* parse numa map */
 	while (fgets(buf, sizeof(buf), f) != NULL) {
@@ -503,12 +510,11 @@ find_numasocket(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
 	if (hp_count < hpi->num_pages[0])
 		goto error;
 
-	fclose(f);
-	return 0;
-
+	ret = 0;
 error:
+	free(hugedir_str);
 	fclose(f);
-	return -1;
+	return ret;
 }
 
 static int
-- 
2.52.0


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

* [PATCH v4 03/11] argparse: fix minsize build
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 01/11] mem: check fbarray name truncation in secondary process Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 02/11] mem: avoid hugepage path overflow Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 04/11] mldev: " Thomas Monjalon
                     ` (8 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Chengwen Feng

This error is seen in build of type "minsize":

In function 'parse_args', lib/argparse/rte_argparse.c:764:31: error:
'arg_idx' may be used uninitialized [-Werror=maybe-uninitialized]
  764 | if (arg_parsed[arg_idx] && !arg_attr_flag_multi(arg)) {
      |               ^

It looks to be a compiler issue because we are not supposed
to reach this point in case of find_option_arg() failure.

The variable is initialized to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
 lib/argparse/rte_argparse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/argparse/rte_argparse.c b/lib/argparse/rte_argparse.c
index 9c3c5e7ae3..88c3e7740c 100644
--- a/lib/argparse/rte_argparse.c
+++ b/lib/argparse/rte_argparse.c
@@ -702,7 +702,7 @@ parse_args(const struct rte_argparse *obj, bool *arg_parsed,
 	const char *arg_name;
 	size_t n_args_to_move;
 	char **args_to_move;
-	uint32_t arg_idx;
+	uint32_t arg_idx = 0;
 	char *curr_argv;
 	char *value;
 	int ret;
-- 
2.52.0


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

* [PATCH v4 04/11] mldev: fix minsize build
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (2 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 03/11] argparse: fix minsize build Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 05/11] bus/pci: " Thomas Monjalon
                     ` (7 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Srikanth Yalavarthi

This error is seen in build of type "minsize":

In function 'rte_ml_dev_pmd_allocate':
lib/mldev/rte_mldev.c:84:16: error:
'dev' may be used uninitialized [-Werror=maybe-uninitialized]
   84 |         if (dev->data == NULL) {
      |             ~~~^~~~~~

It looks to be a compiler issue because we are not supposed
to reach this point without finding a device to assign.

The variable is initialized to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 lib/mldev/rte_mldev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/mldev/rte_mldev.c b/lib/mldev/rte_mldev.c
index f5061f015c..7fae867882 100644
--- a/lib/mldev/rte_mldev.c
+++ b/lib/mldev/rte_mldev.c
@@ -55,7 +55,7 @@ rte_ml_dev_pmd_allocate(const char *name, uint8_t socket_id)
 {
 	char mz_name[RTE_MEMZONE_NAMESIZE];
 	const struct rte_memzone *mz;
-	struct rte_ml_dev *dev;
+	struct rte_ml_dev *dev = NULL;
 	int16_t dev_id;
 
 	/* implicit initialization of library before adding first device */
-- 
2.52.0


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

* [PATCH v4 05/11] bus/pci: fix minsize build
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (3 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 04/11] mldev: " Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 06/11] power/intel_pstate: " Thomas Monjalon
                     ` (6 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Anatoly Burakov, Chenbo Xia, Nipun Gupta

This error is seen in build of type "minsize":

In function 'pci_vfio_map_resource_secondary':
drivers/bus/pci/linux/pci_vfio.c:1005:28: error:
'maps' may be used uninitialized [-Werror=maybe-uninitialized]
 1005 |                 if (maps[j].addr)

On failure before assigning maps, it was trying to unmap.
The compiler should have detected that the unmap loop is a nop.

The fix is changing the goto destination after unmapping
to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/bus/pci/linux/pci_vfio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index 242f567ed7..bc5c5c2499 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -968,7 +968,7 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
 
 	ret = pci_vfio_fill_regions(dev, vfio_dev_fd, &device_info);
 	if (ret)
-		goto err_vfio_dev_fd;
+		goto err_vfio_dev;
 
 	/* map BARs */
 	maps = vfio_res->maps;
@@ -1005,6 +1005,7 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
 		if (maps[j].addr)
 			pci_unmap_resource(maps[j].addr, maps[j].size);
 	}
+err_vfio_dev:
 	rte_vfio_release_device(rte_pci_get_sysfs_path(),
 			pci_addr, vfio_dev_fd);
 	return -1;
-- 
2.52.0


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

* [PATCH v4 06/11] power/intel_pstate: fix minsize build
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (4 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 05/11] bus/pci: " Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 07/11] net/bnxt/tf_ulp: " Thomas Monjalon
                     ` (5 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Anatoly Burakov, David Hunt, Sivaprasad Tummala

This error is seen in build of type "minsize":

In function 'power_init_for_setting_freq',
	drivers/power/intel_pstate/intel_pstate_cpufreq.c:205:30:
	error: 'max_non_turbo' may be used uninitialized
		[-Werror=maybe-uninitialized]
drivers/power/intel_pstate/intel_pstate_cpufreq.c:122:18:
	note: 'max_non_turbo' was declared here
  122 |         uint64_t max_non_turbo;

It looks to be a compiler issue because we are not supposed
to reach this point in case of power_read_turbo_pct() failure.

The variable is initialized to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/power/intel_pstate/intel_pstate_cpufreq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/power/intel_pstate/intel_pstate_cpufreq.c b/drivers/power/intel_pstate/intel_pstate_cpufreq.c
index eba50b2874..8e27570e3c 100644
--- a/drivers/power/intel_pstate/intel_pstate_cpufreq.c
+++ b/drivers/power/intel_pstate/intel_pstate_cpufreq.c
@@ -119,7 +119,7 @@ power_init_for_setting_freq(struct pstate_power_info *pi)
 	FILE *f_base = NULL, *f_base_min = NULL, *f_base_max = NULL,
 	     *f_min = NULL, *f_max = NULL;
 	uint32_t base_ratio, base_min_ratio, base_max_ratio;
-	uint64_t max_non_turbo;
+	uint64_t max_non_turbo = 0;
 	int ret;
 
 	/* open all files we expect to have open */
-- 
2.52.0


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

* [PATCH v4 07/11] net/bnxt/tf_ulp: fix minsize build
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (5 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 06/11] power/intel_pstate: " Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 08/11] net/iavf: " Thomas Monjalon
                     ` (4 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev
  Cc: david.marchand, stable, Kishore Padmanabha, Ajit Khaparde,
	Sriharsha Basavapatna, Peter Spreadborough

This error is seen in build of type "minsize":

In function 'ulp_blob_append':
	error: 'num' may be used uninitialized [-Werror=maybe-uninitialized]
	drivers/net/bnxt/tf_ulp/ulp_utils.h:1109:13:
	note: in expansion of macro 'unlikely'
 1109 |         if (unlikely((src_offset + src_len) > num))
      |             ^~~~~~~~
drivers/net/bnxt/tf_ulp/ulp_utils.h:1105:18: note: 'num' was declared here
 1105 |         uint16_t num;

Indeed num may be not initialized if ulp_blob_data_get() fails.
It is fixed by checking the return value src_buf.

Fixes: 0c036a1485b9 ("net/bnxt/tf_ulp: optimize with inline and prediction")
Cc: stable@dpdk.org

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/net/bnxt/tf_ulp/ulp_utils.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/bnxt/tf_ulp/ulp_utils.h b/drivers/net/bnxt/tf_ulp/ulp_utils.h
index 7a8145b5df..ce20f1916f 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_utils.h
+++ b/drivers/net/bnxt/tf_ulp/ulp_utils.h
@@ -1106,6 +1106,8 @@ ulp_blob_append(struct ulp_blob *dst, struct ulp_blob *src,
 	uint8_t bluff;
 	uint8_t *src_buf = ulp_blob_data_get(src, &num);
 
+	if (unlikely(src_buf == NULL))
+		return -EINVAL;
 	if (unlikely((src_offset + src_len) > num))
 		return -EINVAL;
 
-- 
2.52.0


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

* [PATCH v4 08/11] net/iavf: fix minsize build
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (6 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 07/11] net/bnxt/tf_ulp: " Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 09/11] ci: fix debug build type Thomas Monjalon
                     ` (3 subsequent siblings)
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Vladimir Medvedkin

This error is seen in build of type "minsize":

In function 'iavf_ipsec_crypto_supported':
    drivers/net/intel/iavf/iavf_ipsec_crypto.c:1649:29:
    error: status may be used uninitialized
        [-Werror=maybe-uninitialized]
 1649 | if (rc == 0 && status.status == INLINE_IPSEC_STATUS_AVAILABLE)
    drivers/net/intel/iavf/iavf_ipsec_crypto.c:1647:46:
    note: status was declared here
 1647 | struct virtchnl_ipsec_status status;

It looks to be a compiler issue because we are not supposed
to reach this point in case of iavf_ipsec_crypto_status_get() failure.

The variable is initialized to allow compiling with "minsize" option.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/net/intel/iavf/iavf_ipsec_crypto.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/intel/iavf/iavf_ipsec_crypto.c b/drivers/net/intel/iavf/iavf_ipsec_crypto.c
index d5bfbecf08..6d41b1744e 100644
--- a/drivers/net/intel/iavf/iavf_ipsec_crypto.c
+++ b/drivers/net/intel/iavf/iavf_ipsec_crypto.c
@@ -1644,7 +1644,7 @@ iavf_ipsec_crypto_supported(struct iavf_adapter *adapter)
 	/** Capability check for IPsec Crypto */
 	if (resources && (resources->vf_cap_flags &
 		VIRTCHNL_VF_OFFLOAD_INLINE_IPSEC_CRYPTO)) {
-		struct virtchnl_ipsec_status status;
+		struct virtchnl_ipsec_status status = {0};
 		int rc = iavf_ipsec_crypto_status_get(adapter, &status);
 		if (rc == 0 && status.status == INLINE_IPSEC_STATUS_AVAILABLE)
 			crypto_supported = true;
-- 
2.52.0


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

* [PATCH v4 09/11] ci: fix debug build type
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (7 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 08/11] net/iavf: " Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-06  8:23     ` David Marchand
  2026-02-05 21:27   ` [PATCH v4 10/11] devtools: test different build types Thomas Monjalon
                     ` (2 subsequent siblings)
  11 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, stable, Aaron Conole

The debug build type was overridden by defining it to
debugoptimized after debug was chosen based on an environment variable.

Fixes: 918b6674b841 ("build: support Undefined Behavior Sanitizer")
Cc: stable@dpdk.org

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 .ci/linux-build.sh | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 084d9642fc..aac0bd3dc5 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -128,7 +128,6 @@ else
 fi
 OPTS="$OPTS -Dlibdir=lib"
 
-buildtype=debugoptimized
 sanitizer=
 if [ "$ASAN" = "true" ]; then
     sanitizer=${sanitizer:+$sanitizer,}address
-- 
2.52.0


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

* [PATCH v4 10/11] devtools: test different build types
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (8 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 09/11] ci: fix debug build type Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-05 21:27   ` [PATCH v4 11/11] ci: check minsize build type in GHA Thomas Monjalon
  2026-02-06  9:57   ` [PATCH v4 00/11] more build tests Thomas Monjalon
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Andrew Rybchenko, Bruce Richardson

All builds were of type debugoptimized.
It is kept only for builds having an ABI check.
Others will have the default build type (release),
except if specified differently as in the x86 generic build
which will be a test of the non-optimized debug build type.
Some static builds will test the minsize build type.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 devtools/test-meson-builds.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
index 867a0a9c0c..11e4be3f88 100755
--- a/devtools/test-meson-builds.sh
+++ b/devtools/test-meson-builds.sh
@@ -233,13 +233,15 @@ for c in gcc clang ; do
 	for s in static shared ; do
 		if [ $s = shared ] ; then
 			abicheck=ABI
+			buildtype=
 			stdatomic=-Denable_stdatomic=true
 		else
 			abicheck=skipABI # save time and disk space
+			buildtype='--buildtype=minsize'
 			stdatomic=-Denable_stdatomic=false
 		fi
 		export CC="$CCACHE $c"
-		build build-$c-$s $c $abicheck $stdatomic --default-library=$s
+		build build-$c-$s $c $abicheck $buildtype $stdatomic --default-library=$s
 		unset CC
 	done
 done
@@ -254,7 +256,7 @@ generic_isa='nehalem'
 if ! check_cc_flags "-march=$generic_isa" ; then
 	generic_isa='corei7'
 fi
-build build-x86-generic cc skipABI -Dcheck_includes=true \
+build build-x86-generic cc skipABI --buildtype=debug -Dcheck_includes=true \
 	-Dlibdir=lib -Dcpu_instruction_set=$generic_isa $use_shared
 
 # 32-bit with default compiler
-- 
2.52.0


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

* [PATCH v4 11/11] ci: check minsize build type in GHA
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (9 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 10/11] devtools: test different build types Thomas Monjalon
@ 2026-02-05 21:27   ` Thomas Monjalon
  2026-02-06  8:29     ` David Marchand
  2026-02-06  9:57   ` [PATCH v4 00/11] more build tests Thomas Monjalon
  11 siblings, 1 reply; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-05 21:27 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, Aaron Conole

In GitHub Actions, the build for Fedora with GCC is updated
to use the Meson build type "minsize".
This type may have some different requirements (or bugs),
so it is better for its maintenance to test it regularly in the CI.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 .ci/linux-build.sh          | 2 ++
 .github/workflows/build.yml | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index aac0bd3dc5..e0b914a142 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -85,6 +85,8 @@ buildtype=debugoptimized
 
 if [ "$BUILD_DEBUG" = "true" ]; then
     buildtype=debug
+elif [ "$BUILD_MINSIZE" = "true" ]; then
+    buildtype=minsize
 fi
 
 if [ "$BUILD_DOCS" = "true" ]; then
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ab140f885e..f0142efd3b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -325,6 +325,7 @@ jobs:
         config:
           - image: fedora:43
             compiler: gcc
+            checks: minsize
           - image: fedora:43
             compiler: clang
 
@@ -362,6 +363,7 @@ jobs:
         echo CCACHE_DIR=/root/.ccache >> ~/env
         echo DEF_LIB=${{ matrix.config.library }} >> ~/env
         echo STDATOMIC=false >> ~/env
+        echo BUILD_MINSIZE=${{ contains(matrix.config.checks, 'minsize') }} >> ~/env
     - name: Load the cached image
       run: |
         docker load -i ~/.image/${{ matrix.config.image }}.tar
-- 
2.52.0


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

* Re: [PATCH v4 02/11] mem: avoid hugepage path overflow
  2026-02-05 21:27   ` [PATCH v4 02/11] mem: avoid hugepage path overflow Thomas Monjalon
@ 2026-02-06  8:12     ` David Marchand
  2026-02-06  9:59       ` Thomas Monjalon
  0 siblings, 1 reply; 44+ messages in thread
From: David Marchand @ 2026-02-06  8:12 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Anatoly Burakov

On Thu, 5 Feb 2026 at 22:30, Thomas Monjalon <thomas@monjalon.net> wrote:
> @@ -446,8 +447,14 @@ find_numasocket(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
>                 return 0;
>         }
>
> -       snprintf(hugedir_str, sizeof(hugedir_str),
> -                       "%s/%s", hpi->hugedir, eal_get_hugefile_prefix());
> +       ret = asprintf(&hugedir_str, "%s/%s",
> +                       hpi->hugedir, eal_get_hugefile_prefix());
> +       if (ret < 0) {
> +               EAL_LOG(ERR, "%s(): failed to store hugepage path", __func__);
> +               goto error;

On asprintf failure, hugedir_str content is undefined.
It is safer to reset hugedir_str to NULL before jumping to the error
label where free() is called.


-- 
David Marchand


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

* Re: [PATCH v4 09/11] ci: fix debug build type
  2026-02-05 21:27   ` [PATCH v4 09/11] ci: fix debug build type Thomas Monjalon
@ 2026-02-06  8:23     ` David Marchand
  0 siblings, 0 replies; 44+ messages in thread
From: David Marchand @ 2026-02-06  8:23 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, stable, Aaron Conole

On Thu, 5 Feb 2026 at 22:31, Thomas Monjalon <thomas@monjalon.net> wrote:
>
> The debug build type was overridden by defining it to
> debugoptimized after debug was chosen based on an environment variable.
>
> Fixes: 918b6674b841 ("build: support Undefined Behavior Sanitizer")
> Cc: stable@dpdk.org
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

Ugh.. probably a rebase issue on my side, I kept rebasing the ubsan
branch again and again...

Reviewed-by: David Marchand <david.marchand@redhat.com>


-- 
David Marchand


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

* Re: [PATCH v4 11/11] ci: check minsize build type in GHA
  2026-02-05 21:27   ` [PATCH v4 11/11] ci: check minsize build type in GHA Thomas Monjalon
@ 2026-02-06  8:29     ` David Marchand
  0 siblings, 0 replies; 44+ messages in thread
From: David Marchand @ 2026-02-06  8:29 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev, Aaron Conole

On Thu, 5 Feb 2026 at 22:31, Thomas Monjalon <thomas@monjalon.net> wrote:
>
> In GitHub Actions, the build for Fedora with GCC is updated
> to use the Meson build type "minsize".
> This type may have some different requirements (or bugs),
> so it is better for its maintenance to test it regularly in the CI.
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  .ci/linux-build.sh          | 2 ++
>  .github/workflows/build.yml | 2 ++
>  2 files changed, 4 insertions(+)
>
> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
> index aac0bd3dc5..e0b914a142 100755
> --- a/.ci/linux-build.sh
> +++ b/.ci/linux-build.sh
> @@ -85,6 +85,8 @@ buildtype=debugoptimized
>
>  if [ "$BUILD_DEBUG" = "true" ]; then
>      buildtype=debug
> +elif [ "$BUILD_MINSIZE" = "true" ]; then
> +    buildtype=minsize
>  fi
>
>  if [ "$BUILD_DOCS" = "true" ]; then
> diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
> index ab140f885e..f0142efd3b 100644
> --- a/.github/workflows/build.yml
> +++ b/.github/workflows/build.yml
> @@ -325,6 +325,7 @@ jobs:
>          config:
>            - image: fedora:43
>              compiler: gcc
> +            checks: minsize
>            - image: fedora:43
>              compiler: clang
>
> @@ -362,6 +363,7 @@ jobs:
>          echo CCACHE_DIR=/root/.ccache >> ~/env
>          echo DEF_LIB=${{ matrix.config.library }} >> ~/env
>          echo STDATOMIC=false >> ~/env
> +        echo BUILD_MINSIZE=${{ contains(matrix.config.checks, 'minsize') }} >> ~/env
>      - name: Load the cached image
>        run: |
>          docker load -i ~/.image/${{ matrix.config.image }}.tar

LGTM.

Note: the reason for this (ugly) manual filling of env is that we do
not use GHA support of containers.
At the time I added fedora containers, I had multiple occasions when
pulling the images resulted in failures (getting throttled).

Maybe things got better since then... I see OVS does use GHA support.
Any volunteer to reevaluate this?


-- 
David Marchand


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

* Re: [PATCH v4 00/11] more build tests
  2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
                     ` (10 preceding siblings ...)
  2026-02-05 21:27   ` [PATCH v4 11/11] ci: check minsize build type in GHA Thomas Monjalon
@ 2026-02-06  9:57   ` Thomas Monjalon
  11 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-06  9:57 UTC (permalink / raw)
  To: dev; +Cc: david.marchand

05/02/2026 22:27, Thomas Monjalon:
> While testing more build types, some errors occur.
> 
> v5: add minsize and fix debug build types in GHA
>     fix new warnings with minsize and debug builds
> v4: fix new warnings with minsize
> v3: fix minsize build with GCC
> v2: fix init of var buildtype
> 
> Thomas Monjalon (11):
>   mem: check fbarray name truncation in secondary process
>   mem: avoid hugepage path overflow
>   argparse: fix minsize build
>   mldev: fix minsize build
>   bus/pci: fix minsize build
>   power/intel_pstate: fix minsize build
>   net/bnxt/tf_ulp: fix minsize build
>   net/iavf: fix minsize build
>   ci: fix debug build type
>   devtools: test different build types
>   ci: check minsize build type in GHA

Applied with the fix for the undefined behaviour of asprintf.




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

* Re: [PATCH v4 02/11] mem: avoid hugepage path overflow
  2026-02-06  8:12     ` David Marchand
@ 2026-02-06  9:59       ` Thomas Monjalon
  0 siblings, 0 replies; 44+ messages in thread
From: Thomas Monjalon @ 2026-02-06  9:59 UTC (permalink / raw)
  To: David Marchand; +Cc: dev, Anatoly Burakov

06/02/2026 09:12, David Marchand:
> On Thu, 5 Feb 2026 at 22:30, Thomas Monjalon <thomas@monjalon.net> wrote:
> > @@ -446,8 +447,14 @@ find_numasocket(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi)
> >                 return 0;
> >         }
> >
> > -       snprintf(hugedir_str, sizeof(hugedir_str),
> > -                       "%s/%s", hpi->hugedir, eal_get_hugefile_prefix());
> > +       ret = asprintf(&hugedir_str, "%s/%s",
> > +                       hpi->hugedir, eal_get_hugefile_prefix());
> > +       if (ret < 0) {
> > +               EAL_LOG(ERR, "%s(): failed to store hugepage path", __func__);
> > +               goto error;
> 
> On asprintf failure, hugedir_str content is undefined.
> It is safer to reset hugedir_str to NULL before jumping to the error
> label where free() is called.

You're right, I do this small change:

        if (ret < 0) {
                EAL_LOG(ERR, "%s(): failed to store hugepage path", __func__);
+               hugedir_str = NULL;
                goto error;
        }





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

end of thread, other threads:[~2026-02-06 10:00 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-12 21:53 [dpdk-dev] [PATCH] devtools: test different build types Thomas Monjalon
2021-05-21 15:03 ` David Marchand
2021-07-23 20:26   ` Andrew Rybchenko
2021-08-02 22:45 ` [dpdk-dev] [PATCH v2] " Thomas Monjalon
2021-08-08 12:51 ` [dpdk-dev] [PATCH v3 0/5] more build tests Thomas Monjalon
2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 1/5] net/qede: fix minsize build Thomas Monjalon
2021-08-09  5:15     ` [dpdk-dev] [EXT] " Devendra Singh Rawat
2021-08-09  7:11       ` Rasesh Mody
2021-09-15 15:16       ` David Marchand
2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 2/5] regex/mlx5: " Thomas Monjalon
2021-08-11  8:48     ` Ruifeng Wang
2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 3/5] vdpa/mlx5: " Thomas Monjalon
2021-08-09  6:43     ` Matan Azrad
2021-08-11  8:48     ` Ruifeng Wang
2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 4/5] test/crypto: " Thomas Monjalon
2021-08-11  8:48     ` Ruifeng Wang
2021-08-08 12:51   ` [dpdk-dev] [PATCH v3 5/5] devtools: test different build types Thomas Monjalon
2024-08-15 16:26     ` Stephen Hemminger
2021-09-15 20:27   ` [dpdk-dev] [PATCH v3 0/5] more build tests Ferruh Yigit
2021-09-16  7:05   ` David Marchand
2026-01-28 11:58 ` [PATCH v4 0/4] " Thomas Monjalon
2026-01-28 11:58   ` [PATCH v4 1/4] bus/pci: fix unmap on failure in multi-process Thomas Monjalon
2026-01-28 14:11     ` Thomas Monjalon
2026-01-28 11:58   ` [PATCH v4 2/4] argparse: fix minsize build Thomas Monjalon
2026-01-29  1:35     ` fengchengwen
2026-01-28 11:58   ` [PATCH v4 3/4] mldev: " Thomas Monjalon
2026-01-28 11:58   ` [PATCH v4 4/4] devtools: test different build types Thomas Monjalon
2026-02-05 21:27 ` [PATCH v4 00/11] more build tests Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 01/11] mem: check fbarray name truncation in secondary process Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 02/11] mem: avoid hugepage path overflow Thomas Monjalon
2026-02-06  8:12     ` David Marchand
2026-02-06  9:59       ` Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 03/11] argparse: fix minsize build Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 04/11] mldev: " Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 05/11] bus/pci: " Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 06/11] power/intel_pstate: " Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 07/11] net/bnxt/tf_ulp: " Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 08/11] net/iavf: " Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 09/11] ci: fix debug build type Thomas Monjalon
2026-02-06  8:23     ` David Marchand
2026-02-05 21:27   ` [PATCH v4 10/11] devtools: test different build types Thomas Monjalon
2026-02-05 21:27   ` [PATCH v4 11/11] ci: check minsize build type in GHA Thomas Monjalon
2026-02-06  8:29     ` David Marchand
2026-02-06  9:57   ` [PATCH v4 00/11] more build tests Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox