Dear dpdk dev,
I'm using dpdk 21.11 LTS, when compile my program with CPP flag "-std=c++20",
the compiler report below errors. After checking file rte_spinlock.h, I think
the error report by compiler is valid, there should be a potential issue when
using functions rte_spinlock_recursive_lock, rte_spinlock_recursive_unlock and
rte_spinlock_recursive_trylock in multi-thread, we could either remove
"volatile" definition to ask users to handle the multi-thread issue, or using
atomic operatings instead of self-increment and self-decrement.
/home/dpdk/lib/eal/include/generic/rte_spinlock.h:221:12: error: increment of
object of volatile-qualified type 'volatile int' is deprecated
[-Werror,-Wdeprecated-volatile]
slr->count++;
^
/home/dpdk/lib/eal/include/generic/rte_spinlock.h:231:6: error: decrement of
object of volatile-qualified type 'volatile int' is deprecated
[-Werror,-Wdeprecated-volatile]
if (--(slr->count) == 0) {
^
/home/dpdk/lib/eal/include/generic/rte_spinlock.h:255:12: error: increment of
object of volatile-qualified type 'volatile int' is deprecated
[-Werror,-Wdeprecated-volatile]
slr->count++;
BR,
[A close up of a sign Description automatically generated]
Xiangyun Zhou
NPG SWE SWA
Intel Corporation | intel.com