Re: [RFC PATCH for-stable] kbuild: Define LINUX_VERSION_{MAJOR,PATCHLEVEL,SUBLEVEL}

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 07, 2022 at 12:47:41PM +0000, Jiaxun Yang wrote:
> 
> 
> 在 2022/2/7 12:01, Greg KH 写道:
> > On Mon, Feb 07, 2022 at 11:52:12AM +0000, Jiaxun Yang wrote:
> > > Since the SUBLEVEL overflowed LINUX_VERSION, we have no reliable
> > > way to tell the current SUBLEVEL in source code.
> > What in-kernel code needs to know the SUBLEVEL?
> Hi,
> 
> Ah sorry, to clarification, backport here means "Backport Project"
> (https://backports.wiki.kernel.org).
> 
> Though it is not in-tree, it is a vital part of kernel ecosystem to
> deliver some new drivers to stable kernels.
> 
> It relies on KERNEL_VERSION macros to enable compat code.
> 
> > 
> > > This brings significant difficulties for backport works to deal
> > > with changes in stable releases.
> > What backport issues?
> Context: https://lore.kernel.org/backports/bb0ae37aa770e016463706d557fec1c5205bc6a9.camel@xxxxxxxxxxxxxxxx/T/#t
> 
> We are nolonger able to detect linux version > 4.9.255 in source.

Why do you need to do so?

> > 
> > > Define those macros so we can continue to get proper SUBLEVEL
> > > in source without breaking stable ABI by refining KERNEL_VERSION
> > > bit fields.
> > > 
> > > Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>
> > > ---
> > > For some context: https://lore.kernel.org/backports/bb0ae37aa770e016463706d557fec1c5205bc6a9.camel@xxxxxxxxxxxxxxxx/T/#t
> > > ---
> > >   Makefile | 5 ++++-
> > >   1 file changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/Makefile b/Makefile
> > > index 99d37c23495e..8132f81d94d8 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -1142,7 +1142,10 @@ endef
> > >   define filechk_version.h
> > >   	(echo \#define LINUX_VERSION_CODE $(shell                         \
> > >   	expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 255); \
> > > -	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';)
> > > +	echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
> > > +	echo \#define LINUX_VERSION_MAJOR $(VERSION); \
> > > +	echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \
> > > +	echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL);)
> > This is already in Makefile, are you sure you just do not need to
> > backport
> I wish this can be a part of existing stable kernels so backport project
> can maintain flawless build againt stable kernels.

My point being that you should not try to duplicate changes that are
already in Linus's tree.  What I think you want is commit 88a686728b37
("kbuild: simplify access to the kernel's version") to be backported,
right?

If so, please provide a working backport for all affected kernels and we
will be glad to consider it.

thanks,

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux