On Fri, 16 Feb 2018 16:22:32 +0000
Emil Velikov <emil.l.veli...@gmail.com> wrote:

> From: Emil Velikov <emil.veli...@collabora.com>
> 
> A more generic way to evaluating various attributes, __has_attribute is
> available with gcc, clang, even the Oracle/Sun compiler.
> 
> Signed-off-by: Emil Velikov <emil.veli...@collabora.com>
> ---
>  src/scanner.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/src/scanner.c b/src/scanner.c
> index 679e006..c93070c 100644
> --- a/src/scanner.c
> +++ b/src/scanner.c
> @@ -1744,7 +1744,11 @@ emit_code(struct protocol *protocol, enum visibility 
> vis)
>        * we want to have the symbols hidden. */
>       if (vis == PRIVATE) {
>               symbol_visibility = "WL_PRIVATE";
> -             printf("#if defined(__GNUC__) && __GNUC__ >= 4\n"
> +             printf("#ifndef __has_attribute\n"
> +                    "# define __has_attribute(x) 0  /* Compatibility with 
> non-clang compilers. */\n"
> +                    "#endif\n\n");
> +
> +             printf("#if (__has_attribute(visibility) || defined(__GNUC__) 
> && __GNUC__ >= 4\n"
>                      "#define WL_PRIVATE __attribute__ 
> ((visibility(\"hidden\")))\n"
>                      "#else\n"
>                      "#define WL_PRIVATE\n"

Reviewed-by: Pekka Paalanen <pekka.paala...@collabora.co.uk>


Thanks,
pq

Attachment: pgpzsoo53zhrT.pgp
Description: OpenPGP digital signature

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to