From: Nathan Chancellor <nathan@kernel.org>
To: David Laight <david.laight.linux@gmail.com>
Cc: "Joy H.J. Lee" <rkr0k0r@gmail.com>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org,
masahiroy@kernel.org
Subject: Re: [PATCH] tools/compiler: match glibc 2.42 definition of __attribute_const__
Date: Tue, 30 Jun 2026 11:42:41 -0700 [thread overview]
Message-ID: <20260630184241.GA327950@ax162> (raw)
In-Reply-To: <20260630184106.7bb3f22f@pumpkin>
On Tue, Jun 30, 2026 at 06:41:06PM +0100, David Laight wrote:
> On Tue, 30 Jun 2026 23:58:40 +0900
> "Joy H.J. Lee" <rkr0k0r@gmail.com> 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@gmail.com>
> > ---
> > 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.
That's the point, no? If compiler.h is included before sys/cdefs.h, you
would get an instance of -Wbuiltin-macro-redefined like described in the
commit message. I am sure this is fine, we unconditionally define it in
compiler_attributes.h.
For the record, I have not seen an error like the commit message
describes in any of my build tests or environment. It would be good to
know under what circumstances this actually happens (or is this just
some contrivied issue or AI hallucination?).
Lastly, I don't think this should go through Kbuild, we don't touch
tools/. Perhaps this should go through Andrew Morton?
> > #endif
> >
> > #ifndef __maybe_unused
>
--
Cheers,
Nathan
prev parent reply other threads:[~2026-06-30 18:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 14:58 [PATCH] tools/compiler: match glibc 2.42 definition of __attribute_const__ Joy H.J. Lee
2026-06-30 17:41 ` David Laight
2026-06-30 18:42 ` Nathan Chancellor [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260630184241.GA327950@ax162 \
--to=nathan@kernel.org \
--cc=david.laight.linux@gmail.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=rkr0k0r@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox