Re: [PATCH linux-next] tools: compiler-gcc.h: Keep compatible with older GCC versions

From: Alexander Lobakin
Date: Mon Jan 03 2022 - 09:47:51 EST


From: cgel.zte@xxxxxxxxx
Date: Sun, 2 Jan 2022 12:02:01 +0000

> From: xu xin <xu.xin16@xxxxxxxxxx>
>
> When HOST CC = gcc (GCC) 4.8.5, we found that there is an error occurring:
^^^^^

>From [0]:

Program Minimal version
GNU C 5.1

This applies to both HOSTCC and CC.

> Undefined __has_attribute as we built the whole kernel and tools.
>
> To solve this, this patch is given to keep the compatibility with older
> GCC versions.
>
> Reported-by: Zeal Robot <zealci@xxxxxxxxxx>
> Co-developed-by: wangyong <wang.yong12@xxxxxxxxxx>
> Signed-off-by: xu xin <xu.xin16@xxxxxxxxxx>
> ---
> tools/include/linux/compiler-gcc.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tools/include/linux/compiler-gcc.h b/tools/include/linux/compiler-gcc.h
> index 8816f06fc6c7..333ed16b3b12 100644
> --- a/tools/include/linux/compiler-gcc.h
> +++ b/tools/include/linux/compiler-gcc.h
> @@ -16,6 +16,10 @@
> # define __fallthrough __attribute__ ((fallthrough))
> #endif
>
> +#ifndef __has_attribute
> +# define __has_attribute(x) 0 /* Compatibility with GCC versions < 5.x */
> +#endif
> +
> #if __has_attribute(__error__)
> # define __compiletime_error(message) __attribute__((error(message)))
> #endif
> --
> 2.25.1

[0] https://elixir.bootlin.com/linux/v5.16-rc8/source/Documentation/process/changes.rst#L32

Al