[PATCH v3 11/16] kunit: Always descend into kunit directory during build

Thomas Weißschuh posted 16 patches 4 months ago
There is a newer version of this series
[PATCH v3 11/16] kunit: Always descend into kunit directory during build
Posted by Thomas Weißschuh 4 months ago
An upcoming change will add 'userprogs' to the kunit subdirectory.
For kbuild to properly clean up these build artifacts the subdirectory
needs to be always processed.

Pushing the special logic for hook.o into the kunit Makefile also makes the
logic easier to understand.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
 lib/Makefile       | 4 ----
 lib/kunit/Makefile | 2 +-
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/lib/Makefile b/lib/Makefile
index c38582f187dd81916113319072e5cfef26f26c84..698566135091cc3bf0054f1954b434dc3325364a 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -108,11 +108,7 @@ test_fpu-y := test_fpu_glue.o test_fpu_impl.o
 CFLAGS_test_fpu_impl.o += $(CC_FLAGS_FPU)
 CFLAGS_REMOVE_test_fpu_impl.o += $(CC_FLAGS_NO_FPU)
 
-# Some KUnit files (hooks.o) need to be built-in even when KUnit is a module,
-# so we can't just use obj-$(CONFIG_KUNIT).
-ifdef CONFIG_KUNIT
 obj-y += kunit/
-endif
 
 ifeq ($(CONFIG_DEBUG_KOBJECT),y)
 CFLAGS_kobject.o += -DDEBUG
diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile
index 5aa51978e456ab3bb60c12071a26cf2bdcb1b508..656f1fa35abcc635e67d5b4cb1bc586b48415ac5 100644
--- a/lib/kunit/Makefile
+++ b/lib/kunit/Makefile
@@ -17,7 +17,7 @@ kunit-objs +=				debugfs.o
 endif
 
 # KUnit 'hooks' are built-in even when KUnit is built as a module.
-obj-y +=				hooks.o
+obj-$(if $(CONFIG_KUNIT),y) +=		hooks.o
 
 obj-$(CONFIG_KUNIT_TEST) +=		kunit-test.o
 obj-$(CONFIG_KUNIT_TEST) +=		platform-test.o

-- 
2.49.0

Re: [PATCH v3 11/16] kunit: Always descend into kunit directory during build
Posted by David Gow 3 months, 3 weeks ago
On Wed, 11 Jun 2025 at 15:38, Thomas Weißschuh
<thomas.weissschuh@linutronix.de> wrote:
>
> An upcoming change will add 'userprogs' to the kunit subdirectory.
> For kbuild to properly clean up these build artifacts the subdirectory
> needs to be always processed.
>
> Pushing the special logic for hook.o into the kunit Makefile also makes the
> logic easier to understand.
>
> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
> ---

I'm quite happy with this.

Reviewed-by: David Gow <davidgow@google.com>

Cheers,
-- David


>  lib/Makefile       | 4 ----
>  lib/kunit/Makefile | 2 +-
>  2 files changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/lib/Makefile b/lib/Makefile
> index c38582f187dd81916113319072e5cfef26f26c84..698566135091cc3bf0054f1954b434dc3325364a 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -108,11 +108,7 @@ test_fpu-y := test_fpu_glue.o test_fpu_impl.o
>  CFLAGS_test_fpu_impl.o += $(CC_FLAGS_FPU)
>  CFLAGS_REMOVE_test_fpu_impl.o += $(CC_FLAGS_NO_FPU)
>
> -# Some KUnit files (hooks.o) need to be built-in even when KUnit is a module,
> -# so we can't just use obj-$(CONFIG_KUNIT).
> -ifdef CONFIG_KUNIT
>  obj-y += kunit/
> -endif
>
>  ifeq ($(CONFIG_DEBUG_KOBJECT),y)
>  CFLAGS_kobject.o += -DDEBUG
> diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile
> index 5aa51978e456ab3bb60c12071a26cf2bdcb1b508..656f1fa35abcc635e67d5b4cb1bc586b48415ac5 100644
> --- a/lib/kunit/Makefile
> +++ b/lib/kunit/Makefile
> @@ -17,7 +17,7 @@ kunit-objs +=                         debugfs.o
>  endif
>
>  # KUnit 'hooks' are built-in even when KUnit is built as a module.
> -obj-y +=                               hooks.o
> +obj-$(if $(CONFIG_KUNIT),y) +=         hooks.o
>
>  obj-$(CONFIG_KUNIT_TEST) +=            kunit-test.o
>  obj-$(CONFIG_KUNIT_TEST) +=            platform-test.o
>
> --
> 2.49.0
>
> --
> You received this message because you are subscribed to the Google Groups "KUnit Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kunit-dev+unsubscribe@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/kunit-dev/20250611-kunit-kselftests-v3-11-55e3d148cbc6%40linutronix.de.