From: Nicolas Schier <nsc@kernel.org>
To: Alexey Gladkov <legion@kernel.org>,
Nathan Chancellor <nathan@kernel.org>
Cc: Petr Pavlu <petr.pavlu@suse.com>,
Luis Chamberlain <mcgrof@kernel.org>,
Sami Tolvanen <samitolvanen@google.com>,
Daniel Gomez <da.gomez@samsung.com>,
linux-kernel@vger.kernel.org, linux-modules@vger.kernel.org,
linux-kbuild@vger.kernel.org,
Masahiro Yamada <masahiroy@kernel.org>
Subject: Re: [PATCH v7 3/8] kbuild: keep .modinfo section in vmlinux.unstripped
Date: Tue, 16 Sep 2025 15:28:09 +0200 [thread overview]
Message-ID: <aMll6cHPhIY2yswz@levanger> (raw)
In-Reply-To: <aMlgMkB2nL31K2OB@example.org>
On Tue, Sep 16, 2025 at 03:03:46PM +0200, Alexey Gladkov wrote:
> On Tue, Sep 16, 2025 at 02:42:48PM +0200, Nicolas Schier wrote:
> > > > > > 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=RQ@mail.gmail.com/
> > > > > > [2]: https://lore.kernel.org/lkml/20250730164047.7c4a731a@canb.auug.org.au/
> > > > > >
> > > > >
> > > > > Hm. I missed that. I need to investigate how to fix this. Nothing comes
> > > > > to mind right now.
> > > >
> > > > Same here. Only thing I could find until now is
> > > >
> > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/scripts/link-vmlinux.sh?id=90ceddcb495008ac8ba7a3dce297841efcd7d584
> > > >
> > > > where '2>/dev/null' is appended exactly to prevent this very warning.
> > > > But for me, it doesn't feel good doing that when stripping to vmlinux.
> > >
> > > Yes, that's not a very good approach. It will hide other errors that will
> > > definitely need to be seen. I think the commit you mentioned is actually
> > > incorrect. I think there should be a different solution.
> > >
> > > I think in the case of .modinfo, we can change the flag in the section
> > > since we are going to delete it anyway.
> > >
> > > diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> > > index dbbe3bf0cf23..9a118b31d0dc 100644
> > > --- a/scripts/Makefile.vmlinux
> > > +++ b/scripts/Makefile.vmlinux
> > > @@ -87,7 +87,8 @@ remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
> > > remove-symbols := -w --strip-symbol='__mod_device_table__*'
> > >
> > > quiet_cmd_strip_relocs = OBJCOPY $@
> > > - cmd_strip_relocs = $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) \
> > > + cmd_strip_relocs = $(OBJCOPY) $(patsubst %,--set-section-flags %=noload,$(remove-section-y)) $< && \
> > > + $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) \
> > > $(remove-symbols) $< $@
> > >
> > > targets += vmlinux
> >
> > Ah, great! I thought we had to fiddle around with linker scripts et al.
> > I needed to use an intermediate file:
> >
> > diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> > index e2ceeb9e168d..516d51ca634b 100644
> > --- a/scripts/Makefile.vmlinux
> > +++ b/scripts/Makefile.vmlinux
> > @@ -90,6 +90,9 @@ remove-section-y := .modinfo
> > remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*'
> >
> > quiet_cmd_strip_relocs = OBJCOPY $@
> > - cmd_strip_relocs = $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) $< $@
> > + cmd_strip_relocs = set -e; \
> > + trap 'rm $<.noload' EXIT HUP INT; \
> > + $(OBJCOPY) $(patsubst %,--set-section-flags %=noload,$(remove-section-y)) $< $<.noload && \
> > + $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) $<.noload $@
> >
> > targets += vmlinux
>
> according to man-page:
>
> If you do not specify outfile, objcopy creates a temporary file and
> destructively renames the result with the name of infile.
>
> That is true even in freebsd:
>
> https://man.freebsd.org/cgi/man.cgi?query=objcopy
>
> Do you want to support any other objcopy implementations ?
yeah, it's actually because I dislike modifying vmlinux.unstripped in
the vmlinux rule.
But it may be that Nathan does not see it this way.
--
Nicolas
next prev parent reply other threads:[~2025-09-16 13:35 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-18 16:54 [PATCH v7 0/8] Add generated modalias to modules.builtin.modinfo Alexey Gladkov
2025-08-18 16:54 ` [PATCH v7 1/8] s390: vmlinux.lds.S: Reorder sections Alexey Gladkov
2025-08-18 16:54 ` [PATCH v7 2/8] kbuild: always create intermediate vmlinux.unstripped Alexey Gladkov
2025-09-17 11:57 ` Nicolas Schier
2025-08-18 16:54 ` [PATCH v7 3/8] kbuild: keep .modinfo section in vmlinux.unstripped Alexey Gladkov
2025-09-15 5:56 ` Nicolas Schier
2025-09-16 7:12 ` Alexey Gladkov
2025-09-16 9:36 ` Nicolas Schier
2025-09-16 11:30 ` Alexey Gladkov
2025-09-16 12:42 ` Nicolas Schier
2025-09-16 13:03 ` Alexey Gladkov
2025-09-16 13:28 ` Nicolas Schier [this message]
2025-09-17 1:10 ` Nathan Chancellor
2025-09-17 6:49 ` Alexey Gladkov
2025-09-17 11:55 ` Nicolas Schier
2025-09-17 12:38 ` Alexey Gladkov
2025-09-18 4:08 ` Nicolas Schier
2025-08-18 16:54 ` [PATCH v7 4/8] kbuild: extract modules.builtin.modinfo from vmlinux.unstripped Alexey Gladkov
2025-09-17 11:57 ` Nicolas Schier
2025-08-18 16:54 ` [PATCH v7 5/8] scsi: Always define blogic_pci_tbl structure Alexey Gladkov
2025-08-18 16:55 ` [PATCH v7 6/8] modpost: Add modname to mod_device_table alias Alexey Gladkov
2025-09-14 20:07 ` Nicolas Schier
2025-08-18 16:55 ` [PATCH v7 7/8] modpost: Create modalias for builtin modules Alexey Gladkov
2025-08-18 16:55 ` [PATCH v7 8/8] kbuild: vmlinux.unstripped should always depend on .vmlinux.export.o Alexey Gladkov
2025-10-02 16:37 ` ChaosEsque Team
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=aMll6cHPhIY2yswz@levanger \
--to=nsc@kernel.org \
--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 \
/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.