[dpdk-dev] [PATCH v6] eal/x86: add 128-bit atomic compare exchange
Thomas Monjalon
thomas at monjalon.net
Thu Apr 4 14:18:02 CEST 2019
04/04/2019 14:14, Eads, Gage:
> From: Thomas Monjalon [mailto:thomas at 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;
More information about the dev
mailing list