[RFC PATCH v2 00/33] build DPDK with -Wshadow
Bruce Richardson
bruce.richardson at intel.com
Fri Nov 7 16:49:56 CET 2025
As flagged in bugs #1742, #1743 and others, much of DPDK fails to build
when -Wshadow flag is passed to the build. This patchset fixes many issues
of this nature, but not all, in the hopes we can move towards enabling that
warning flag for all components for DPDK in future. This patchset fixes the
following components in DPDK:
* all libraries
* Intel net drivers
* all apps in the "app" folder
For the rest of the drivers and example applications, any component which
does not build successfully with the shadow warning enabled has it
explicitly disabled via cflags. Then the last patch adds -Wshadow to the
global DPDK build, which should prevent any regressions in components which
are already working.
At that point, we should not have any regressions and we can, over time,
reduce the number of components needing the -Wno-shadow flag.
RFC v2:
* take patch from Stephen for RTE_MIN/MAX fixes
* add additional fixes to clear clang warnings - it's a lot stricter than
gcc in this regard, and flags more issues.
* extend app cleanup to all apps, not just testpmd
* add per-component disabling, and add global enable flag at the end.
Bruce Richardson (32):
eal: fix variable shadowing
ethdev: fix variable shadowing issues
eventdev: fix variable shadowing issues
net: remove shadowed variable
pipeline: fix variable shadowing
table: fix issues with variable shadowing
power: rename variable to eliminate shadowing
pcapng: rename variable to fix shadowing
telemetry: make socket handler typedef private
bbdev: fix variable shadowing
bus/pci: remove shadowed variables
net/intel: rename function param to avoid shadow warnings
net/e1000: fix build with shadow warnings enabled
net/i40e: fix build with shadow warnings enabled
net/ice: fix build with shadow warnings enabled
net/cpfl: fix build with shadow warnings enabled
net/ixgbe: fix build with shadow warnings enabled
app/test-pmd: fix build with shadow warnings enabled
app/graph: fix build with shadow warnings enabled
app/pdump: fix warning about shadowed variable
app/test-bbdev: use RTE_MAX3 to remove variable shadowing
app/test-compress-perf: fix variable shadowing
app/test-crypto-perf: fix shadowed variable
app/test-dma-perf: renamed shadowed variable
app/test-eventdev: fix build with shadow warnings enabled
app/test-flow-perf: remove unneeded variable
app/test-security-perf: fix build with shadow warnings
app/test-pipeline: remove unnecessary variable
drivers: disable variable shadowing warnings for drivers
app/test: disable shadowing warnings for unit tests
examples: ignore variable shadowing warnings
build: enable shadowed variable warnings
Stephen Hemminger (1):
eal: add more min/max helpers
app/graph/conn.c | 134 +++++++++---------
app/pdump/main.c | 12 +-
app/test-bbdev/test_bbdev_perf.c | 7 +-
app/test-compress-perf/main.c | 122 ++++++++--------
.../cperf_test_pmd_cyclecount.c | 6 +-
app/test-dma-perf/main.c | 8 +-
app/test-eventdev/evt_main.c | 6 +-
app/test-eventdev/test_atomic_queue.c | 6 +-
app/test-eventdev/test_perf_common.c | 4 +-
app/test-flow-perf/main.c | 1 -
app/test-pipeline/main.c | 1 -
app/test-pmd/cmdline_flow.c | 42 +++---
app/test-pmd/config.c | 15 +-
app/test-pmd/parameters.c | 38 +++--
app/test-pmd/testpmd.c | 2 +-
app/test-security-perf/test_security_perf.c | 42 +++---
app/test/meson.build | 1 +
app/test/test_cryptodev_security_ipsec.c | 13 +-
config/meson.build | 6 +
drivers/baseband/fpga_5gnr_fec/meson.build | 2 +
drivers/bus/fslmc/meson.build | 2 +
drivers/bus/pci/linux/pci.c | 1 -
drivers/bus/pci/linux/pci_vfio.c | 2 +-
drivers/bus/pci/windows/pci.c | 1 -
drivers/common/cnxk/meson.build | 1 +
drivers/common/qat/meson.build | 1 +
drivers/compress/nitrox/meson.build | 2 +
drivers/crypto/cnxk/meson.build | 1 +
drivers/crypto/octeontx/meson.build | 1 +
drivers/crypto/openssl/meson.build | 1 +
drivers/crypto/scheduler/meson.build | 1 +
drivers/dma/dpaa2/meson.build | 2 +
drivers/event/cnxk/meson.build | 1 +
drivers/event/dlb2/meson.build | 2 +
drivers/event/sw/meson.build | 1 +
drivers/net/axgbe/meson.build | 2 +-
drivers/net/bnxt/meson.build | 1 +
drivers/net/bonding/meson.build | 1 +
drivers/net/cnxk/meson.build | 1 +
drivers/net/cxgbe/meson.build | 1 +
drivers/net/dpaa/meson.build | 1 +
drivers/net/dpaa2/meson.build | 1 +
drivers/net/ena/meson.build | 2 +
drivers/net/enetfec/meson.build | 2 +
drivers/net/enic/meson.build | 2 +
drivers/net/failsafe/meson.build | 1 +
drivers/net/intel/common/rx.h | 6 +-
drivers/net/intel/cpfl/cpfl_flow_engine_fxp.c | 2 -
drivers/net/intel/cpfl/cpfl_flow_parser.c | 6 +-
drivers/net/intel/cpfl/cpfl_fxp_rule.h | 2 -
drivers/net/intel/cpfl/cpfl_representor.h | 2 +-
drivers/net/intel/e1000/igc_ethdev.c | 6 +-
drivers/net/intel/i40e/i40e_ethdev.h | 10 +-
drivers/net/intel/ice/ice_ethdev.c | 6 +-
drivers/net/intel/ixgbe/ixgbe_fdir.c | 7 +-
drivers/net/mlx5/meson.build | 1 +
drivers/net/ntnic/meson.build | 3 +
drivers/net/pfe/meson.build | 3 +
drivers/net/qede/meson.build | 3 +
drivers/net/txgbe/meson.build | 1 +
drivers/net/zxdh/meson.build | 3 +
drivers/raw/ifpga/meson.build | 2 +
drivers/vdpa/mlx5/meson.build | 1 +
examples/bbdev_app/meson.build | 1 +
examples/bond/meson.build | 1 +
examples/dma/meson.build | 1 +
examples/ethtool/meson.build | 1 +
examples/eventdev_pipeline/meson.build | 1 +
examples/flow_filtering/meson.build | 1 +
examples/ip_pipeline/meson.build | 1 +
examples/ipsec-secgw/meson.build | 1 +
examples/l2fwd-crypto/meson.build | 1 +
examples/l2fwd-event/meson.build | 1 +
examples/l2fwd-jobstats/meson.build | 1 +
examples/l2fwd-keepalive/meson.build | 1 +
examples/l3fwd-graph/meson.build | 1 +
examples/l3fwd-power/meson.build | 1 +
examples/l3fwd/meson.build | 1 +
.../client_server_mp/mp_server/meson.build | 1 +
examples/packet_ordering/meson.build | 1 +
examples/ptpclient/meson.build | 1 +
examples/qos_sched/meson.build | 1 +
.../server_node_efd/efd_server/meson.build | 1 +
examples/vhost/meson.build | 1 +
.../vm_power_manager/guest_cli/meson.build | 1 +
examples/vm_power_manager/meson.build | 1 +
examples/vmdq/meson.build | 1 +
lib/bbdev/rte_bbdev.c | 2 +-
lib/eal/common/eal_common_options.c | 22 +--
lib/eal/common/eal_common_trace.c | 89 ++++++------
lib/eal/common/malloc_heap.c | 2 +-
lib/eal/include/rte_common.h | 31 +++-
lib/ethdev/ethdev_driver.c | 6 +-
lib/ethdev/rte_ethdev.c | 1 -
lib/eventdev/rte_event_eth_rx_adapter.c | 5 +-
lib/eventdev/rte_event_eth_tx_adapter.c | 8 +-
lib/net/net_crc_avx512.c | 4 +-
lib/pcapng/rte_pcapng.c | 7 +-
lib/pipeline/rte_swx_ctl.c | 11 +-
lib/pipeline/rte_swx_pipeline.c | 21 ++-
lib/pipeline/rte_swx_pipeline_internal.h | 10 +-
lib/power/rte_power_pmd_mgmt.c | 6 +-
lib/table/rte_lru.h | 38 ++---
lib/table/rte_lru_arm64.h | 14 +-
lib/table/rte_lru_x86.h | 4 +-
lib/table/rte_swx_table_em.c | 2 -
lib/table/rte_swx_table_learner.c | 4 +-
lib/table/rte_table_hash_key16.c | 4 +-
lib/table/rte_table_hash_key32.c | 4 +-
lib/table/rte_table_hash_key8.c | 4 +-
lib/telemetry/rte_telemetry.h | 11 --
lib/telemetry/telemetry.c | 2 +-
lib/telemetry/telemetry_internal.h | 11 ++
113 files changed, 489 insertions(+), 425 deletions(-)
--
2.48.1
More information about the dev
mailing list