On Thu, Jul 24, 2025 at 03:49:40PM +0200, Alexey Gladkov wrote:

Hi Alexey, Masahiro,

> From: Masahiro Yamada <[email protected]>
> 
> Keep the .modinfo section during linking, but strip it from the final
> vmlinux.
> 
> Adjust scripts/mksysmap to exclude modinfo symbols from kallsyms.
> 
> This change will allow the next commit to extract the .modinfo section
> from the vmlinux.unstripped intermediate.
> 
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>  include/asm-generic/vmlinux.lds.h | 2 +-
>  scripts/Makefile.vmlinux          | 2 +-
>  scripts/mksysmap                  | 3 +++
>  3 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/include/asm-generic/vmlinux.lds.h 
> b/include/asm-generic/vmlinux.lds.h
> index fa5f19b8d53a..1791665006f9 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -831,6 +831,7 @@ defined(CONFIG_AUTOFDO_CLANG) || 
> defined(CONFIG_PROPELLER_CLANG)
>  
>  /* Required sections not related to debugging. */
>  #define ELF_DETAILS                                                  \
> +             .modinfo : { *(.modinfo) }                              \

FWIW, to me .modinfo logically does not quite belong to ELF_DETAILS,
since it is not about ELF.

I would guess, that you want to make a minimal code impact to the
linker scripts, but with that you turn .modinfo the only section
among ones that do not make it to the final image:

        STABS_DEBUG
        DWARF_DEBUG
        ELF_DETAILS

That immediately breaks s390, but also is a call for trouble in
the future, as far as I am concerned.

Would it makes sense to introduce e.g MODINFO instead?

>               .comment 0 : { *(.comment) }                            \
>               .symtab 0 : { *(.symtab) }                              \
>               .strtab 0 : { *(.strtab) }                              \
> @@ -1044,7 +1045,6 @@ defined(CONFIG_AUTOFDO_CLANG) || 
> defined(CONFIG_PROPELLER_CLANG)
>       *(.discard.*)                                                   \
>       *(.export_symbol)                                               \
>       *(.no_trim_symbol)                                              \
> -     *(.modinfo)                                                     \
>       /* ld.bfd warns about .gnu.version* even when not emitted */    \
>       *(.gnu.version*)                                                \

Thanks!

Reply via email to