On 2/6/21 5:22 AM, Willy Tarreau wrote: > On Sat, Feb 06, 2021 at 02:11:13PM +0100, Willy Tarreau wrote: >> Something like this looks more robust to me, it will use SUBLEVEL for >> values 0 to 255 and 255 for any larger value: >> >> - expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \ >> + expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255 \* (0$(SUBLEVEL) > 255) + 0$(SUBLEVEL) * (0$(SUBLEVEL \<= 255)); \ > > Bah, I obviously missed a backslash above and forgot spaces around parens. > Here's a tested version: > > diff --git a/Makefile b/Makefile > index 7d86ad6ad36c..9b91b8815b40 100644 > --- a/Makefile > +++ b/Makefile > @@ -1252,7 +1252,7 @@ endef > > define filechk_version.h > echo \#define LINUX_VERSION_CODE $(shell \ > - expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \ > + expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255 \* \( 0$(SUBLEVEL) \> 255 \) + 0$(SUBLEVEL) \* \( 0$(SUBLEVEL) \<= 255 \) ); \ > echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' > endef > I like that version. Two questions: Are there any concerns that KERNEL_VERSION(4, 4, 256) matches KERNEL_VERSION(4, 5. 0), and do you plan to send this patch upstream ? Thanks, Guenter