[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260120191540.50a22ba8@pumpkin>
Date: Tue, 20 Jan 2026 19:15:40 +0000
From: David Laight <david.laight.linux@...il.com>
To: Bill Wendling <morbo@...gle.com>
Cc: Kees Cook <kees@...nel.org>, "Gustavo A. R. Silva"
<gustavoars@...nel.org>, Nathan Chancellor <nathan@...nel.org>, Nick
Desaulniers <nick.desaulniers+lkml@...il.com>, Justin Stitt
<justinstitt@...gle.com>, Miguel Ojeda <ojeda@...nel.org>, Peter Zijlstra
<peterz@...radead.org>, Andrew Morton <akpm@...ux-foundation.org>, Heiko
Carstens <hca@...ux.ibm.com>, Marc Herbert <Marc.Herbert@...ux.intel.com>,
Uros Bizjak <ubizjak@...il.com>, Tejun Heo <tj@...nel.org>, Jeff Xu
<jeffxu@...omium.org>, Michal Koutný <mkoutny@...e.com>,
Shakeel Butt <shakeel.butt@...ux.dev>, Thomas Weißschuh
<thomas.weissschuh@...utronix.de>, John Stultz <jstultz@...gle.com>,
Christian Brauner <brauner@...nel.org>, Randy Dunlap
<rdunlap@...radead.org>, Brian Gerst <brgerst@...il.com>, Masahiro Yamada
<masahiroy@...nel.org>, linux-kernel@...r.kernel.org,
linux-hardening@...r.kernel.org, llvm@...ts.linux.dev, Nicolas Schier
<nsc@...nel.org>, Tamir Duberstein <tamird@...il.com>, Steven Rostedt
<rostedt@...dmis.org>, "Jason A. Donenfeld" <Jason@...c4.com>, "H. Peter
Anvin" <hpa@...or.com>, Naman Jain <namjain@...ux.microsoft.com>, Simon
Horman <horms@...nel.org>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, Ingo Molnar <mingo@...nel.org>, Thomas Gleixner
<tglx@...nel.org>, Douglas Anderson <dianders@...omium.org>,
linux-kbuild@...r.kernel.org
Subject: Re: [PATCH v4 1/2] Compiler Attributes: Add __counted_by_ptr macro
On Tue, 20 Jan 2026 10:12:34 -0800
Bill Wendling <morbo@...gle.com> wrote:
> On Sat, Jan 17, 2026 at 11:07 AM Kees Cook <kees@...nel.org> wrote:
> >
> > On Fri, Jan 16, 2026 at 09:53:18AM +0000, David Laight wrote:
> > > On Fri, 16 Jan 2026 00:57:57 +0000
> > > Bill Wendling <morbo@...gle.com> wrote:
> > >
> > > > Introduce __counted_by_ptr(), which works like __counted_by(), but for
> > > > pointer struct members.
> > > >
> > > > struct foo {
> > > > int a, b, c;
> > > > char *buffer __counted_by_ptr(bytes);
> > > > short nr_bars;
> > > > struct bar *bars __counted_by_ptr(nr_bars);
> > > > size_t bytes;
> > > > };
> > > >
> > > > Because "counted_by" can only be applied to pointer members in very
> > > > recent compiler versions, its application ends up needing to be distinct
> > > > from flexibe array "counted_by" annotations, hence a separate macro.
> > > ...
> > > > diff --git a/Makefile b/Makefile
> > > > index 9d38125263fb..6b029f694bc2 100644
> > > > --- a/Makefile
> > > > +++ b/Makefile
> > > > @@ -952,6 +952,12 @@ KBUILD_CFLAGS += $(CC_AUTO_VAR_INIT_ZERO_ENABLER)
> > > > endif
> > > > endif
> > > >
> > > > +ifdef CONFIG_CC_IS_CLANG
> > > > +ifdef CONFIG_CC_HAS_COUNTED_BY_PTR
> > > > +KBUILD_CFLAGS += -fexperimental-late-parse-attributes
> > > > +endif
> > > > +endif
> > >
> > > Will that still be needed for clang 22?
> >
> > AFAIK, yes. AIUI, this flag will remain while -fbounds-safety continues
> > to be upstreamed into LLVM.
> >
> > > Looks a bit like a temporary flag to avoid regressions.
> > > Probably ought to at least have a comment that it won't be needed
> > > by some future clang version so that it gets tidied up.
> >
> > Once it's no longer needed, yes, I will want it removed from the
> > Makefile.
> >
> Would it be good to 'fixup' a comment in the Makefile for that?
Wrap with:
# Update version when no longer required
ifneq ($(call clang-min-version, 999999),y)
Although you might one day need the -f option for something entirely different.
So perhaps the logic that enables CC_HAS_COUNTER_BY_PTR need to do the
extra version check and set something so that -fexperimental-late-parse-attributes
is added here (so it only added once if needed by multiple things).
David
Powered by blists - more mailing lists