From: Greg Kroah-Hartman Date: Sun, 16 Jul 2023 15:05:05 +0000 (+0200) Subject: 6.4-stable patches X-Git-Tag: v6.1.39~62 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c9977b756b0cfb6a9578ffe0a13744902d0e7b5b;p=thirdparty%2Fkernel%2Fstable-queue.git 6.4-stable patches added patches: kbuild-add-clang_flags-to-as-instr.patch kbuild-add-clang_flags-to-kbuild_cppflags.patch kbuild-add-kbuild_cppflags-to-as-option-invocation.patch mips-include-kbuild_cppflags-in-checkflags-invocation.patch powerpc-vdso-include-clang_flags-explicitly-in-ldflags-y.patch --- diff --git a/queue-6.4/kbuild-add-clang_flags-to-as-instr.patch b/queue-6.4/kbuild-add-clang_flags-to-as-instr.patch new file mode 100644 index 00000000000..4c5f5a4a330 --- /dev/null +++ b/queue-6.4/kbuild-add-clang_flags-to-as-instr.patch @@ -0,0 +1,42 @@ +From cff6e7f50bd315e5b39c4e46c704ac587ceb965f Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Thu, 1 Jun 2023 12:50:39 -0700 +Subject: kbuild: Add CLANG_FLAGS to as-instr + +From: Nathan Chancellor + +commit cff6e7f50bd315e5b39c4e46c704ac587ceb965f upstream. + +A future change will move CLANG_FLAGS from KBUILD_{A,C}FLAGS to +KBUILD_CPPFLAGS so that '--target' is available while preprocessing. +When that occurs, the following errors appear multiple times when +building ARCH=powerpc powernv_defconfig: + + ld.lld: error: vmlinux.a(arch/powerpc/kernel/head_64.o):(.text+0x12d4): relocation R_PPC64_ADDR16_HI out of range: -4611686018409717520 is not in [-2147483648, 2147483647]; references '__start___soft_mask_table' + ld.lld: error: vmlinux.a(arch/powerpc/kernel/head_64.o):(.text+0x12e8): relocation R_PPC64_ADDR16_HI out of range: -4611686018409717392 is not in [-2147483648, 2147483647]; references '__stop___soft_mask_table' + +Diffing the .o.cmd files reveals that -DHAVE_AS_ATHIGH=1 is not present +anymore, because as-instr only uses KBUILD_AFLAGS, which will no longer +contain '--target'. + +Mirror Kconfig's as-instr and add CLANG_FLAGS explicitly to the +invocation to ensure the target information is always present. + +Signed-off-by: Nathan Chancellor +Signed-off-by: Masahiro Yamada +Signed-off-by: Greg Kroah-Hartman +--- + scripts/Makefile.compiler | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/scripts/Makefile.compiler ++++ b/scripts/Makefile.compiler +@@ -38,7 +38,7 @@ as-option = $(call try-run,\ + # Usage: aflags-y += $(call as-instr,instr,option1,option2) + + as-instr = $(call try-run,\ +- printf "%b\n" "$(1)" | $(CC) -Werror $(KBUILD_AFLAGS) -c -x assembler-with-cpp -o "$$TMP" -,$(2),$(3)) ++ printf "%b\n" "$(1)" | $(CC) -Werror $(CLANG_FLAGS) $(KBUILD_AFLAGS) -c -x assembler-with-cpp -o "$$TMP" -,$(2),$(3)) + + # __cc-option + # Usage: MY_CFLAGS += $(call __cc-option,$(CC),$(MY_CFLAGS),-march=winchip-c6,-march=i586) diff --git a/queue-6.4/kbuild-add-clang_flags-to-kbuild_cppflags.patch b/queue-6.4/kbuild-add-clang_flags-to-kbuild_cppflags.patch new file mode 100644 index 00000000000..cc937850098 --- /dev/null +++ b/queue-6.4/kbuild-add-clang_flags-to-kbuild_cppflags.patch @@ -0,0 +1,55 @@ +From feb843a469fb0ab00d2d23cfb9bcc379791011bb Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada +Date: Sun, 9 Apr 2023 23:53:57 +0900 +Subject: kbuild: add $(CLANG_FLAGS) to KBUILD_CPPFLAGS + +From: Masahiro Yamada + +commit feb843a469fb0ab00d2d23cfb9bcc379791011bb upstream. + +When preprocessing arch/*/kernel/vmlinux.lds.S, the target triple is +not passed to $(CPP) because we add it only to KBUILD_{C,A}FLAGS. + +As a result, the linker script is preprocessed with predefined macros +for the build host instead of the target. + +Assuming you use an x86 build machine, compare the following: + + $ clang -dM -E -x c /dev/null + $ clang -dM -E -x c /dev/null -target aarch64-linux-gnu + +There is no actual problem presumably because our linker scripts do not +rely on such predefined macros, but it is better to define correct ones. + +Move $(CLANG_FLAGS) to KBUILD_CPPFLAGS, so that all *.c, *.S, *.lds.S +will be processed with the proper target triple. + +[Note] +After the patch submission, we got an actual problem that needs this +commit. (CBL issue 1859) + +Link: https://github.com/ClangBuiltLinux/linux/issues/1859 +Reported-by: Tom Rini +Signed-off-by: Masahiro Yamada +Reviewed-by: Nathan Chancellor +Tested-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +--- + scripts/Makefile.clang | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/scripts/Makefile.clang b/scripts/Makefile.clang +index 9076cc939e87..058a4c0f864e 100644 +--- a/scripts/Makefile.clang ++++ b/scripts/Makefile.clang +@@ -34,6 +34,5 @@ CLANG_FLAGS += -Werror=unknown-warning-option + CLANG_FLAGS += -Werror=ignored-optimization-argument + CLANG_FLAGS += -Werror=option-ignored + CLANG_FLAGS += -Werror=unused-command-line-argument +-KBUILD_CFLAGS += $(CLANG_FLAGS) +-KBUILD_AFLAGS += $(CLANG_FLAGS) ++KBUILD_CPPFLAGS += $(CLANG_FLAGS) + export CLANG_FLAGS +-- +2.41.0 + diff --git a/queue-6.4/kbuild-add-kbuild_cppflags-to-as-option-invocation.patch b/queue-6.4/kbuild-add-kbuild_cppflags-to-as-option-invocation.patch new file mode 100644 index 00000000000..32fa97c5b11 --- /dev/null +++ b/queue-6.4/kbuild-add-kbuild_cppflags-to-as-option-invocation.patch @@ -0,0 +1,57 @@ +From 43fc0a99906e04792786edf8534d8d58d1e9de0c Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Tue, 6 Jun 2023 15:40:35 -0700 +Subject: kbuild: Add KBUILD_CPPFLAGS to as-option invocation + +From: Nathan Chancellor + +commit 43fc0a99906e04792786edf8534d8d58d1e9de0c upstream. + +After commit feb843a469fb ("kbuild: add $(CLANG_FLAGS) to +KBUILD_CPPFLAGS"), there is an error while building certain PowerPC +assembly files with clang: + + arch/powerpc/lib/copypage_power7.S: Assembler messages: + arch/powerpc/lib/copypage_power7.S:34: Error: junk at end of line: `0b01000' + arch/powerpc/lib/copypage_power7.S:35: Error: junk at end of line: `0b01010' + arch/powerpc/lib/copypage_power7.S:37: Error: junk at end of line: `0b01000' + arch/powerpc/lib/copypage_power7.S:38: Error: junk at end of line: `0b01010' + arch/powerpc/lib/copypage_power7.S:40: Error: junk at end of line: `0b01010' + clang: error: assembler command failed with exit code 1 (use -v to see invocation) + +as-option only uses KBUILD_AFLAGS, so after removing CLANG_FLAGS from +KBUILD_AFLAGS, there is no more '--target=' or '--prefix=' flags. As a +result of those missing flags, the host target +will be tested during as-option calls and likely fail, meaning necessary +flags may not get added when building assembly files, resulting in +errors like seen above. + +Add KBUILD_CPPFLAGS to as-option invocations to clear up the errors. +This should have been done in commit d5c8d6e0fa61 ("kbuild: Update +assembler calls to use proper flags and language target"), which +switched from using the assembler target to the assembler-with-cpp +target, so flags that affect preprocessing are passed along in all +relevant tests. as-option now mirrors cc-option. + +Fixes: feb843a469fb ("kbuild: add $(CLANG_FLAGS) to KBUILD_CPPFLAGS") +Reported-by: Linux Kernel Functional Testing +Closes: https://lore.kernel.org/CA+G9fYs=koW9WardsTtora+nMgLR3raHz-LSLr58tgX4T5Mxag@mail.gmail.com/ +Signed-off-by: Nathan Chancellor +Tested-by: Naresh Kamboju +Signed-off-by: Masahiro Yamada +Signed-off-by: Greg Kroah-Hartman +--- + scripts/Makefile.compiler | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/scripts/Makefile.compiler ++++ b/scripts/Makefile.compiler +@@ -32,7 +32,7 @@ try-run = $(shell set -e; \ + # Usage: aflags-y += $(call as-option,-Wa$(comma)-isa=foo,) + + as-option = $(call try-run,\ +- $(CC) -Werror $(KBUILD_AFLAGS) $(1) -c -x assembler-with-cpp /dev/null -o "$$TMP",$(1),$(2)) ++ $(CC) -Werror $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) $(1) -c -x assembler-with-cpp /dev/null -o "$$TMP",$(1),$(2)) + + # as-instr + # Usage: aflags-y += $(call as-instr,instr,option1,option2) diff --git a/queue-6.4/mips-include-kbuild_cppflags-in-checkflags-invocation.patch b/queue-6.4/mips-include-kbuild_cppflags-in-checkflags-invocation.patch new file mode 100644 index 00000000000..ab4ad85cdf9 --- /dev/null +++ b/queue-6.4/mips-include-kbuild_cppflags-in-checkflags-invocation.patch @@ -0,0 +1,37 @@ +From 08f6554ff90ef189e6b8f0303e57005bddfdd6a7 Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Thu, 1 Jun 2023 11:38:24 -0700 +Subject: mips: Include KBUILD_CPPFLAGS in CHECKFLAGS invocation + +From: Nathan Chancellor + +commit 08f6554ff90ef189e6b8f0303e57005bddfdd6a7 upstream. + +A future change will move CLANG_FLAGS from KBUILD_{A,C}FLAGS to +KBUILD_CPPFLAGS so that '--target' is available while preprocessing. +When that occurs, the following error appears when building ARCH=mips +with clang (tip of tree error shown): + + clang: error: unsupported option '-mabi=' for target 'x86_64-pc-linux-gnu' + +Add KBUILD_CPPFLAGS in the CHECKFLAGS invocation to keep everything +working after the move. + +Signed-off-by: Nathan Chancellor +Signed-off-by: Masahiro Yamada +Signed-off-by: Greg Kroah-Hartman +--- + arch/mips/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/mips/Makefile ++++ b/arch/mips/Makefile +@@ -346,7 +346,7 @@ KBUILD_CFLAGS += -fno-asynchronous-unwin + KBUILD_LDFLAGS += -m $(ld-emul) + + ifdef CONFIG_MIPS +-CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ ++CHECKFLAGS += $(shell $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ + grep -E -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \ + sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g') + endif diff --git a/queue-6.4/powerpc-vdso-include-clang_flags-explicitly-in-ldflags-y.patch b/queue-6.4/powerpc-vdso-include-clang_flags-explicitly-in-ldflags-y.patch new file mode 100644 index 00000000000..8151d1d16be --- /dev/null +++ b/queue-6.4/powerpc-vdso-include-clang_flags-explicitly-in-ldflags-y.patch @@ -0,0 +1,38 @@ +From a7e5eb53bf9b800d086e2ebcfebd9a3bb16bd1b0 Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Thu, 1 Jun 2023 11:46:33 -0700 +Subject: powerpc/vdso: Include CLANG_FLAGS explicitly in ldflags-y + +From: Nathan Chancellor + +commit a7e5eb53bf9b800d086e2ebcfebd9a3bb16bd1b0 upstream. + +A future change will move CLANG_FLAGS from KBUILD_{A,C}FLAGS to +KBUILD_CPPFLAGS so that '--target' is available while preprocessing. +When that occurs, the following error appears when building the compat +PowerPC vDSO: + + clang: error: unsupported option '-mbig-endian' for target 'x86_64-pc-linux-gnu' + make[3]: *** [.../arch/powerpc/kernel/vdso/Makefile:76: arch/powerpc/kernel/vdso/vdso32.so.dbg] Error 1 + +Explicitly add CLANG_FLAGS to ldflags-y, so that '--target' will always +be present. + +Signed-off-by: Nathan Chancellor +Signed-off-by: Masahiro Yamada +Signed-off-by: Greg Kroah-Hartman +--- + arch/powerpc/kernel/vdso/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/kernel/vdso/Makefile ++++ b/arch/powerpc/kernel/vdso/Makefile +@@ -54,7 +54,7 @@ KASAN_SANITIZE := n + KCSAN_SANITIZE := n + + ccflags-y := -fno-common -fno-builtin +-ldflags-y := -Wl,--hash-style=both -nostdlib -shared -z noexecstack ++ldflags-y := -Wl,--hash-style=both -nostdlib -shared -z noexecstack $(CLANG_FLAGS) + ldflags-$(CONFIG_LD_IS_LLD) += $(call cc-option,--ld-path=$(LD),-fuse-ld=lld) + # Filter flags that clang will warn are unused for linking + ldflags-y += $(filter-out $(CC_AUTO_VAR_INIT_ZERO_ENABLER) $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CFLAGS)) diff --git a/queue-6.4/series b/queue-6.4/series index 98904b53a7b..4df4cce3a71 100644 --- a/queue-6.4/series +++ b/queue-6.4/series @@ -776,3 +776,8 @@ input-ads7846-fix-usage-of-match-data.patch md-raid1-10-fix-casting-from-randomized-structure-in-raid1_submit_write.patch fs-no-need-to-check-source.patch input-ads7846-fix-pointer-cast-warning.patch +mips-include-kbuild_cppflags-in-checkflags-invocation.patch +powerpc-vdso-include-clang_flags-explicitly-in-ldflags-y.patch +kbuild-add-clang_flags-to-as-instr.patch +kbuild-add-kbuild_cppflags-to-as-option-invocation.patch +kbuild-add-clang_flags-to-kbuild_cppflags.patch