> +++ b/lib/eal/include/rte_compat.h
> @@ -33,8 +33,11 @@ section(".text.internal")))
>  #elif !defined ALLOW_INTERNAL_API && __has_attribute(diagnose_if) /*
> For clang */

Why doesn't the __has_attribute take care of this?
I would have thought that gcc would check the for the attribute, find it
doesn't support it and ignore the whole thing?

It appears that the '-Wgcc-compat' check is too naive and doesn't pick up the `__has_attribute` or `#if __clang__` and realise that there isn't really a compatibility issue with the code.

Mike.