'__sync' builtins are deprecated, use '__atomic' builtins instead for packet_ordering.
Fixes: 850f373 ("examples/packet_ordering: new sample app") Signed-off-by: Phil Yang <phil.y...@arm.com> Reviewed-by: Gavin Hu <gavin...@arm.com> Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com> --- examples/packet_ordering/main.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/examples/packet_ordering/main.c b/examples/packet_ordering/main.c index 149bfdd..61740a9 100644 --- a/examples/packet_ordering/main.c +++ b/examples/packet_ordering/main.c @@ -448,7 +448,16 @@ worker_thread(void *args_ptr) if (unlikely(burst_size == 0)) continue; +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70100) + /* + * '__sync' builtins are deprecated, but '__atomic' ones + * are sub-optimized in older GCC versions. + */ __sync_fetch_and_add(&app_stats.wkr.dequeue_pkts, burst_size); +#else + __atomic_fetch_add(&app_stats.wkr.dequeue_pkts, burst_size, + __ATOMIC_RELAXED); +#endif /* just do some operation on mbuf */ for (i = 0; i < burst_size;) @@ -457,11 +466,29 @@ worker_thread(void *args_ptr) /* enqueue the modified mbufs to workers_to_tx ring */ ret = rte_ring_enqueue_burst(ring_out, (void *)burst_buffer, burst_size, NULL); +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70100) + /* + * '__sync' builtins are deprecated, but '__atomic' ones + * are sub-optimized in older GCC versions. + */ __sync_fetch_and_add(&app_stats.wkr.enqueue_pkts, ret); +#else + __atomic_fetch_add(&app_stats.wkr.enqueue_pkts, ret, + __ATOMIC_RELAXED); +#endif if (unlikely(ret < burst_size)) { /* Return the mbufs to their respective pool, dropping packets */ +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70100) + /* + * '__sync' builtins are deprecated, but '__atomic' ones + * are sub-optimized in older GCC versions. + */ __sync_fetch_and_add(&app_stats.wkr.enqueue_failed_pkts, (int)burst_size - ret); +#else + __atomic_fetch_add(&app_stats.wkr.enqueue_failed_pkts, + (int)burst_size - ret, __ATOMIC_RELAXED); +#endif pktmbuf_free_bulk(&burst_buffer[ret], burst_size - ret); } } -- 2.7.4