]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Apr 2025 15:27:13 +0000 (17:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Apr 2025 15:27:13 +0000 (17:27 +0200)
added patches:
arm-9443-1-require-linker-to-support-keep-within-overlay-for-dce.patch

queue-6.12/arm-9443-1-require-linker-to-support-keep-within-overlay-for-dce.patch [new file with mode: 0644]
queue-6.12/series

diff --git a/queue-6.12/arm-9443-1-require-linker-to-support-keep-within-overlay-for-dce.patch b/queue-6.12/arm-9443-1-require-linker-to-support-keep-within-overlay-for-dce.patch
new file mode 100644 (file)
index 0000000..b79c926
--- /dev/null
@@ -0,0 +1,73 @@
+From 4800091d0ce47de62d584cda0c4c4eb2eedbe794 Mon Sep 17 00:00:00 2001
+From: Nathan Chancellor <nathan@kernel.org>
+Date: Thu, 20 Mar 2025 22:33:49 +0100
+Subject: ARM: 9443/1: Require linker to support KEEP within OVERLAY for DCE
+
+From: Nathan Chancellor <nathan@kernel.org>
+
+commit e7607f7d6d81af71dcc5171278aadccc94d277cd upstream.
+
+ld.lld prior to 21.0.0 does not support using the KEEP keyword within an
+overlay description, which may be needed to avoid discarding necessary
+sections within an overlay with '--gc-sections', which can be enabled
+for the kernel via CONFIG_LD_DEAD_CODE_DATA_ELIMINATION.
+
+Disallow CONFIG_LD_DEAD_CODE_DATA_ELIMINATION without support for KEEP
+within OVERLAY and introduce a macro, OVERLAY_KEEP, that can be used to
+conditionally add KEEP when it is properly supported to avoid breaking
+old versions of ld.lld.
+
+Cc: stable@vger.kernel.org
+Link: https://github.com/llvm/llvm-project/commit/381599f1fe973afad3094e55ec99b1620dba7d8c
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Nathan Chancellor <nathan@kernel.org>
+Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
+[nathan: Fix conflict in init/Kconfig due to lack of RUSTC symbols]
+Signed-off-by: Nathan Chancellor <nathan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/Kconfig                   |    2 +-
+ arch/arm/include/asm/vmlinux.lds.h |    6 ++++++
+ init/Kconfig                       |    5 +++++
+ 3 files changed, 12 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -118,7 +118,7 @@ config ARM
+       select HAVE_KERNEL_XZ
+       select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
+       select HAVE_KRETPROBES if HAVE_KPROBES
+-      select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_IS_LLD)
++      select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_CAN_USE_KEEP_IN_OVERLAY)
+       select HAVE_MOD_ARCH_SPECIFIC
+       select HAVE_NMI
+       select HAVE_OPTPROBES if !THUMB2_KERNEL
+--- a/arch/arm/include/asm/vmlinux.lds.h
++++ b/arch/arm/include/asm/vmlinux.lds.h
+@@ -34,6 +34,12 @@
+ #define NOCROSSREFS
+ #endif
++#ifdef CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY
++#define OVERLAY_KEEP(x)               KEEP(x)
++#else
++#define OVERLAY_KEEP(x)               x
++#endif
++
+ /* Set start/end symbol names to the LMA for the section */
+ #define ARM_LMA(sym, section)                                         \
+       sym##_start = LOADADDR(section);                                \
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -129,6 +129,11 @@ config CC_HAS_COUNTED_BY
+       # https://github.com/llvm/llvm-project/pull/112636
+       depends on !(CC_IS_CLANG && CLANG_VERSION < 190103)
++config LD_CAN_USE_KEEP_IN_OVERLAY
++      # ld.lld prior to 21.0.0 did not support KEEP within an overlay description
++      # https://github.com/llvm/llvm-project/pull/130661
++      def_bool LD_IS_BFD || LLD_VERSION >= 210000
++
+ config PAHOLE_VERSION
+       int
+       default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE))
index 3efd9424a5dc51825c140987e769e84e0232b5bd..9aea7ee9d9e1d10afdeb9c112f91386b61718417 100644 (file)
@@ -420,3 +420,4 @@ nfsd-fix-management-of-listener-transports.patch
 nfsd-nfsd_unlink-clobbers-non-zero-status-returned-from-fh_fill_pre_attrs.patch
 nfsd-never-return-nfs4err_file_open-when-removing-a-directory.patch
 nfsd-skip-sending-cb_recall_any-when-the-backchannel-isn-t-up.patch
+arm-9443-1-require-linker-to-support-keep-within-overlay-for-dce.patch