From 32ff6831cdecd828bd8be9cdfb6c4a3d1feb8f8a Mon Sep 17 00:00:00 2001 From: David Gow Date: Sat, 25 Feb 2023 09:45:30 +0800 Subject: kunit: Fix 'hooks.o' build by recursing into kunit KUnit's 'hooks.o' file need to be built-in whenever KUnit is enabled (even if CONFIG_KUNIT=m). We'd previously attemtped to do this by adding 'kunit/hooks.o' to obj-y in lib/Makefile, but this caused hooks.c to be rebuilt even when it was unchanged. Instead, always recurse into lib/kunit using obj-y when KUnit is enabled, and add the hooks there. Fixes: 7170b7ed6acb ("kunit: Add "hooks" to call into KUnit when it's built as a module"). Reported-by: Linus Torvalds Link: https://lore.kernel.org/linux-kselftest/CAHk-=wiEf7irTKwPJ0jTMOF3CS-13UXmF6Fns3wuWpOZ_wGyZQ@mail.gmail.com/ Signed-off-by: David Gow Reviewed-by: Brendan Higgins Signed-off-by: Linus Torvalds --- lib/Makefile | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'lib/Makefile') diff --git a/lib/Makefile b/lib/Makefile index 469be6240523..baf2821f7a00 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -127,14 +127,10 @@ CFLAGS_test_fpu.o += $(FPU_CFLAGS) obj-$(CONFIG_TEST_LIVEPATCH) += livepatch/ -obj-$(CONFIG_KUNIT) += kunit/ -# Include the KUnit hooks unconditionally. They'll compile to nothing if -# CONFIG_KUNIT=n, otherwise will be a small table of static data (static key, -# function pointers) which need to be built-in even when KUnit is a module. -ifeq ($(CONFIG_KUNIT), m) -obj-y += kunit/hooks.o -else -obj-$(CONFIG_KUNIT) += kunit/hooks.o +# 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) -- cgit v1.2.3