From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH v6] eal/x86: add 128-bit atomic compare exchange Date: Thu, 04 Apr 2019 14:18:02 +0200 Message-ID: <2748440.W4LoRDhJ5f@xps> References: <20190403193541.28044-1-thomas@monjalon.net> <3359378.XCyAA4UgPl@xps> <9184057F7FC11744A2107296B6B8EB1E54210CC8@FMSMSX108.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Cc: Shahaf Shuler , Matan Azrad , Yongseok Koh , "dev@dpdk.org" , "olivier.matz@6wind.com" , "arybchenko@solarflare.com" , "Richardson, Bruce" , "Ananyev, Konstantin" , "gavin.hu@arm.com" , "Honnappa.Nagarahalli@arm.com" , "nd@arm.com" , "chaozhu@linux.vnet.ibm.com" , "jerinj@marvell.com" , "hemant.agrawal@nxp.com" To: "Eads, Gage" , "Yigit, Ferruh" Return-path: Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id 0F9501B3B6 for ; Thu, 4 Apr 2019 14:18:08 +0200 (CEST) In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E54210CC8@FMSMSX108.amr.corp.intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 04/04/2019 14:14, Eads, Gage: > From: Thomas Monjalon [mailto:thomas@monjalon.net] > > 04/04/2019 14:08, Thomas Monjalon: > > > 04/04/2019 13:47, Ferruh Yigit: > > > > .../dpdk/x86_64-native-linuxapp-gcc/include/rte_atomic_64.h:223:3: > > > > error: ISO C does not support =E2=80=98__int128=E2=80=99 types [-We= rror=3Dpedantic] > > > > > > We can try this kind of workaround (disable pedantic locally): > > > > > https://github.com/HowardHinnant/date/pull/38/commits/177032852d5b46 > > 14 > > > 112ca1ab3ef42d6b41824816 > >=20 > > Or better: > > __extension__ typedef __int128 int128; > >=20 >=20 > Taking that one step further -- RTE_STD_C11 evaluates to __extension__ (w= hen the STD C version is sufficiently old). I don't think __int128 is part of C11. Is it? =46erruh, I cannot reproduce the compiler error. What is your compiler? Please, could you test this patch? =2D-- a/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h +++ b/lib/librte_eal/common/include/arch/x86/rte_atomic_64.h @@ -220,7 +220,7 @@ typedef struct { RTE_STD_C11 union { uint64_t val[2]; =2D __int128 int128; + __extension__ __int128 int128; }; } __rte_aligned(16) rte_int128_t;