From: Nicolas Schier <nsc@kernel.org>
To: Alexey Gladkov <legion@kernel.org>
Cc: Charles Mirabile <cmirabil@redhat.com>,
da.gomez@samsung.com, linux-kbuild@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-modules@vger.kernel.org,
masahiroy@kernel.org, mcgrof@kernel.org, nathan@kernel.org,
petr.pavlu@suse.com, samitolvanen@google.com,
sfr@canb.auug.org.au
Subject: Re: [PATCH v8 7/8] modpost: Create modalias for builtin modules
Date: Thu, 9 Oct 2025 21:52:08 +0200 [thread overview]
Message-ID: <aOgSaNejdcBWKXx8@levanger> (raw)
In-Reply-To: <aOToOeNGiaFVM0Ds@example.org>
On Tue, Oct 07, 2025 at 12:15:21PM +0200, Alexey Gladkov wrote:
> On Mon, Oct 06, 2025 at 09:16:37PM -0400, Charles Mirabile wrote:
> > On Thu, Sep 18, 2025 at 10:05:51AM +0200, Alexey Gladkov wrote:
> > > For some modules, modalias is generated using the modpost utility and
> > > the section is added to the module file.
> > >
> > > When a module is added inside vmlinux, modpost does not generate
> > > modalias for such modules and the information is lost.
> > >
> > > As a result kmod (which uses modules.builtin.modinfo in userspace)
> > > cannot determine that modalias is handled by a builtin kernel module.
> > >
> > > $ cat /sys/devices/pci0000:00/0000:00:14.0/modalias
> > > pci:v00008086d0000A36Dsv00001043sd00008694bc0Csc03i30
> > >
> > > $ modinfo xhci_pci
> > > name: xhci_pci
> > > filename: (builtin)
> > > license: GPL
> > > file: drivers/usb/host/xhci-pci
> > > description: xHCI PCI Host Controller Driver
> > >
> > > Missing modalias "pci:v*d*sv*sd*bc0Csc03i30*" which will be generated by
> > > modpost if the module is built separately.
> > >
> > > To fix this it is necessary to generate the same modalias for vmlinux as
> > > for the individual modules. Fortunately '.vmlinux.export.o' is already
> > > generated from which '.modinfo' can be extracted in the same way as for
> > > vmlinux.o.
> >
> > Hi -
> >
> > This patch broke RISC-V builds for me. During the final objcopy where the new
> > symbols are supposed to be stripped, an error occurs producing lots of error
> > messages similar to this one:
> >
> > riscv64-linux-gnu-objcopy: not stripping symbol `__mod_device_table__...'
> > because it is named in a relocation
> >
> > It does not occur using defconfig, but I was able to bisect my way to this
> > commit and then reduce my config delta w.r.t defconfig until I landed on:
> >
> > cat > .config <<'EOF'
> > CONFIG_RELOCATABLE=y
> > CONFIG_KASAN=y
> > EOF
> > ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- make olddefconfig
> > ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- make -j $(nproc)
> > ...
> > LD vmlinux.unstripped
> > NM System.map
> > SORTTAB vmlinux.unstripped
> > CHKREL vmlinux.unstripped
> > OBJCOPY vmlinux
> > OBJCOPY modules.builtin.modinfo
> > GEN modules.builtin
> > riscv64-linux-gnu-objcopy: not stripping symbol `<long symbol name>'
> > because it is named in a relocation
> > <repeats with different symbol names about a dozen times>
> > make[3]: *** [scripts/Makefile.vmlinux:97: vmlinux] Error 1
> > make[3]: *** Deleting file 'vmlinux'
> > make[2]: *** [Makefile:1242: vmlinux] Error 2
> > make[1]: *** [/tmp/linux/Makefile:369: __build_one_by_one] Error 2
> > make: *** [Makefile:248: __sub-make] Error 2
> >
> > I confirmed that reverting this commit fixes the issue.
Thanks for the report!
>
> Hm. Indeed. I haven't found a good solution yet, but you can use the
> following patch to unlock compilation. It won't solve the problem, it will
> only hide it.
>
> --- a/scripts/Makefile.vmlinux
> +++ b/scripts/Makefile.vmlinux
> @@ -84,7 +84,7 @@ endif
> remove-section-y := .modinfo
> remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
>
> -remove-symbols := -w --strip-symbol='__mod_device_table__*'
> +remove-symbols := -w --strip-unneeded-symbol='__mod_device_table__*'
>
> # To avoid warnings: "empty loadable segment detected at ..." from GNU objcopy,
> # it is necessary to remove the PT_LOAD flag from the segment.
>
Is it problematic to hide that? Otherwise we'd have to revert the
patch, right?
Kind regards,
Nicolas
next prev parent reply other threads:[~2025-10-09 20:44 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-18 8:05 [PATCH v8 0/8] Add generated modalias to modules.builtin.modinfo Alexey Gladkov
2025-09-18 8:05 ` [PATCH v8 1/8] s390: vmlinux.lds.S: Reorder sections Alexey Gladkov
2025-09-18 8:05 ` [PATCH v8 2/8] kbuild: always create intermediate vmlinux.unstripped Alexey Gladkov
2025-09-18 8:05 ` [PATCH v8 3/8] kbuild: keep .modinfo section in vmlinux.unstripped Alexey Gladkov
2025-09-24 6:29 ` Nicolas Schier
2025-09-18 8:05 ` [PATCH v8 4/8] kbuild: extract modules.builtin.modinfo from vmlinux.unstripped Alexey Gladkov
2025-09-18 8:05 ` [PATCH v8 5/8] scsi: Always define blogic_pci_tbl structure Alexey Gladkov
2025-09-18 8:05 ` [PATCH v8 6/8] modpost: Add modname to mod_device_table alias Alexey Gladkov
2025-09-24 6:31 ` Nicolas Schier
2025-09-18 8:05 ` [PATCH v8 7/8] modpost: Create modalias for builtin modules Alexey Gladkov
2025-09-24 6:38 ` Nicolas Schier
2025-10-07 1:16 ` Charles Mirabile
2025-10-07 10:15 ` Alexey Gladkov
2025-10-09 19:52 ` Nicolas Schier [this message]
2025-10-10 5:37 ` Nathan Chancellor
2025-10-10 8:02 ` Alexey Gladkov
2025-10-10 10:58 ` Alexey Gladkov
2025-10-10 13:24 ` Charles Mirabile
2025-09-18 8:05 ` [PATCH v8 8/8] kbuild: vmlinux.unstripped should always depend on .vmlinux.export.o Alexey Gladkov
2025-09-24 6:39 ` Nicolas Schier
2025-09-18 17:35 ` [PATCH v8 0/8] Add generated modalias to modules.builtin.modinfo Nathan Chancellor
2025-09-24 16:17 ` Nathan Chancellor
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=aOgSaNejdcBWKXx8@levanger \
--to=nsc@kernel.org \
--cc=cmirabil@redhat.com \
--cc=da.gomez@samsung.com \
--cc=legion@kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-modules@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=mcgrof@kernel.org \
--cc=nathan@kernel.org \
--cc=petr.pavlu@suse.com \
--cc=samitolvanen@google.com \
--cc=sfr@canb.auug.org.au \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).