On Fri, Feb 05, 2021 at 03:26:36PM +0100, Greg Kroah-Hartman wrote:
I'm announcing the release of the 4.4.256 kernel.
This, and the 4.9.256 release are a little bit "different" than normal.
This contains only 1 patch, just the version bump from .255 to .256 which ends up causing the userspace-visable LINUX_VERSION_CODE to behave a bit differently than normal due to the "overflow".
With this release, KERNEL_VERSION(4, 4, 256) is the same as KERNEL_VERSION(4, 5, 0).
Nothing in the kernel build itself breaks with this change, but given that this is a userspace visible change, and some crazy tools (like glibc and gcc) have logic that checks the kernel version for different reasons, I wanted to do this release as an "empty" release to ensure that everything still works properly.
So, this is a YOU MUST UPGRADE requirement of a release. If you rely on the 4.4.y kernel, please throw this release into your test builds and rebuild the world and let us know if anything breaks, or if all is well.
Go forth and do full system rebuilds! Yocto and Gentoo are great for this, as will systems that use buildroot.
I'll try to hold off on doing a "real" 4.4.y release for a week to give everyone a chance to test this out and get back to me. The pending patches in the 4.4.y queue are pretty serious, so I am loath to wait longer than that, consider yourself warned...
Thanks a lot for the heads-up. For chromeos-4.4, the version number wrap is indeed fatal: Unfortunately we have lots of vendor code in the tree which uses KERNEL_VERSION(), and all the version comparisons against KERNEL_VERSION(4,5,0) do result in compile errors.
The best workaround/hack/kludge to address the problem seems to be the idea to use 4.4.255 as version number for LINUX_VERSION_CODE and KERNEL_VERSION() if SUBLEVEL is larger than 255. Did anyone find a better solution for the problem ?
Thanks, Guenter