From: Alexey Gladkov <legion@kernel.org>
To: Nathan Chancellor <nathan@kernel.org>
Cc: Nicolas Schier <nsc@kernel.org>,
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, 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: Fri, 10 Oct 2025 10:02:14 +0200 [thread overview]
Message-ID: <aOi9hqyvMg4bmXAw@example.org> (raw)
In-Reply-To: <20251010053736.GA447238@ax162>
On Thu, Oct 09, 2025 at 10:37:36PM -0700, Nathan Chancellor wrote:
> On Thu, Oct 09, 2025 at 09:52:08PM +0200, Nicolas Schier wrote:
> > On Tue, Oct 07, 2025 at 12:15:21PM +0200, Alexey Gladkov wrote:
> > > 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?
>
> Yeah, I would much prefer to ending up with pointless
> __mod_device_table__ symbols in the final binary than erroring out
> during the build...
This is a very unpleasant problem, but it does not seem fatal. There will
not be many such characters in the final vmlinux. In the configuration
from the bug report, there are only:
$ nm vmlinux.unstripped.riscv |grep -c __mod_device_table__
17
Of course, this does not mean that the problem does not need to be solved.
> Does this happen with other architectures? I have
> not seen any reports yet but I have not tested anything yet.
LDFLAGS_vmlinux for riscv was taken from arm64. I suspect that there may
be the same problem there. But I haven't checked yet whether the problem
actually exists on arm64.
> Why is RISC-V special here?
This problem on riscv only occurs when CONFIG_RELOCATABLE=y is specified.
Without this parameter, everything will compile as expected.
> It seems like the relocation comes from the .LASANLOC4 symbol in
> .data.rel.local?
>
> $ llvm-objdump -Dr drivers/irqchip/irq-riscv-aplic-main.o
> ...
> Disassembly of section .data.rel.local:
> ...
> 0000000000000130 <.LASANLOC4>:
> ...
> 1c0: 0000 unimp
> 00000000000001c0: R_RISCV_64 __mod_device_table__kmod_irq_riscv_aplic_main__acpi__aplic_acpi_match
> ...
>
> I cannot find much information about this ASANLOC outside of its
> location within the GCC sources, do we even need it? I don't see a way
> to opt out of this section altogether or on a per-variable basis, I
> wonder if there is some way to strip it out...
The aplic_acpi_match structure is indeed used, but they are used
themselves, not their alias, which is generated by the MODULE_DEVICE_TABLE
macro.
I also asked the guys from binutils for help:
https://sourceware.org/pipermail/binutils/2025-October/144782.html
> I plan to send the initial 6.18 Kbuild fixes pull request on Saturday.
> If we cannot figure out a real solution before then, maybe we can just
> switch to '--strip-unneeded-symbol' with a comment to upgrade that to
> '--strip-symbol' when possible?
Yes, that would be great.
Maybe I'm looking in the wrong direction, but still.
On riscv:
* with CONFIG_RELOCATABLE=y (where the error appears):
vmlinux.unstripped: ELF 64-bit LSB shared object, UCB RISC-V, RVC, soft-float ABI, version 1 (SYSV), dynamically linked, not stripped
* without CONFIG_RELOCATABLE:
vmlinux.unstripped: ELF 64-bit LSB executable, UCB RISC-V, RVC, soft-float ABI, version 1 (SYSV), statically linked, not stripped
On x64_64:
* with and without CONFIG_RELOCATABLE=y:
vmlinux.unstripped: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
--
Rgrds, legion
next prev parent reply other threads:[~2025-10-10 8:02 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
2025-10-10 5:37 ` Nathan Chancellor
2025-10-10 8:02 ` Alexey Gladkov [this message]
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=aOi9hqyvMg4bmXAw@example.org \
--to=legion@kernel.org \
--cc=cmirabil@redhat.com \
--cc=da.gomez@samsung.com \
--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=nsc@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 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.