From: Greg Kroah-Hartman Date: Wed, 9 Mar 2022 22:35:21 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.9.306~29 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8892756a045b552e8e820be2f69c14bd3f2eb1d;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: arm-do-not-use-nocrossrefs-directive-with-ld.lld.patch --- diff --git a/queue-4.9/arm-do-not-use-nocrossrefs-directive-with-ld.lld.patch b/queue-4.9/arm-do-not-use-nocrossrefs-directive-with-ld.lld.patch new file mode 100644 index 00000000000..c5e8fda27d5 --- /dev/null +++ b/queue-4.9/arm-do-not-use-nocrossrefs-directive-with-ld.lld.patch @@ -0,0 +1,65 @@ +From 36168e387fa7d0f1fe0cd5cf76c8cea7aee714fa Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor +Date: Wed, 9 Mar 2022 15:07:27 -0700 +Subject: ARM: Do not use NOCROSSREFS directive with ld.lld + +From: Nathan Chancellor + +commit 36168e387fa7d0f1fe0cd5cf76c8cea7aee714fa upstream. + +ld.lld does not support the NOCROSSREFS directive at the moment, which +breaks the build after commit b9baf5c8c5c3 ("ARM: Spectre-BHB +workaround"): + + ld.lld: error: ./arch/arm/kernel/vmlinux.lds:34: AT expected, but got NOCROSSREFS + +Support for this directive will eventually be implemented, at which +point a version check can be added. To avoid breaking the build in the +meantime, just define NOCROSSREFS to nothing when using ld.lld, with a +link to the issue for tracking. + +Cc: stable@vger.kernel.org +Fixes: b9baf5c8c5c3 ("ARM: Spectre-BHB workaround") +Link: https://github.com/ClangBuiltLinux/linux/issues/1609 +Signed-off-by: Nathan Chancellor +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/kernel/vmlinux-xip.lds.S | 8 ++++++++ + arch/arm/kernel/vmlinux.lds.S | 8 ++++++++ + 2 files changed, 16 insertions(+) + +--- a/arch/arm/kernel/vmlinux-xip.lds.S ++++ b/arch/arm/kernel/vmlinux-xip.lds.S +@@ -12,6 +12,14 @@ + #include + #include + ++/* ++ * ld.lld does not support NOCROSSREFS: ++ * https://github.com/ClangBuiltLinux/linux/issues/1609 ++ */ ++#ifdef CONFIG_LD_IS_LLD ++#define NOCROSSREFS ++#endif ++ + /* Set start/end symbol names to the LMA for the section */ + #define ARM_LMA(sym, section) \ + sym##_start = LOADADDR(section); \ +--- a/arch/arm/kernel/vmlinux.lds.S ++++ b/arch/arm/kernel/vmlinux.lds.S +@@ -14,6 +14,14 @@ + #include + #include + ++/* ++ * ld.lld does not support NOCROSSREFS: ++ * https://github.com/ClangBuiltLinux/linux/issues/1609 ++ */ ++#ifdef CONFIG_LD_IS_LLD ++#define NOCROSSREFS ++#endif ++ + /* Set start/end symbol names to the LMA for the section */ + #define ARM_LMA(sym, section) \ + sym##_start = LOADADDR(section); \ diff --git a/queue-4.9/series b/queue-4.9/series index 0a6acd1fd3d..f0e721122c6 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -23,3 +23,4 @@ arm-spectre-bhb-workaround.patch arm-include-unprivileged-bpf-status-in-spectre-v2-reporting.patch arm-fix-build-error-when-bpf_syscall-is-disabled.patch arm-fix-co-processor-register-typo.patch +arm-do-not-use-nocrossrefs-directive-with-ld.lld.patch