kbuild: fix "cat: .version: No such file or directory"
Commit Message
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
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
@@ -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'
@@ -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