[PATCH] module.lds.S: Fix modules on 32-bit parisc architecture
From: Helge Deller
Date: Sat Apr 04 2026 - 16:04:32 EST
On the 32-bit parisc architecture, we always used the
-ffunction-sections compiler option to tell the compiler to put the
functions into seperate text sections. This is necessary, otherwise
"big" kernel modules like ext4 or ipv6 fail to load because some
branches won't be able to reach their stubs.
Commit 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related
macros") broke this for parisc because all text sections will get
unconditionally merged now.
Fix the issue by avoiding the text section merge for 32-bit parisc while still
allowing it for all other architectures.
Fixes: 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros")
Cc: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx # v6.19+
Signed-off-by: Helge Deller <deller@xxxxxx>
diff --git a/scripts/module.lds.S b/scripts/module.lds.S
index 054ef99e8288..41e13e9cbb9d 100644
--- a/scripts/module.lds.S
+++ b/scripts/module.lds.S
@@ -41,9 +41,11 @@ SECTIONS {
__kcfi_traps : { KEEP(*(.kcfi_traps)) }
#endif
+#if !defined(CONFIG_PARISC) || defined(CONFIG_64BIT)
.text : {
*(.text .text.[0-9a-zA-Z_]*)
}
+#endif
.bss : {
*(.bss .bss.[0-9a-zA-Z_]*)