04/04/2019 14:14, Eads, Gage: > From: Thomas Monjalon [mailto:tho...@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 ‘__int128’ types [-Werror=pedantic] > > > > > > We can try this kind of workaround (disable pedantic locally): > > > > > https://github.com/HowardHinnant/date/pull/38/commits/177032852d5b46 > > 14 > > > 112ca1ab3ef42d6b41824816 > > > > Or better: > > __extension__ typedef __int128 int128; > > > > Taking that one step further -- RTE_STD_C11 evaluates to __extension__ (when > the STD C version is sufficiently old).
I don't think __int128 is part of C11. Is it? Ferruh, I cannot reproduce the compiler error. What is your compiler? Please, could you test this patch? --- 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]; - __int128 int128; + __extension__ __int128 int128; }; } __rte_aligned(16) rte_int128_t;