Re: [PATCH] s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS

Nathan Chancellor
2025-01-27T21:09:41Z

On Thu, Jan 23, 2025 at 11:40:40AM +0100, Alexander Gordeev wrote:
> On Wed, Jan 22, 2025 at 07:54:27PM -0700, Nathan Chancellor wrote:
> > GCC changed the default C standard dialect from gnu17 to gnu23,
> > which should not have impacted the kernel because it explicitly requests
> > the gnu11 standard in the main Makefile. However, there are certain
> > places in the s390 code that use their own CFLAGS without a '-std='
> > value, which break with this dialect change because of the kernel's own
> > definitions of bool, false, and true conflicting with the C23 reserved
> > keywords.
> >
> > include/linux/stddef.h:11:9: error: cannot use keyword 'false' as enumeration constant
> > 11 | false = 0,
> > | ^~~~~
> > include/linux/stddef.h:11:9: note: 'false' is a keyword with '-std=c23' onwards
> > include/linux/types.h:35:33: error: 'bool' cannot be defined via 'typedef'
> > 35 | typedef _Bool bool;
> > | ^~~~
> > include/linux/types.h:35:33: note: 'bool' is a keyword with '-std=c23' onwards
> >
> > Add '-std=gnu11' to the decompressor and purgatory CFLAGS to eliminate
> > these errors and make the C standard version of these areas match the
> > rest of the kernel.
> >
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> ...
> > ---
> > arch/s390/Makefile | 2 +-
> > arch/s390/purgatory/Makefile | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
>
> Applied, thanks!

I noticed that a Fixes tag got added to this change in the s390 tree but
I do not think it is correct, as I would expect this issue to be visible
prior to that change. I think this will need to go back to all supported
stable versions to allow building with GCC 15. It seems like maybe the
tags from the parent commit (0a89123deec3) made it into my change?

Cheers,
Nathan