On Mon, Aug 18, 2025 at 06:54:57PM +0200, Alexey Gladkov wrote: > 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 ae2d2359b79e9..cfa63860dfd4c 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) } \ > .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*) \ > > diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux > index 4f2d4c3fb7372..e2ceeb9e168d4 100644 > --- a/scripts/Makefile.vmlinux > +++ b/scripts/Makefile.vmlinux > @@ -86,7 +86,7 @@ endif > # vmlinux > # --------------------------------------------------------------------------- > > -remove-section-y := > +remove-section-y := .modinfo > remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' > > quiet_cmd_strip_relocs = OBJCOPY $@ > diff --git a/scripts/mksysmap b/scripts/mksysmap > index 3accbdb269ac7..a607a0059d119 100755 > --- a/scripts/mksysmap > +++ b/scripts/mksysmap > @@ -79,6 +79,9 @@ > / _SDA_BASE_$/d > / _SDA2_BASE_$/d > > +# MODULE_INFO() > +/ __UNIQUE_ID_modinfo[0-9]*$/d > + > # --------------------------------------------------------------------------- > # Ignored patterns > # (symbols that contain the pattern are ignored) > -- > 2.50.1 >
Hi Alexey, with this patch applied, I still get a warning from objcpy as Masahiro and Stephen wrote [1,2] SORTTAB vmlinux.unstripped + sorttable vmlinux.unstripped + nm -S vmlinux.unstripped + ./scripts/sorttable -s .tmp_vmlinux.nm-sort vmlinux.unstripped + is_enabled CONFIG_KALLSYMS + grep -q ^CONFIG_KALLSYMS=y include/config/auto.conf + cmp -s System.map .tmp_vmlinux2.syms + echo vmlinux.unstripped: ../scripts/link-vmlinux.sh # OBJCOPY vmlinux objcopy --remove-section=.modinfo vmlinux.unstripped vmlinux objcopy: vmlinux.unstripped: warning: empty loadable segment detected at vaddr=0xffff8000807a0000, is this intentional? (arm64, allnoconfig) Kind regards, Nicolas [1]: https://lore.kernel.org/linux-kbuild/CAK7LNAR-gD2H6Kk-rZjo0R3weTHCGTm0a=u2tRH1WWW6Sx6=r...@mail.gmail.com/ [2]: https://lore.kernel.org/lkml/[email protected]/

