Re: [greybus-dev] Re: [PATCH] [v2] Kbuild: move to -std=gnu11

From: Greg KH
Date: Mon May 16 2022 - 09:31:16 EST


On Mon, May 16, 2022 at 06:10:23AM -0700, Guenter Roeck wrote:
> On Mon, Feb 28, 2022 at 11:27:43AM +0100, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@xxxxxxxx>
> >
> > During a patch discussion, Linus brought up the option of changing
> > the C standard version from gnu89 to gnu99, which allows using variable
> > declaration inside of a for() loop. While the C99, C11 and later standards
> > introduce many other features, most of these are already available in
> > gnu89 as GNU extensions as well.
>
> The downside is that backporting affected patches to older kernel branches
> now fails with error messages such as
>
> mm/kfence/core.c: In function ‘kfence_init_pool’:
> mm/kfence/core.c:595:2: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode
>
> Just something to keep in mind when writing patches.

I just ran across this very issue on this commit. It's an easy fixup
for 5.17.y to make this work, so I did that in my tree. If this gets to
be too much, we might need to reconsider adding c11 to older stable
kernels.

thanks,

greg k-h