Re: [PATCH v7 3/8] kbuild: keep .modinfo section in vmlinux.unstripped
From: Alexey Gladkov <legion@kernel.org>
Date: 2025-09-16 07:12:28
Also in:
linux-kbuild, lkml
On Mon, Sep 15, 2025 at 07:56:16AM +0200, Nicolas Schier wrote:
On Mon, Aug 18, 2025 at 06:54:57PM +0200, Alexey Gladkov wrote:quoted
From: Masahiro Yamada <masahiroy@kernel.org> 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 <masahiroy@kernel.org> --- 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.1Hi 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=RQ@mail.gmail.com/ (local) [2]: https://lore.kernel.org/lkml/20250730164047.7c4a731a@canb.auug.org.au/ (local)
Hm. I missed that. I need to investigate how to fix this. Nothing comes to mind right now. -- Rgrds, legion