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

Reply via email to