Re: [PATCH v2] module.lds,codetag: force 0 sh_addr for sections

From: Josh Poimboeuf

Date: Thu Mar 05 2026 - 14:56:19 EST


On Wed, Mar 04, 2026 at 08:52:37PM -0500, Joe Lawrence wrote:
> Commit 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and
> related macros") added .text and made .data, .bss, and .rodata sections
> unconditional in the module linker script, but without an explicit
> address like the other sections in the same file.
>
> When linking modules with ld.bfd -r, sections defined without an address
> inherit the location counter, resulting in non-zero sh_addr values in
> the .ko. Relocatable objects are expected to have sh_addr=0 for these
> sections and these non-zero addresses confuse elfutils and have been
> reported to cause segmentation faults in SystemTap [1].
>
> Add the 0 address specifier to all sections in module.lds, including the
> .codetag.* sections via MOD_SEPARATE_CODETAG_SECTIONS macro.
>
> Link: https://sourceware.org/bugzilla/show_bug.cgi?id=33958
> Fixes: 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros")
> Signed-off-by: Joe Lawrence <joe.lawrence@xxxxxxxxxx>
> ---
> include/asm-generic/codetag.lds.h | 2 +-
> scripts/module.lds.S | 12 ++++++------
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> v2:
> - Update the MOD_SEPARATE_CODETAG_SECTION for .codetag.* as well [Petr]
>
> v1: https://lore.kernel.org/lkml/20260304160611.143862-1-joe.lawrence@xxxxxxxxxx

Thanks for the fix!

Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>

--
Josh