Re: [PATCH] module.lds.S: Fix modules on 32-bit parisc architecture
Helge Deller <[email protected]>
| Newsgroups | org.kernel.vger.linux-parisc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-modules |
|---|---|
| Message-ID | <[email protected]> |
On 4/7/26 18:26, Sami Tolvanen wrote: > Hi Helge, > > On Sat, Apr 4, 2026 at 1:04 PM Helge Deller <[email protected]> wrote: >> >> 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 <[email protected]> >> Cc: [email protected] # v6.19+ >> Signed-off-by: Helge Deller <[email protected]> >> >> 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) > > Instead of adding parisc-specific policies to the main module linker > script, could we add a separate config flag for this and have parisc > select that in its own Kconfig for !64BIT? Perhaps something like > ARCH_WANTS_MODULE_TEXT_SECTIONS? Yes, good idea! I will send a v2 patch. Helge