Subject: Re: linux-next: new objtool warnings

From: Peter Zijlstra <[email-masked]>
Date: Thu, 6 Nov 2025 12:48:44 +0100

On Wed, Nov 05, 2025 at 01:09:23PM -0700, Nathan Chancellor wrote:
> On Wed, Nov 05, 2025 at 08:16:13PM +0100, Peter Zijlstra wrote:
> > # make O=tmp-build clean
> > # make O=tmp-build allmodconfig
> > # make O=tmp-build -j64 vmlinux 2>&1 | grep "\[M\]"
> >   CC [M]  sound/sound_core.o
> >   CC [M]  virt/lib/irqbypass.o
> >   AS [M]  arch/x86/crypto/twofish-x86_64-asm_64.o
> >   CC [M]  arch/x86/crypto/twofish_glue.o
> >   CC [M]  samples/vfio-mdev/mtty.o
> >   CC [M]  sound/ac97_bus.o
> >   AS [M]  arch/x86/crypto/twofish-x86_64-asm_64-3way.o
> >   CC [M]  arch/x86/crypto/twofish_glue_3way.o
> 
> Thanks, I bisected this to commit d2d5cba5d92c ("kbuild: remove EXPERT
> and !COMPILE_TEST guarding from TRIM_UNUSED_KSYMS"), which explains
> everything when looking at Makefile:
> 
>   ifdef CONFIG_TRIM_UNUSED_KSYMS
>   # For the kernel to actually contain only the needed exported symbols,
>   # we have to build modules as well to determine what those symbols are.
>   KBUILD_MODULES := y
>   endif
> 
> Maybe we want to restore the !COMPILE_TEST dependency?

Urgh, yeah, I suppose we do want. This TRIM_UNUSED_KSYMS is cute if you
swing that way for a full build, but getting all modules built if you
just want a vmlinux is really somewhat unexpected.