All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Lawrence <joe.lawrence@redhat.com>
To: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Luis Chamberlain <mcgrof@kernel.org>,
	Petr Pavlu <petr.pavlu@suse.com>,
	Daniel Gomez <da.gomez@kernel.org>,
	Sami Tolvanen <samitolvanen@google.com>,
	Aaron Tomlin <atomlin@atomlin.com>,
	Petr Mladek <pmladek@suse.com>,
	Josh Poimboeuf <jpoimboe@kernel.org>
Subject: Re: [PATCH] module.lds: force 0 sh_addr for .text, .data, .bss, and .rodata sections
Date: Wed, 4 Mar 2026 11:12:32 -0500	[thread overview]
Message-ID: <aahZ8K6BmtVKRbg2@redhat.com> (raw)
In-Reply-To: <20260304160611.143862-1-joe.lawrence@redhat.com>

On Wed, Mar 04, 2026 at 11:06:11AM -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 .text, .bss, .data, and .rodata, and also
> to __patchable_function_entries and __kcfi_traps which had the same
> issue.
> 
> 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@redhat.com>
> ---
>  scripts/module.lds.S | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/scripts/module.lds.S b/scripts/module.lds.S
> index 054ef99e8288..e1cab3cee3f7 100644
> --- a/scripts/module.lds.S
> +++ b/scripts/module.lds.S
> @@ -32,30 +32,30 @@ SECTIONS {
>  	__jump_table		0 : ALIGN(8) { KEEP(*(__jump_table)) }
>  	__ex_table		0 : ALIGN(4) { KEEP(*(__ex_table)) }
>  
> -	__patchable_function_entries : { *(__patchable_function_entries) }
> +	__patchable_function_entries 0 : { *(__patchable_function_entries) }
>  
>  	.init.klp_funcs		0 : ALIGN(8) { KEEP(*(.init.klp_funcs)) }
>  	.init.klp_objects	0 : ALIGN(8) { KEEP(*(.init.klp_objects)) }
>  
>  #ifdef CONFIG_ARCH_USES_CFI_TRAPS
> -	__kcfi_traps		: { KEEP(*(.kcfi_traps)) }
> +	__kcfi_traps		0 : { KEEP(*(.kcfi_traps)) }
>  #endif
>  
> -	.text : {
> +	.text			0 : {
>  		*(.text .text.[0-9a-zA-Z_]*)
>  	}
>  
> -	.bss : {
> +	.bss			0 : {
>  		*(.bss .bss.[0-9a-zA-Z_]*)
>  		*(.bss..L*)
>  	}
>  
> -	.data : {
> +	.data			0 : {
>  		*(.data .data.[0-9a-zA-Z_]*)
>  		*(.data..L*)
>  	}
>  
> -	.rodata : {
> +	.rodata			0 : {
>  		*(.rodata .rodata.[0-9a-zA-Z_]*)
>  		*(.rodata..L*)
>  	}
> -- 
> 2.53.0
> 

Linker files are not my usual gig, but I offer up this patch as a
strawman to raise awareness to those who might know better :D

This was very lightly tested: readelf reports 0 sh_addrs after the
change for the affected sections and stap was happier parsing this.

Thanks,
--
Joe


  reply	other threads:[~2026-03-04 16:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-04 16:06 [PATCH] module.lds: force 0 sh_addr for .text, .data, .bss, and .rodata sections Joe Lawrence
2026-03-04 16:12 ` Joe Lawrence [this message]
2026-03-04 19:33 ` Petr Pavlu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aahZ8K6BmtVKRbg2@redhat.com \
    --to=joe.lawrence@redhat.com \
    --cc=atomlin@atomlin.com \
    --cc=da.gomez@kernel.org \
    --cc=jpoimboe@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-modules@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=petr.pavlu@suse.com \
    --cc=pmladek@suse.com \
    --cc=samitolvanen@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.