Commit 9b82f13e7ef3 ("kbuild: clamp SUBLEVEL to 255") breaks the build
if SUBLEVEL or PATCHLEVEL is empty.

Commit 78d3bb4483ba ("kbuild: Fix <linux/version.h> for empty SUBLEVEL
or PATCHLEVEL") fixed the issue by prepending a zero.

This time, we cannot take the same approach because we have C code:

  #define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL)
  #define LINUX_VERSION_SUBLEVEL $(SUBLEVEL)

Replace empty SUBLEVEL or PATCHLEVEL with a zero.

Fixes: 9b82f13e7ef3 ("kbuild: clamp SUBLEVEL to 255")
Reported-by: Christian Zigotzky <chzigot...@xenosoft.de>
Signed-off-by: Masahiro Yamada <masahi...@kernel.org>
---

 Makefile | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index f2dc2f953e23..14c13b09a9e7 100644
--- a/Makefile
+++ b/Makefile
@@ -1283,10 +1283,10 @@ endef
 define filechk_version.h
        if [ $(SUBLEVEL) -gt 255 ]; then                                 \
                echo \#define LINUX_VERSION_CODE $(shell                 \
-               expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255); \
+               expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + 255); \
        else                                                             \
                echo \#define LINUX_VERSION_CODE $(shell                 \
-               expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 
$(SUBLEVEL)); \
+               expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); 
\
        fi;                                                              \
        echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) +  \
        ((c) > 255 ? 255 : (c)))';                                       \
@@ -1295,6 +1295,8 @@ define filechk_version.h
        echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL)
 endef
 
+$(version_h): PATCHLEVEL := $(if $(PATCHLEVEL), $(PATCHLEVEL), 0)
+$(version_h): SUBLEVEL := $(if $(SUBLEVEL), $(SUBLEVEL), 0)
 $(version_h): FORCE
        $(call filechk,version.h)
 
-- 
2.27.0

Reply via email to