On Fri, Oct 10, 2025 at 10:02:20AM +0200, Alexey Gladkov wrote: > 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.
I tried to compile the kernel for arm64 with CONFIG_RELOCATABLE=y. It works without errors and the symbols are removed. vmlinux.unstripped: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), statically linked, not stripped -- Rgrds, legion

