On 18.01.24 15:59, Ilya Maximets wrote: > GCC 14 started to advertise c_atomic extension, older versions didn't > do that. Add check for __clang__, so GCC doesn't include headers > designed for Clang. > > Another option would be to prefer stdatomic implementation instead, > but some older versions of Clang are not able to use stdatomic.h > supplied by GCC as described in commit: > 07ece367fb5f ("ovs-atomic: Prefer Clang intrinsics over <stdatomic.h>.") > > This change fixes OVS build with GCC on Fedora Rawhide (40). > > Reported-by: Jakob Meng <c...@jakobmeng.de> > Signed-off-by: Ilya Maximets <i.maxim...@ovn.org> > --- > lib/ovs-atomic.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/ovs-atomic.h b/lib/ovs-atomic.h > index ab9ce6b2e..f140d25fe 100644 > --- a/lib/ovs-atomic.h > +++ b/lib/ovs-atomic.h > @@ -328,7 +328,7 @@ > #if __CHECKER__ > /* sparse doesn't understand some GCC extensions we use. */ > #include "ovs-atomic-pthreads.h" > - #elif __has_extension(c_atomic) > + #elif __clang__ && __has_extension(c_atomic) > #include "ovs-atomic-clang.h" > #elif HAVE_ATOMIC && __cplusplus >= 201103L > #include "ovs-atomic-c++.h"
Tested with latest gcc 14 [0] from Fedora Rawhide and it fixed all my OVS compilation issues. Thank you! [0] gcc (GCC) 14.0.1 20240113 (Red Hat 14.0.1-0) Acked-by: Jakob Meng <jm...@redhat.com> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev