Hi Linus and Luis, On Thu, Nov 28, 2024 at 8:57 AM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, 27 Nov 2024 at 15:26, Luis Chamberlain <mcgrof@xxxxxxxxxx> wrote: > > > > On Wed, Nov 27, 2024 at 02:35:36PM -0800, Luis Chamberlain wrote: > > > Sorry about that, I'm on it. > > > > OK here is a fix, goes double build tested and then run time tested. > > No, you misunderstand. > > I don't mind the tests being built. That's *good*. > > I mind them being built *twice*. That means that there's some > seriously broken lack of dependency logic. > > Linus Right. The lib/tests/module/test_kallsyms_*.c files are always regenerated due to the 'FORCE'. lib/tests/module/Makefile: $(obj)/%.c: FORCE The following diff will fix the issue. (I used 'foreach' to factor out similar lines, but it is just a bonus clean-up). diff --git a/lib/tests/module/Makefile b/lib/tests/module/Makefile index af5c27b996cb..8cfc4ae600a9 100644 --- a/lib/tests/module/Makefile +++ b/lib/tests/module/Makefile @@ -3,13 +3,12 @@ obj-$(CONFIG_TEST_KALLSYMS_B) += test_kallsyms_b.o obj-$(CONFIG_TEST_KALLSYMS_C) += test_kallsyms_c.o obj-$(CONFIG_TEST_KALLSYMS_D) += test_kallsyms_d.o -$(obj)/%.c: FORCE - @$(kecho) " GEN $@" - $(Q)$(srctree)/lib/tests/module/gen_test_kallsyms.sh $@\ - $(CONFIG_TEST_KALLSYMS_NUMSYMS) \ - $(CONFIG_TEST_KALLSYMS_SCALE_FACTOR) +quiet_cmd_gen_test_kallsyms = GEN $@ + cmd_gen_test_kallsyms = $< $@ \ + $(CONFIG_TEST_KALLSYMS_NUMSYMS) \ + $(CONFIG_TEST_KALLSYMS_SCALE_FACTOR) -clean-files += test_kallsyms_a.c -clean-files += test_kallsyms_b.c -clean-files += test_kallsyms_c.c -clean-files += test_kallsyms_d.c +$(obj)/%.c: $(src)/gen_test_kallsyms.sh FORCE + $(call if_changed,gen_test_kallsyms) + +targets += $(foreach x, a b c d, test_kallsyms_$(x).c) -- Best Regards Masahiro Yamada