|SUCCESS|dpdk|3171b278ca| Intel-Testing
sys_stv at intel.com
sys_stv at intel.com
Tue Sep 29 10:22:36 CEST 2026
Test-Label: intel-Testing
Test-Status: SUCCESS
_Testing PASS_
DPDK git repo: dpdk
commit 3171b278ca807344b9fb6192b96af730ab70a403
Author: Bruce Richardson <bruce.richardson at intel.com>
Date: Fri Sep 25 13:49:58 2026 +0100
eal: fix C++ build when stdatomics is set
When the DPDK build is configured to use stdatomics rather than compiler
builtin atomics, the C++ chkincs builds were failing
In file included from buildtools/chkincs/staging/generic/rte_atomic.h:18,
from lib/eal/x86/include/rte_atomic.h:12,
from buildtools/chkincs/chkincs-cpp.p/rte_atomic.cpp:1:
buildtools/chkincs/staging/rte_stdatomic.h:30:9: error:
‘memory_order’ does not name a type
30 | typedef memory_order rte_memory_order;
| ^~~~~~~~~~~~
The cause is differences in atomics in C (C11) and C++ (e.g. C++17 as
supported by current GCC). As explained by AI analysis:
_Atomic(T) is a C11 feature. In C++ mode, GCC 15 does not support it
as a type specifier, and <stdatomic.h> in C++17 doesn't expose
memory_order in the global namespace (that's only in C++23). DPDK
headers also use _Atomic in anonymous unions and under extern "C",
which are incompatible with C++'s std::atomic<T> mapping.
To fix this in a resilient manner we need to go from two blocks in
rte_atomic.h to three. We have the existing non-standard/builtin
atomics path, but the standard atomic path now needs to be split into C
compatible and C++ compatible blocks. This fixes the build issues with
C++ while keeping existing C builds unchanged.
Bugzilla ID: 1985
Fixes: 5c381a3587d1 ("eal: provide stdatomic API")
Cc: stable at dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
Testing Summary : 18 Case Done, 18 Successful, 0 Failures
TestPlan:
pf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/pf_smoke_test_plan.rst
vf_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/vf_smoke_test_plan.rst
virtio_smoke: http://git.dpdk.org/tools/dts/tree/test_plans/virtio_smoke_test_plan.rst
TestSuite:
pf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_pf_smoke.py
vf_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_vf_smoke.py
virtio_smoke: http://git.dpdk.org/tools/dts/tree/tests/TestSuite_virtio_smoke.py
OS : Ubuntu 24.04.4 LTS
Kernel : 6.8.0-71-generic
GCC : 13.3.0-6ubuntu2~24.04.1
NIC : Ethernet Controller XL710 for 40GbE QSFP+
Target : x86_64-native-linuxapp-gcc
Test result details:
+-------------+---------------------------+-------+
| suite | case | status|
+-------------+---------------------------+-------+
| asan_smoke | test_rxtx_with_ASan_enable| passed|
| pf_smoke | test_pf_jumbo_frames | passed|
| pf_smoke | test_pf_rss | passed|
| pf_smoke | test_pf_tx_rx_queue | passed|
| vf_smoke | test_vf_rss | passed|
| vf_smoke | test_vf_tx_rx_queue | passed|
| vf_smoke | test_vf_jumbo_frames | n/a |
| virtio_smoke| test_virtio_loopback | passed|
| virtio_smoke| test_virtio_pvp | passed|
+-------------+---------------------------+-------+
OS : Ubuntu 24.04.4 LTS
Kernel : 6.8.0-87-generic
GCC : 13.3.0-6ubuntu2~24.04.1
NIC : Ethernet Controller E810-C for SFP
Target : x86_64-native-linuxapp-gcc
Test result details:
+-------------+---------------------------+-------+
| suite | case | status|
+-------------+---------------------------+-------+
| asan_smoke | test_rxtx_with_ASan_enable| passed|
| pf_smoke | test_pf_jumbo_frames | passed|
| pf_smoke | test_pf_rss | passed|
| pf_smoke | test_pf_tx_rx_queue | passed|
| vf_smoke | test_vf_jumbo_frames | passed|
| vf_smoke | test_vf_rss | passed|
| vf_smoke | test_vf_tx_rx_queue | passed|
| virtio_smoke| test_virtio_loopback | passed|
| virtio_smoke| test_virtio_pvp | passed|
+-------------+---------------------------+-------+
DPDK STV team
More information about the test-report
mailing list