kbuild: fix "cat: .version: No such file or directory"

Message ID 20221122143902.272330-1-masahiroy@kernel.org
State New
Headers
Series kbuild: fix "cat: .version: No such file or directory" |

Commit Message

Masahiro Yamada Nov. 22, 2022, 2:39 p.m. UTC
  Since commit 2df8220cc511 ("kbuild: build init/built-in.a just once"),
the .version file is not touched at all when KBUILD_BUILD_VERSION is
given.

If KBUILD_BUILD_VERSION is specified and the .version file is missing
(for example right after 'make mrproper'), "No such file or director"
is shown. Even if the .version exists, it is irrelevant to the version
of the current build.

  $ make -j$(nproc) KBUILD_BUILD_VERSION=100 mrproper defconfig all
    [ snip ]
    BUILD   arch/x86/boot/bzImage
  cat: .version: No such file or directory
  Kernel: arch/x86/boot/bzImage is ready  (#)

Show KBUILD_BUILD_VERSION if it is given.

Fixes: 2df8220cc511 ("kbuild: build init/built-in.a just once")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 arch/microblaze/Makefile | 4 ++--
 arch/x86/boot/Makefile   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
  

Comments

Nicolas Schier Nov. 23, 2022, 9:27 p.m. UTC | #1
On Tue 22 Nov 2022 23:39:02 GMT, Masahiro Yamada wrote:
> Since commit 2df8220cc511 ("kbuild: build init/built-in.a just once"),
> the .version file is not touched at all when KBUILD_BUILD_VERSION is
> given.
> 
> If KBUILD_BUILD_VERSION is specified and the .version file is missing
> (for example right after 'make mrproper'), "No such file or director"
> is shown. Even if the .version exists, it is irrelevant to the version
> of the current build.
> 
>   $ make -j$(nproc) KBUILD_BUILD_VERSION=100 mrproper defconfig all
>     [ snip ]
>     BUILD   arch/x86/boot/bzImage
>   cat: .version: No such file or directory
>   Kernel: arch/x86/boot/bzImage is ready  (#)
> 
> Show KBUILD_BUILD_VERSION if it is given.
> 
> Fixes: 2df8220cc511 ("kbuild: build init/built-in.a just once")
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---

Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>

> 
>  arch/microblaze/Makefile | 4 ++--
>  arch/x86/boot/Makefile   | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
> index 3f8a86c4336a..02e6be9c5b0d 100644
> --- a/arch/microblaze/Makefile
> +++ b/arch/microblaze/Makefile
> @@ -67,12 +67,12 @@ linux.bin.ub linux.bin.gz: linux.bin
>  linux.bin: vmlinux
>  linux.bin linux.bin.gz linux.bin.ub:
>  	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
> -	@echo 'Kernel: $(boot)/$@ is ready' ' (#'`cat .version`')'
> +	@echo 'Kernel: $(boot)/$@ is ready' ' (#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')'
>  
>  PHONY += simpleImage.$(DTB)
>  simpleImage.$(DTB): vmlinux
>  	$(Q)$(MAKE) $(build)=$(boot) $(addprefix $(boot)/$@., ub unstrip strip)
> -	@echo 'Kernel: $(boot)/$@ is ready' ' (#'`cat .version`')'
> +	@echo 'Kernel: $(boot)/$@ is ready' ' (#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')'
>  
>  define archhelp
>    echo '* linux.bin    - Create raw binary'
> diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
> index 9860ca5979f8..9e38ffaadb5d 100644
> --- a/arch/x86/boot/Makefile
> +++ b/arch/x86/boot/Makefile
> @@ -83,7 +83,7 @@ cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin \
>  
>  $(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE
>  	$(call if_changed,image)
> -	@$(kecho) 'Kernel: $@ is ready' ' (#'`cat .version`')'
> +	@$(kecho) 'Kernel: $@ is ready' ' (#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')'
>  
>  OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note -R .comment -S
>  $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE
> -- 
> 2.34.1
  

Patch

diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index 3f8a86c4336a..02e6be9c5b0d 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -67,12 +67,12 @@  linux.bin.ub linux.bin.gz: linux.bin
 linux.bin: vmlinux
 linux.bin linux.bin.gz linux.bin.ub:
 	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-	@echo 'Kernel: $(boot)/$@ is ready' ' (#'`cat .version`')'
+	@echo 'Kernel: $(boot)/$@ is ready' ' (#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')'
 
 PHONY += simpleImage.$(DTB)
 simpleImage.$(DTB): vmlinux
 	$(Q)$(MAKE) $(build)=$(boot) $(addprefix $(boot)/$@., ub unstrip strip)
-	@echo 'Kernel: $(boot)/$@ is ready' ' (#'`cat .version`')'
+	@echo 'Kernel: $(boot)/$@ is ready' ' (#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')'
 
 define archhelp
   echo '* linux.bin    - Create raw binary'
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index 9860ca5979f8..9e38ffaadb5d 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -83,7 +83,7 @@  cmd_image = $(obj)/tools/build $(obj)/setup.bin $(obj)/vmlinux.bin \
 
 $(obj)/bzImage: $(obj)/setup.bin $(obj)/vmlinux.bin $(obj)/tools/build FORCE
 	$(call if_changed,image)
-	@$(kecho) 'Kernel: $@ is ready' ' (#'`cat .version`')'
+	@$(kecho) 'Kernel: $@ is ready' ' (#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')'
 
 OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note -R .comment -S
 $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE