summaryrefslogtreecommitdiff
path: root/Kbuild
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2022-09-25 03:19:10 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2022-09-29 04:41:31 +0900
commit5750121ae7382ebac8d47ce6d68012d6cd1d7926 (patch)
tree2eeaac7e2a04be6ba3cc9051b75259a19ba081b5 /Kbuild
parent88b61e3bff93f99712718db785b4aa0c1165f35c (diff)
downloadlwn-5750121ae7382ebac8d47ce6d68012d6cd1d7926.tar.gz
lwn-5750121ae7382ebac8d47ce6d68012d6cd1d7926.zip
kbuild: list sub-directories in ./Kbuild
Use the ordinary obj-y syntax to list subdirectories. Note1: Previously, the link order of lib-y depended on CONFIG_MODULES; lib-y was linked before drivers-y when CONFIG_MODULES=y, otherwise after drivers-y. This was a bug of commit 7273ad2b08f8 ("kbuild: link lib-y objects to vmlinux forcibly when CONFIG_MODULES=y"), but it was not a big deal after all. Now, all objects listed in lib-y are linked last, irrespective of CONFIG_MODULES. Note2: Finally, the single target build in arch/*/lib/ works correctly. There was a bug report about this. [1] $ make ARCH=arm arch/arm/lib/findbit.o CALL scripts/checksyscalls.sh AS arch/arm/lib/findbit.o [1]: https://lore.kernel.org/linux-kbuild/YvUQOwL6lD4%2F5%2FU6@shell.armlinux.org.uk/ Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Tested-by: Nick Desaulniers <ndesaulniers@google.com> Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
Diffstat (limited to 'Kbuild')
-rw-r--r--Kbuild24
1 files changed, 24 insertions, 0 deletions
diff --git a/Kbuild b/Kbuild
index 0b9e8a16a621..8a37584d1fd6 100644
--- a/Kbuild
+++ b/Kbuild
@@ -72,3 +72,27 @@ $(atomic-checks): $(obj)/.checked-%: include/linux/atomic/% FORCE
PHONY += prepare
prepare: $(offsets-file) missing-syscalls $(atomic-checks)
@:
+
+# Ordinary directory descending
+# ---------------------------------------------------------------------------
+
+obj-y += init/
+obj-y += usr/
+obj-y += arch/$(SRCARCH)/
+obj-y += $(ARCH_CORE)
+obj-y += kernel/
+obj-y += certs/
+obj-y += mm/
+obj-y += fs/
+obj-y += ipc/
+obj-y += security/
+obj-y += crypto/
+obj-$(CONFIG_BLOCK) += block/
+obj-$(CONFIG_IO_URING) += io_uring/
+obj-y += $(ARCH_LIB)
+obj-y += drivers/
+obj-y += sound/
+obj-$(CONFIG_SAMPLES) += samples/
+obj-$(CONFIG_NET) += net/
+obj-y += virt/
+obj-y += $(ARCH_DRIVERS)