Re: [GIT PULL] Modules changes for v6.13-rc1

From: Masahiro Yamada
Date: Wed Nov 27 2024 - 21:10:29 EST


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