drivers: allow build with VLAs

Message ID 20250208092839.1238770-1-thomas@monjalon.net (mailing list archive)
State Accepted
Delegated to: Thomas Monjalon
Headers
Series drivers: allow build with VLAs |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation warning apply patch failure
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-marvell-Functional success Functional Testing PASS
ci/iol-unit-arm64-testing pending Testing pending
ci/iol-compile-amd64-testing success Testing PASS
ci/iol-abi-testing pending Testing pending
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-sample-apps-testing warning Testing issues
ci/Intel-compilation warning apply issues

Commit Message

Thomas Monjalon Feb. 8, 2025, 9:28 a.m. UTC
The drivers nfb, mvpp2 and mvsam use some variable length arrays
in their code, so the warnings about VLA must be disabled for now,
until removal for MSVC support, as in some other drivers.

The warnings look like below:

nfb_rx.h:156:16: error:
	ISO C90 forbids variable length array 'packets' [-Werror=vla]
  156 |         struct ndp_packet packets[nb_pkts];

mvpp2/mrvl_flow.c:108:9: error:
     ISO C90 forbids variable length array 'zeros' [-Werror=vla]
  108 |         uint8_t zeros[size];

mvsam/rte_mrvl_pmd.c:865:16: error:
	ISO C90 forbids variable length array 'requests_crp' [-Werror=vla]
  865 |         struct sam_cio_op_params requests_crp[nb_ops];

Fixes: 1bf86800f7da ("build: warn on uses of VLA")

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/crypto/mvsam/meson.build | 2 ++
 drivers/net/mvpp2/meson.build    | 2 ++
 drivers/net/nfb/meson.build      | 2 ++
 3 files changed, 6 insertions(+)
  

Comments

David Marchand Feb. 8, 2025, 4:11 p.m. UTC | #1
On Sat, Feb 8, 2025 at 10:29 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> The drivers nfb, mvpp2 and mvsam use some variable length arrays
> in their code, so the warnings about VLA must be disabled for now,
> until removal for MSVC support, as in some other drivers.
>
> The warnings look like below:
>
> nfb_rx.h:156:16: error:
>         ISO C90 forbids variable length array 'packets' [-Werror=vla]
>   156 |         struct ndp_packet packets[nb_pkts];
>
> mvpp2/mrvl_flow.c:108:9: error:
>      ISO C90 forbids variable length array 'zeros' [-Werror=vla]
>   108 |         uint8_t zeros[size];
>
> mvsam/rte_mrvl_pmd.c:865:16: error:
>         ISO C90 forbids variable length array 'requests_crp' [-Werror=vla]
>   865 |         struct sam_cio_op_params requests_crp[nb_ops];
>
> Fixes: 1bf86800f7da ("build: warn on uses of VLA")
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>

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

Patch

diff --git a/drivers/crypto/mvsam/meson.build b/drivers/crypto/mvsam/meson.build
index bf3c4323de..7fbdfb6ffe 100644
--- a/drivers/crypto/mvsam/meson.build
+++ b/drivers/crypto/mvsam/meson.build
@@ -20,4 +20,6 @@  ext_deps += dep
 
 sources = files('rte_mrvl_pmd.c', 'rte_mrvl_pmd_ops.c')
 
+cflags += no_wvla_cflag
+
 deps += ['bus_vdev', 'common_mvep', 'security']
diff --git a/drivers/net/mvpp2/meson.build b/drivers/net/mvpp2/meson.build
index c7da8cd2e7..396e382128 100644
--- a/drivers/net/mvpp2/meson.build
+++ b/drivers/net/mvpp2/meson.build
@@ -26,4 +26,6 @@  sources = files(
         'mrvl_tm.c',
 )
 
+cflags += no_wvla_cflag
+
 deps += ['cfgfile', 'common_mvep']
diff --git a/drivers/net/nfb/meson.build b/drivers/net/nfb/meson.build
index bb5f66a09a..d7a255c928 100644
--- a/drivers/net/nfb/meson.build
+++ b/drivers/net/nfb/meson.build
@@ -21,3 +21,5 @@  sources = files(
         'nfb_stats.c',
         'nfb_tx.c',
 )
+
+cflags += no_wvla_cflag