[PATCH] kbuild: Add vmlinux_install to facilitate debugging

From: Zach Wade
Date: Mon Oct 07 2024 - 12:07:32 EST


When testing multiple versions of the kernel with the same source code,it
is often necessary to recompile the kernel, which is time-consuming for
small hosts. I need to cp vmlinux to the corresponding module directory.
I think adding this will make debugging the kernel a little more
convenient.

Signed-off-by: Zach Wade <zachwade.k@xxxxxxxxx>
---
Makefile | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/Makefile b/Makefile
index c5493c0c0ca1..1caab011599f 100644
--- a/Makefile
+++ b/Makefile
@@ -1579,6 +1579,7 @@ help:
@echo '* vmlinux - Build the bare kernel'
@echo '* modules - Build all modules'
@echo ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)'
+ @echo ' vmlinux_install - Install vmlinux to INSTALL_MOD_PATH (default: /)'
@echo ' vdso_install - Install unstripped vdso to INSTALL_MOD_PATH (default: /)'
@echo ' dir/ - Build all files in dir and below'
@echo ' dir/file.[ois] - Build specified target only'
@@ -1887,6 +1888,19 @@ modpost: $(if $(single-build),, $(if $(KBUILD_BUILTIN), vmlinux.o)) \
$(if $(KBUILD_MODULES), modules_check)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost

+# ---------------------------------------------------------------------------
+# vmlinux install
+
+PHONY += vmlinux_install
+
+vmlinux_install:
+ @if [ -f vmlinux ]; then \
+ echo "INSTALL ${MODLIB}/vmlinux"; \
+ cp -f vmlinux ${MODLIB}/ ; \
+ else \
+ echo "vmlinux file does not exist."; \
+ fi
+
# Single targets
# ---------------------------------------------------------------------------
# To build individual files in subdirectories, you can do like this:
--
2.46.0