Re: [PATCH] tools/compiler: match glibc 2.42 definition of __attribute_const__
From: David Laight
Date: Tue Jun 30 2026 - 13:41:29 EST
On Tue, 30 Jun 2026 23:58:40 +0900
"Joy H.J. Lee" <rkr0k0r@xxxxxxxxx> wrote:
> glibc 2.42 added __attribute_const__ to sys/cdefs.h:
>
> # define __attribute_const__ __attribute__ ((__const__))
>
> GCC 15 warns when a macro is redefined to a different replacement list
> (-Wbuiltin-macro-redefined). Since host tool Makefiles (resolve_btfids,
> objtool) pass -Werror, this conflict becomes fatal when building with
> glibc 2.42 and GCC 15.
>
> Per C11 §6.10.3, identical replacement lists are accepted silently.
> Match the glibc definition exactly, including the space before "((", so
> the redefinition is accepted without warning.
>
> Signed-off-by: Joy H.J. Lee <rkr0k0r@xxxxxxxxx>
> ---
> tools/include/linux/compiler.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h
> index f40bd2b04..f2f54b038 100644
> --- a/tools/include/linux/compiler.h
> +++ b/tools/include/linux/compiler.h
> @@ -119,7 +119,7 @@
> #define __read_mostly
>
> #ifndef __attribute_const__
> -# define __attribute_const__
> +# define __attribute_const__ __attribute__ ((__const__))
That doesn't look right, you are completely changing the value
when it isn't already defined.
David
> #endif
>
> #ifndef __maybe_unused