From 97c7311c64468532c71699e18e724d8488d3aa3c Mon Sep 17 00:00:00 2001 From: Romain Naour Date: Wed, 7 May 2025 23:21:10 +0200 Subject: [PATCH] configs/qemu_mips*: backport a patch for GCC 15.x compatibility Mips kernel maintainer merged a patch [1] for GCC 15.x compatibility that will likely be merged upstream soon. [1] https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=0f4ae7c6ecb89bfda026d210dcf8216fb67d2333 Signed-off-by: Romain Naour Signed-off-by: Julien Olivain --- ...g-specified-in-KBUILD_CFLAGS-to-vdso.patch | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 board/qemu/patches/linux/0001-mips-Add-std-flag-specified-in-KBUILD_CFLAGS-to-vdso.patch diff --git a/board/qemu/patches/linux/0001-mips-Add-std-flag-specified-in-KBUILD_CFLAGS-to-vdso.patch b/board/qemu/patches/linux/0001-mips-Add-std-flag-specified-in-KBUILD_CFLAGS-to-vdso.patch new file mode 100644 index 0000000000..630fcf6315 --- /dev/null +++ b/board/qemu/patches/linux/0001-mips-Add-std-flag-specified-in-KBUILD_CFLAGS-to-vdso.patch @@ -0,0 +1,52 @@ +From c94606e06b54bc7b909fb342aa8dae732b50f5cd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 29 Mar 2025 08:39:03 -0700 +Subject: [PATCH] mips: Add -std= flag specified in KBUILD_CFLAGS to vdso + CFLAGS + +GCC 15 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, mips/vdso code uses +its 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 as specified in KBUILD_CFLAGS 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. + +Upstream: https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=0f4ae7c6ecb89bfda026d210dcf8216fb67d2333 + +Signed-off-by: Khem Raj +Cc: stable@vger.kernel.org +Signed-off-by: Thomas Bogendoerfer +[Romain: backport to 6.12.27] +Signed-off-by: Romain Naour +--- + arch/mips/vdso/Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile +index b289b2c1b294..c729bd687804 100644 +--- a/arch/mips/vdso/Makefile ++++ b/arch/mips/vdso/Makefile +@@ -27,6 +27,7 @@ endif + # offsets. + cflags-vdso := $(ccflags-vdso) \ + $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \ ++ $(filter -std=%,$(KBUILD_CFLAGS)) \ + -O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \ + -mrelax-pic-calls $(call cc-option, -mexplicit-relocs) \ + -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ +-- +2.49.0 +