kbuild: save overridden KERNELRELEASE in include/config/kernel.release
authorMasahiro Yamada <masahiroy@kernel.org>
Fri, 27 Jan 2023 16:19:42 +0000 (01:19 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Sun, 5 Feb 2023 09:51:21 +0000 (18:51 +0900)
${KERNELRELEASE} is used as a part of the installation path.
(INSTALL_DTBS_PATH, MODLIB, etc.)

When KERNELRELEASE is overridden from the command line, it should be
saved in include/config/kernel.release, so that it will be consistently
used for the installation steps.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Makefile

index 203b86e..3e7f96f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1258,7 +1258,11 @@ vmlinux: vmlinux.o $(KBUILD_LDS) modpost
 # make sure no implicit rule kicks in
 $(sort $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)): . ;
 
+ifeq ($(origin KERNELRELEASE),file)
 filechk_kernel.release = $(srctree)/scripts/setlocalversion $(srctree)
+else
+filechk_kernel.release = echo $(KERNELRELEASE)
+endif
 
 # Store (new) KERNELRELEASE string in include/config/kernel.release
 include/config/kernel.release: FORCE
@@ -2123,7 +2127,7 @@ checkstack:
        $(PERL) $(srctree)/scripts/checkstack.pl $(CHECKSTACK_ARCH)
 
 kernelrelease:
-       @$(srctree)/scripts/setlocalversion $(srctree)
+       @$(filechk_kernel.release)
 
 kernelversion:
        @echo $(KERNELVERSION)