The goal is to land every deprecation currently listed in the release notes by the 26.11 ABI bump. Working back from there: any function to be removed in 26.11 needs to be marked __rte_deprecated by 26.07, and all in-tree users converted off it before the marker patch goes in so CI stays clean.
This series is the preparatory work for the rte_atomicNN_*() family under that plan. It does not yet add the __rte_deprecated marker; that's a separate follow-up once the remaining in-tree users are converted. Other items on the deprecation list (VXLAN_GPE, pipeline/table/port legacy API, the MAX enum fix, regexdev, pdump, TM locks) will follow as their own series on the same timeline. Patch 3 is the load-bearing change: the last lib/ caller of rte_atomic32_cmpset() is converted, clearing the way. Patch 7 drops RTE_FORCE_INTRINSICS entirely. With the option always on, the asm implementations of atomics, spinlock and byteorder become dead code. ~900 lines deleted; the patch most worth review attention. This makes it easier to flag the rte_atomicNN as deprecated since they are all in one place. Patch 2 retires the rte_smp_*mb deprecation notice (open since 2021) by reimplementing those APIs as wrappers over rte_atomic_thread_fence, preserving the API for readability. Patches 5 and 6 convert and clean up two driver users (bonding, nbl). Patch 4 is a preparatory workaround for a pre-existing GCC bitfield -Wmaybe-uninitialized false positive in net/zxdh, surfaced by the improved compiler visibility after patch 7. Placed ahead of patch 7 to keep every commit bisectable. Follow on patches will mechanically convert drivers. If driver writer fixes it themselves; all the beter. Stephen Hemminger (7): doc: update versions in deprecation file eal: reimplement rte_smp_*mb with rte_atomic_thread_fence ring: use C11 atomic operations for MP/SP head/tail net/zxdh: work around GCC bitfield uninit false positive net/bonding: use stdatomic net/nbl: remove unused rte_atomic16 field config: use RTE_FORCE_INTRINSICS on all platforms config/arm/meson.build | 1 - config/loongarch/meson.build | 1 - config/meson.build | 3 - config/riscv/meson.build | 1 - doc/guides/rel_notes/deprecation.rst | 12 +- doc/guides/rel_notes/release_26_07.rst | 5 + drivers/net/bonding/eth_bond_8023ad_private.h | 4 +- drivers/net/bonding/rte_eth_bond_8023ad.c | 18 +- drivers/net/nbl/nbl_hw/nbl_resource.h | 1 - drivers/net/zxdh/zxdh_msg.c | 4 +- lib/eal/arm/include/rte_atomic_32.h | 9 - lib/eal/arm/include/rte_atomic_64.h | 9 - lib/eal/arm/include/rte_byteorder.h | 3 - lib/eal/arm/include/rte_spinlock.h | 3 - lib/eal/include/generic/rte_atomic.h | 164 ++++---------- lib/eal/include/generic/rte_byteorder.h | 2 - lib/eal/include/generic/rte_spinlock.h | 10 - lib/eal/loongarch/include/rte_atomic.h | 9 - lib/eal/loongarch/include/rte_spinlock.h | 3 - lib/eal/ppc/include/rte_atomic.h | 179 --------------- lib/eal/ppc/include/rte_byteorder.h | 13 -- lib/eal/ppc/include/rte_spinlock.h | 26 --- lib/eal/riscv/include/rte_atomic.h | 9 - lib/eal/riscv/include/rte_spinlock.h | 3 - lib/eal/x86/include/rte_atomic.h | 205 +----------------- lib/eal/x86/include/rte_atomic_32.h | 188 ---------------- lib/eal/x86/include/rte_atomic_64.h | 157 -------------- lib/eal/x86/include/rte_byteorder.h | 49 ----- lib/eal/x86/include/rte_spinlock.h | 49 ----- lib/ring/rte_ring_generic_pvt.h | 64 ++++-- 30 files changed, 118 insertions(+), 1086 deletions(-) -- 2.53.0

