From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4E9CEA04DB; Thu, 15 Oct 2020 17:11:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 988EC1EA31; Thu, 15 Oct 2020 17:10:35 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id F19DC1E9F2 for ; Thu, 15 Oct 2020 17:10:33 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from elibr@nvidia.com) with SMTP; 15 Oct 2020 18:10:31 +0300 Received: from nvidia.com (dev-r-vrt-214.mtr.labs.mlnx [10.212.214.1]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 09FFAVCn016003; Thu, 15 Oct 2020 18:10:31 +0300 From: Eli Britstein To: dev@dpdk.org Cc: Thomas Monjalon , Asaf Penso , David Marchand , Eli Britstein Date: Thu, 15 Oct 2020 15:10:17 +0000 Message-Id: <20201015151017.8060-1-elibr@nvidia.com> X-Mailer: git-send-email 2.28.0.546.g385c171 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH V2 1/1] eal: fix build with conflicting libc variable memory_order X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The cited commit introduced functions with 'int memory_order' argument. The C11 standard section 7.17.1.4 defines 'memory_order' as the "enumerated type whose enumerators identify memory ordering constraints". A compilation error occurs: error: declaration of 'memory_order' shadows a global declaration [-Werror=shadow] rte_atomic_thread_fence(int memory_order) This issue was hit when trying to compile OVS with gcc 4.8.5. This compiler version does not provide stdatomic.h, so enum memory_order is redefined in OVS code. In another case, if the compiler does provide stdatomic.h header, passing -Wsystem-headers in the CFLAGS will also cause that failure. Fix it by changing the argument name 'memory_order' to 'memorder'. Fixes: 672a15056380 ("eal: add wrapper for C11 atomic thread fence") Signed-off-by: Eli Britstein --- lib/librte_eal/arm/include/rte_atomic_32.h | 4 ++-- lib/librte_eal/arm/include/rte_atomic_64.h | 4 ++-- lib/librte_eal/include/generic/rte_atomic.h | 2 +- lib/librte_eal/ppc/include/rte_atomic.h | 4 ++-- lib/librte_eal/x86/include/rte_atomic.h | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/librte_eal/arm/include/rte_atomic_32.h b/lib/librte_eal/arm/include/rte_atomic_32.h index 9d0568d497..fe48ab428e 100644 --- a/lib/librte_eal/arm/include/rte_atomic_32.h +++ b/lib/librte_eal/arm/include/rte_atomic_32.h @@ -34,9 +34,9 @@ extern "C" { #define rte_io_rmb() rte_rmb() static __rte_always_inline void -rte_atomic_thread_fence(int memory_order) +rte_atomic_thread_fence(int memorder) { - __atomic_thread_fence(memory_order); + __atomic_thread_fence(memorder); } #ifdef __cplusplus diff --git a/lib/librte_eal/arm/include/rte_atomic_64.h b/lib/librte_eal/arm/include/rte_atomic_64.h index c518559bc9..20dd6c75dd 100644 --- a/lib/librte_eal/arm/include/rte_atomic_64.h +++ b/lib/librte_eal/arm/include/rte_atomic_64.h @@ -38,9 +38,9 @@ extern "C" { #define rte_io_rmb() rte_rmb() static __rte_always_inline void -rte_atomic_thread_fence(int memory_order) +rte_atomic_thread_fence(int memorder) { - __atomic_thread_fence(memory_order); + __atomic_thread_fence(memorder); } /*------------------------ 128 bit atomic operations -------------------------*/ diff --git a/lib/librte_eal/include/generic/rte_atomic.h b/lib/librte_eal/include/generic/rte_atomic.h index d1255b2d8c..276272f40b 100644 --- a/lib/librte_eal/include/generic/rte_atomic.h +++ b/lib/librte_eal/include/generic/rte_atomic.h @@ -122,7 +122,7 @@ static inline void rte_io_rmb(void); /** * Synchronization fence between threads based on the specified memory order. */ -static inline void rte_atomic_thread_fence(int memory_order); +static inline void rte_atomic_thread_fence(int memorder); /*------------------------- 16 bit atomic operations -------------------------*/ diff --git a/lib/librte_eal/ppc/include/rte_atomic.h b/lib/librte_eal/ppc/include/rte_atomic.h index a91989930b..6a7e65210c 100644 --- a/lib/librte_eal/ppc/include/rte_atomic.h +++ b/lib/librte_eal/ppc/include/rte_atomic.h @@ -37,9 +37,9 @@ extern "C" { #define rte_io_rmb() rte_rmb() static __rte_always_inline void -rte_atomic_thread_fence(int memory_order) +rte_atomic_thread_fence(int memorder) { - __atomic_thread_fence(memory_order); + __atomic_thread_fence(memorder); } /*------------------------- 16 bit atomic operations -------------------------*/ diff --git a/lib/librte_eal/x86/include/rte_atomic.h b/lib/librte_eal/x86/include/rte_atomic.h index b7d6b06ddf..915afd9d27 100644 --- a/lib/librte_eal/x86/include/rte_atomic.h +++ b/lib/librte_eal/x86/include/rte_atomic.h @@ -87,12 +87,12 @@ rte_smp_mb(void) * used instead. */ static __rte_always_inline void -rte_atomic_thread_fence(int memory_order) +rte_atomic_thread_fence(int memorder) { - if (memory_order == __ATOMIC_SEQ_CST) + if (memorder == __ATOMIC_SEQ_CST) rte_smp_mb(); else - __atomic_thread_fence(memory_order); + __atomic_thread_fence(memorder); } /*------------------------- 16 bit atomic operations -------------------------*/ -- 2.28.0.546.g385c171