Message ID | 20210227142023.63480-1-masahiroy@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again | expand |
On Sat, Feb 27, 2021 at 11:20:23PM +0900, Masahiro Yamada wrote: >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 <chzigotzky@xenosoft.de> >Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-and-tested-by: Sasha Levin <sashal@kernel.org> Thank you!
From: Masahiro Yamada > Sent: 27 February 2021 14:20 > > 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. You could do: #define LINUX_VERSION_PATCHLEVEL ($(PATCHLEVEL) + 0) David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
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)
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 <chzigotzky@xenosoft.de> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)