* Re: linux-next: new objtool warnings [not found] ` <20251105101010.GA4068168@noisy.programming.kicks-ass.net> @ 2025-11-05 17:07 ` Nathan Chancellor 2025-11-05 19:16 ` Peter Zijlstra 0 siblings, 1 reply; 4+ messages in thread From: Nathan Chancellor @ 2025-11-05 17:07 UTC (permalink / raw) To: Peter Zijlstra Cc: Stephen Rothwell, Josh Poimboeuf, Linux Next Mailing List, Linux Kernel Mailing List, linux-kbuild, Nicolas Schier Hey Peter, On Wed, Nov 05, 2025 at 11:10:10AM +0100, Peter Zijlstra wrote: > + Nathan Thanks for the heads up. > On Wed, Nov 05, 2025 at 11:02:02AM +0100, Peter Zijlstra wrote: > > Also, someone wrecked the build system. > > > > vmlinux.o is no longer a valid build target, and the vmlinux target > > seems to build a ton of module stuff :/ I tested the major stable releases (6.1, 6.6, and 6.12), long before Nicolas and I took over Kbuild, and vmlinux.o does not work as a target in any of them: $ make -skj"$(nproc)" ARCH=x86_64 mrproper $ make -skj"$(nproc)" ARCH=x86_64 defconfig $ make -skj"$(nproc)" ARCH=x86_64 vmlinux.o Makefile:1912: warning: overriding recipe for target 'vmlinux.o' Makefile:1150: warning: ignoring old recipe for target 'vmlinux.o' make[2]: *** No rule to make target 'vmlinux.o'. When did this work? Is it configuration dependent? FWIW, it looks like the 'vmlinux_o' targets does the right thing? I am not sure why it exists instead of just vmlinux.o, Masahiro did that in commit 7a342e6c7735 ("kbuild: move modules.builtin(.modinfo) rules to Makefile.vmlinux_o") in 6.1. As for the second comment, if I build the vmlinux target, I see: AR built-in.a AR vmlinux.a LD vmlinux.o MODPOST vmlinux.symvers CC .vmlinux.export.o UPD include/generated/utsversion.h CC init/version-timestamp.o KSYMS .tmp_vmlinux0.kallsyms.S AS .tmp_vmlinux0.kallsyms.o LD .tmp_vmlinux1 NM .tmp_vmlinux1.syms KSYMS .tmp_vmlinux1.kallsyms.S AS .tmp_vmlinux1.kallsyms.o LD .tmp_vmlinux2 NM .tmp_vmlinux2.syms KSYMS .tmp_vmlinux2.kallsyms.S AS .tmp_vmlinux2.kallsyms.o LD vmlinux.unstripped NM System.map SORTTAB vmlinux.unstripped OBJCOPY vmlinux OBJCOPY modules.builtin.modinfo GEN modules.builtin at the end of the build with no instances of [M]. What "ton of module stuff" are you seeing in your build? Also configuration dependent? Cheers, Nathan ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: linux-next: new objtool warnings 2025-11-05 17:07 ` linux-next: new objtool warnings Nathan Chancellor @ 2025-11-05 19:16 ` Peter Zijlstra 2025-11-05 20:09 ` Nathan Chancellor 0 siblings, 1 reply; 4+ messages in thread From: Peter Zijlstra @ 2025-11-05 19:16 UTC (permalink / raw) To: Nathan Chancellor Cc: Stephen Rothwell, Josh Poimboeuf, Linux Next Mailing List, Linux Kernel Mailing List, linux-kbuild, Nicolas Schier On Wed, Nov 05, 2025 at 10:07:15AM -0700, Nathan Chancellor wrote: > $ make -skj"$(nproc)" ARCH=x86_64 vmlinux.o > Makefile:1912: warning: overriding recipe for target 'vmlinux.o' > Makefile:1150: warning: ignoring old recipe for target 'vmlinux.o' > make[2]: *** No rule to make target 'vmlinux.o'. > > When did this work? Dunno, I have vague memories of it working. The only reason I tried is that vmlinux seems to be misbehaving. > As for the second comment, if I build the vmlinux target, I see: > > AR built-in.a > AR vmlinux.a > LD vmlinux.o > MODPOST vmlinux.symvers > CC .vmlinux.export.o > UPD include/generated/utsversion.h > CC init/version-timestamp.o > KSYMS .tmp_vmlinux0.kallsyms.S > AS .tmp_vmlinux0.kallsyms.o > LD .tmp_vmlinux1 > NM .tmp_vmlinux1.syms > KSYMS .tmp_vmlinux1.kallsyms.S > AS .tmp_vmlinux1.kallsyms.o > LD .tmp_vmlinux2 > NM .tmp_vmlinux2.syms > KSYMS .tmp_vmlinux2.kallsyms.S > AS .tmp_vmlinux2.kallsyms.o > LD vmlinux.unstripped > NM System.map > SORTTAB vmlinux.unstripped > OBJCOPY vmlinux > OBJCOPY modules.builtin.modinfo > GEN modules.builtin # 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: linux-next: new objtool warnings 2025-11-05 19:16 ` Peter Zijlstra @ 2025-11-05 20:09 ` Nathan Chancellor 2025-11-06 11:48 ` Peter Zijlstra 0 siblings, 1 reply; 4+ messages in thread From: Nathan Chancellor @ 2025-11-05 20:09 UTC (permalink / raw) To: Peter Zijlstra Cc: Stephen Rothwell, Josh Poimboeuf, Linux Next Mailing List, Linux Kernel Mailing List, linux-kbuild, Nicolas Schier 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? Cheers, Nathan ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: linux-next: new objtool warnings 2025-11-05 20:09 ` Nathan Chancellor @ 2025-11-06 11:48 ` Peter Zijlstra 0 siblings, 0 replies; 4+ messages in thread From: Peter Zijlstra @ 2025-11-06 11:48 UTC (permalink / raw) To: Nathan Chancellor Cc: Stephen Rothwell, Josh Poimboeuf, Linux Next Mailing List, Linux Kernel Mailing List, linux-kbuild, Nicolas Schier 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. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-11-06 11:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20251031111515.09c9a4ed@canb.auug.org.au>
[not found] ` <20251103091006.GV3245006@noisy.programming.kicks-ass.net>
[not found] ` <20251103203256.5ac39302@canb.auug.org.au>
[not found] ` <20251103093804.GY3245006@noisy.programming.kicks-ass.net>
[not found] ` <20251105143027.214f491c@canb.auug.org.au>
[not found] ` <20251105085637.GO4067720@noisy.programming.kicks-ass.net>
[not found] ` <20251105100014.GY4068168@noisy.programming.kicks-ass.net>
[not found] ` <20251105100202.GZ4068168@noisy.programming.kicks-ass.net>
[not found] ` <20251105101010.GA4068168@noisy.programming.kicks-ass.net>
2025-11-05 17:07 ` linux-next: new objtool warnings Nathan Chancellor
2025-11-05 19:16 ` Peter Zijlstra
2025-11-05 20:09 ` Nathan Chancellor
2025-11-06 11:48 ` Peter Zijlstra
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox