DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Subject: Re: [RFC PATCH v2 00/33] build DPDK with -Wshadow
Date: Fri, 7 Nov 2025 08:02:50 -0800	[thread overview]
Message-ID: <20251107080250.584cc614@phoenix> (raw)
In-Reply-To: <20251107155034.436809-1-bruce.richardson@intel.com>

On Fri,  7 Nov 2025 15:49:56 +0000
Bruce Richardson <bruce.richardson@intel.com> wrote:

> 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
> 

Thanks we may want to wait this series until 26.03 release
Series-Acked-by: Stephen Hemminger <stephen@networkplumber.org>

  parent reply	other threads:[~2025-11-07 16:02 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-06 14:09 [RFC PATCH 00/19] Fix building much of " Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 01/19] eal: fix variable shadowing Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 02/19] ethdev: fix variable shadowing issues Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 03/19] eventdev: " Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 04/19] net: remove shadowed variable Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 05/19] graph: fix variable shadowing errors Bruce Richardson
2025-11-06 15:50   ` Stephen Hemminger
2025-11-06 16:33     ` Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 06/19] pipeline: fix variable shadowing Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 07/19] table: fix issues with " Bruce Richardson
2025-11-06 19:37   ` Stephen Hemminger
2025-11-06 19:58     ` Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 08/19] power: rename variable to eliminate shadowing Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 09/19] pcapng: rename variable to fix shadowing Bruce Richardson
2025-11-06 15:51   ` Stephen Hemminger
2025-11-06 14:09 ` [RFC PATCH 10/19] telemetry: make socket handler typedef private Bruce Richardson
2025-11-07  2:43   ` fengchengwen
2025-11-06 14:09 ` [RFC PATCH 11/19] bbdev: fix variable shadowing Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 12/19] bus/pci: remove shadowed variables Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 13/19] net/intel: rename function param to avoid shadow warnings Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 14/19] net/e1000: fix build with shadow warnings enabled Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 15/19] net/i40e: " Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 16/19] net/ice: " Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 17/19] net/cpfl: " Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 18/19] net/ixgbe: " Bruce Richardson
2025-11-06 14:09 ` [RFC PATCH 19/19] app/test-pmd: " Bruce Richardson
2025-11-07 15:49 ` [RFC PATCH v2 00/33] build DPDK with -Wshadow Bruce Richardson
2025-11-07 15:49   ` [RFC PATCH v2 01/33] eal: add more min/max helpers Bruce Richardson
2025-11-07 15:49   ` [RFC PATCH v2 02/33] eal: fix variable shadowing Bruce Richardson
2025-11-07 15:49   ` [RFC PATCH v2 03/33] ethdev: fix variable shadowing issues Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 04/33] eventdev: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 05/33] net: remove shadowed variable Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 06/33] pipeline: fix variable shadowing Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 07/33] table: fix issues with " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 08/33] power: rename variable to eliminate shadowing Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 09/33] pcapng: rename variable to fix shadowing Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 10/33] telemetry: make socket handler typedef private Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 11/33] bbdev: fix variable shadowing Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 12/33] bus/pci: remove shadowed variables Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 13/33] net/intel: rename function param to avoid shadow warnings Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 14/33] net/e1000: fix build with shadow warnings enabled Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 15/33] net/i40e: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 16/33] net/ice: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 17/33] net/cpfl: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 18/33] net/ixgbe: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 19/33] app/test-pmd: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 20/33] app/graph: " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 21/33] app/pdump: fix warning about shadowed variable Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 22/33] app/test-bbdev: use RTE_MAX3 to remove variable shadowing Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 23/33] app/test-compress-perf: fix " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 24/33] app/test-crypto-perf: fix shadowed variable Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 25/33] app/test-dma-perf: renamed " Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 26/33] app/test-eventdev: fix build with shadow warnings enabled Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 27/33] app/test-flow-perf: remove unneeded variable Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 28/33] app/test-security-perf: fix build with shadow warnings Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 29/33] app/test-pipeline: remove unnecessary variable Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 30/33] drivers: disable variable shadowing warnings for drivers Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 31/33] app/test: disable shadowing warnings for unit tests Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 32/33] examples: ignore variable shadowing warnings Bruce Richardson
2025-11-07 15:50   ` [RFC PATCH v2 33/33] build: enable shadowed variable warnings Bruce Richardson
2025-11-07 16:02   ` Stephen Hemminger [this message]
2025-11-07 16:13     ` [RFC PATCH v2 00/33] build DPDK with -Wshadow Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251107080250.584cc614@phoenix \
    --to=stephen@networkplumber.org \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).