> As per guidance technical board meeting 2024/04/17. This series > removes the use of VLAs from code built for Windows for all 3 > toolchains. If there are additional opportunities to convert VLAs > to regular C arrays please provide the details for incorporation > into the series. > > MSVC does not support VLAs, replace VLAs with standard C arrays > or alloca(). alloca() is available for all toolchain/platform > combinations officially supported by DPDK. > > v14: > * add -Wvla to meson build for directories that are VLA free > under app, lib, drivers. This is to ensure that new VLAs are > not added to these directories in the future. > > v13: > * increase stack allocated buffer size in > ipv4_reassembly_interleaved_flows_perf and > ipv6_reassembly_interleaved_flows_perf to avoid > STATUS_STACK_BUFFER_OVERRUN on Windows using MSVC > > v12: > * update commit message for patch 06/21 to avoid warning > > v11: > * add include stdlib.h for alloca() declaration on FreeBSD > * zero-initialize array without code loop > * increase maximum tuple length > > v10: > * add ifdef to scope gcc's diagnostic error down to gcc only > > v9: > * fix sender's email address > * fix gcc's diagnostic error string to make clang happy > > v8: > * rebase > * reduce scope for disabling error "-Warray-bounds=" to only > the place that needs it > * remove parentesis around numbers from defines in test_bitset.c > > v7: > * remove use of VLA from new file which sneaked in during review > > v6: > * remove use of VLA from new test code added recently > * fix title for patch 08/20 > > v5: > * add patches for net/ice, net/ixgbe and gro > from Konstantin Ananyev from > https://patchwork.dpdk.org/project/dpdk/list/?series=31972&archive=both&state=* > * address debug_autotest ASan failure > * address array-bound error in bitset_autotest with gcc-13 > > v4: > * rebase and adapt for changes made in main since v3 was sent > * use fixed maximum array size instead of VLA when doable > > v3: > * address checkpatch/check git log warnings (minor typos) > > v2: > * replace patches for ethdev, hash, rcu and include new > patches for eal from Konstantin Ananyev > from https://patchwork.dpdk.org/project/dpdk/list/?series=31781 > > Andre Muezerie (63): > test: remove use of VLAs for Windows built code in bitset tests > app/testpmd: remove use of VLAs for Windows built code in > shared_rxq_fwd > hash: remove use of VLAs by using standard arrays > app/dumpcap: add compile warning about use of VLAs > app/graph: add compile warning about use of VLAs > app/test-cmdline: add compile warning about use of VLAs > app/test-compress-perf: add compile warning about use of VLAs > app/test-fib: add compile warning about use of VLAs > app/test-gpudev: add compile warning about use of VLAs > app/test-mldev: add compile warning about use of VLAs > app/test-pipeline: add compile warning about use of VLAs > app/test-regex: add compile warning about use of VLAs > app/test-security-perf: add compile warning about use of VLAs > lib/argparse: add compile warning about use of VLAs > lib/bbdev: add compile warning about use of VLAs > lib/bitratestats: add compile warning about use of VLAs > lib/cfgfile: add compile warning about use of VLAs > lib/cmdline: add compile warning about use of VLAs > lib/compressdev: add compile warning about use of VLAs > lib/cryptodev: add compile warning about use of VLAs > lib/distributor: add compile warning about use of VLAs > lib/dmadev: add compile warning about use of VLAs > lib/efd: add compile warning about use of VLAs > lib/fib: add compile warning about use of VLAs > lib/gpudev: add compile warning about use of VLAs > lib/gso: add compile warning about use of VLAs > lib/ip_frag: add compile warning about use of VLAs > lib/jobstats: add compile warning about use of VLAs > lib/kvargs: add compile warning about use of VLAs > lib/latencystats: add compile warning about use of VLAs > lib/log: add compile warning about use of VLAs > lib/lpm: add compile warning about use of VLAs > lib/mbuf: add compile warning about use of VLAs > lib/mempool: add compile warning about use of VLAs > lib/meter: add compile warning about use of VLAs > lib/metrics: add compile warning about use of VLAs > lib/mldev: add compile warning about use of VLAs > lib/net: add compile warning about use of VLAs > lib/node: add compile warning about use of VLAs > lib/pcapng: add compile warning about use of VLAs > lib/pci: add compile warning about use of VLAs > lib/port: add compile warning about use of VLAs > lib/ptr_compress: add compile warning about use of VLAs > lib/rawdev: add compile warning about use of VLAs > lib/reorder: add compile warning about use of VLAs > lib/rib: add compile warning about use of VLAs > lib/ring: add compile warning about use of VLAs > lib/sched: add compile warning about use of VLAs > lib/security: add compile warning about use of VLAs > lib/stack: add compile warning about use of VLAs > lib/telemetry: add compile warning about use of VLAs > lib/timer: add compile warning about use of VLAs > drivers/baseband: add compile warning about use of VLAs > drivers/bus: add compile warning about use of VLAs > drivers/common: add compile warning about use of VLAs > drivers/compress: add compile warning about use of VLAs > drivers/gpu: add compile warning about use of VLAs > drivers/mempool: add compile warning about use of VLAs > drivers/ml: add compile warning about use of VLAs > drivers/power: add compile warning about use of VLAs > drivers/raw: add compile warning about use of VLAs > drivers/regex: add compile warning about use of VLAs > drivers/vdpa: add compile warning about use of VLAs > > Konstantin Ananyev (10): > eal/linux: remove use of VLAs > eal/common: remove use of VLAs > ethdev: remove use of VLAs for Windows built code > hash: remove use of VLAs for Windows built code > hash/thash: remove use of VLAs for Windows built > rcu: remove use of VLAs for Windows built code > gro: fix overwrite unprocessed packets > gro: remove use of VLAs > net/ixgbe: remove use of VLAs > net/ice: remove use of VLAs > > Tyler Retzlaff (8): > eal: include header required for alloca > app/testpmd: remove use of VLAs for Windows built > test: remove use of VLAs for Windows built code > common/idpf: remove use of VLAs for Windows built code > net/i40e: remove use of VLAs for Windows built code > common/mlx5: remove use of VLAs for Windows built code > net/mlx5: remove use of VLAs for Windows built code > build: enable vla warnings on Windows built code > > app/dumpcap/meson.build | 8 + > app/graph/meson.build | 8 + > app/test-cmdline/meson.build | 8 + > app/test-compress-perf/meson.build | 8 + > app/test-fib/meson.build | 8 + > app/test-gpudev/meson.build | 8 + > app/test-mldev/meson.build | 8 + > app/test-pipeline/meson.build | 8 + > app/test-pmd/cmdline.c | 2 +- > app/test-pmd/cmdline_flow.c | 15 +- > app/test-pmd/config.c | 16 +- > app/test-pmd/meson.build | 10 +- > app/test-pmd/shared_rxq_fwd.c | 2 +- > app/test-regex/meson.build | 8 + > app/test-security-perf/meson.build | 8 + > app/test/test.c | 2 +- > app/test/test_bitset.c | 69 ++++--- > app/test/test_cmdline_string.c | 2 +- > app/test/test_cryptodev.c | 34 ++-- > app/test/test_cryptodev_blockcipher.c | 4 +- > app/test/test_cryptodev_crosscheck.c | 2 +- > app/test/test_dmadev.c | 9 +- > app/test/test_hash.c | 14 +- > app/test/test_lcore_var_perf.c | 2 +- > app/test/test_mempool.c | 25 +-- > app/test/test_reassembly_perf.c | 22 ++- > app/test/test_reorder.c | 48 ++--- > app/test/test_service_cores.c | 9 +- > app/test/test_thash.c | 7 +- > config/meson.build | 4 + > drivers/baseband/meson.build | 8 + > drivers/bus/meson.build | 8 + > drivers/common/idpf/idpf_common_rxtx.c | 2 +- > drivers/common/idpf/idpf_common_rxtx_avx512.c | 6 +- > drivers/common/meson.build | 8 + > drivers/common/mlx5/meson.build | 1 + > drivers/common/mlx5/mlx5_common.h | 4 +- > drivers/common/mlx5/mlx5_devx_cmds.c | 7 +- > drivers/common/nfp/meson.build | 8 + > drivers/common/nitrox/meson.build | 8 + > drivers/common/qat/meson.build | 8 + > drivers/common/sfc_efx/meson.build | 1 + > drivers/compress/meson.build | 8 + > drivers/gpu/meson.build | 8 + > drivers/mempool/meson.build | 8 + > drivers/ml/meson.build | 8 + > drivers/net/i40e/i40e_testpmd.c | 5 +- > drivers/net/ice/ice_rxtx.c | 18 +- > drivers/net/ice/ice_rxtx.h | 2 + > drivers/net/ixgbe/ixgbe_ethdev.c | 21 +- > drivers/net/ixgbe/ixgbe_rxtx_vec_common.h | 4 +- > drivers/net/meson.build | 8 + > drivers/net/mlx5/mlx5.c | 5 +- > drivers/net/mlx5/mlx5_flow.c | 6 +- > drivers/power/meson.build | 8 + > drivers/raw/meson.build | 8 + > drivers/regex/meson.build | 8 + > drivers/vdpa/meson.build | 8 + > lib/argparse/meson.build | 8 + > lib/bbdev/meson.build | 8 + > lib/bitratestats/meson.build | 8 + > lib/cfgfile/meson.build | 8 + > lib/cmdline/meson.build | 8 + > lib/compressdev/meson.build | 8 + > lib/cryptodev/meson.build | 8 + > lib/distributor/meson.build | 8 + > lib/dmadev/meson.build | 8 + > lib/eal/common/eal_common_proc.c | 5 +- > lib/eal/freebsd/include/rte_os.h | 1 + > lib/eal/linux/eal_interrupts.c | 32 ++- > lib/eal/linux/include/rte_os.h | 1 + > lib/eal/meson.build | 8 + > lib/eal/windows/include/rte_os.h | 1 + > lib/efd/meson.build | 8 + > lib/ethdev/meson.build | 8 + > lib/ethdev/rte_ethdev.c | 183 +++++++++++------- > lib/fib/meson.build | 8 + > lib/gpudev/meson.build | 8 + > lib/gro/meson.build | 8 + > lib/gro/rte_gro.c | 42 ++-- > lib/gso/meson.build | 8 + > lib/hash/meson.build | 8 + > lib/hash/rte_cuckoo_hash.c | 4 +- > lib/hash/rte_thash.c | 2 +- > lib/hash/rte_thash.h | 7 + > lib/hash/rte_thash_gf2_poly_math.c | 9 +- > lib/ip_frag/meson.build | 8 + > lib/jobstats/meson.build | 8 + > lib/kvargs/meson.build | 8 + > lib/latencystats/meson.build | 8 + > lib/log/meson.build | 8 + > lib/lpm/meson.build | 8 + > lib/mbuf/meson.build | 8 + > lib/mempool/meson.build | 2 +- > lib/meter/meson.build | 8 + > lib/metrics/meson.build | 8 + > lib/mldev/meson.build | 8 + > lib/net/meson.build | 8 + > lib/node/meson.build | 8 + > lib/pcapng/meson.build | 8 + > lib/pci/meson.build | 8 + > lib/port/meson.build | 8 + > lib/ptr_compress/meson.build | 8 + > lib/rawdev/meson.build | 8 + > lib/rcu/meson.build | 8 + > lib/rcu/rte_rcu_qsbr.c | 7 +- > lib/rcu/rte_rcu_qsbr.h | 5 + > lib/reorder/meson.build | 8 + > lib/rib/meson.build | 8 + > lib/ring/meson.build | 8 + > lib/sched/meson.build | 8 + > lib/security/meson.build | 8 + > lib/stack/meson.build | 8 + > lib/telemetry/meson.build | 8 + > lib/timer/meson.build | 8 + > 115 files changed, 950 insertions(+), 275 deletions(-) > > --
Series-Acked-by: Konstantin Ananyev <konstantin.anan...@huawei.com> > 2.47.0.vfs.0.3