glibc VETO for kernel version SUBLEVEL >= 255

From: Jari Ruusu
Date: Sun Sep 26 2021 - 03:23:44 EST


Earlier this year there was some discussion about kernel version numbers
after 4.9.255 and 4.4.255. Problem was 8-bit limitation for SUBLEVEL
number in stable kernel versions. The fix was to freeze LINUX_VERSION_CODE
number at x.x.255 and to continue incrementing SUBLEVEL number. Seems
there are more more fallout from that decision. At least some versions of
glibc do not play well with larger SUBLEVEL numbers.


# uname -s -r -m
Linux 4.9.283-QEMU armv6l
# apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
[SNIP]
Fetched 145 MB in 1min 57s (1244 kB/s)
Reading changelogs... Done
Preconfiguring packages ...
(Reading database ... 39028 files and directories currently installed.)
Preparing to unpack .../libc6-dbg_2.28-10+rpt2+rpi1_armhf.deb ...
Unpacking libc6-dbg:armhf (2.28-10+rpt2+rpi1) over (2.28-10+rpi1) ...
Preparing to unpack .../libc6-dev_2.28-10+rpt2+rpi1_armhf.deb ...
Unpacking libc6-dev:armhf (2.28-10+rpt2+rpi1) over (2.28-10+rpi1) ...
Preparing to unpack .../libc-dev-bin_2.28-10+rpt2+rpi1_armhf.deb ...
Unpacking libc-dev-bin (2.28-10+rpt2+rpi1) over (2.28-10+rpi1) ...
Preparing to unpack .../linux-libc-dev_1%3a1.20210831-3~buster_armhf.deb ...
Unpacking linux-libc-dev:armhf (1:1.20210831-3~buster) over (1:1.20210527-1) ...
Preparing to unpack .../libc6_2.28-10+rpt2+rpi1_armhf.deb ...
ERROR: Your kernel version indicates a revision number
of 255 or greater. Glibc has a number of built in
assumptions that this revision number is less than 255.
If you\'ve built your own kernel, please make sure that any
custom version numbers are appended to the upstream
kernel number with a dash or some other delimiter.

dpkg: error processing archive /var/cache/apt/archives/libc6_2.28-10+rpt2+rpi1_armhf.deb (--unpack):
new libc6:armhf package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/libc6_2.28-10+rpt2+rpi1_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)



Above upgrade works normally if I edit top level Linux source Makefile to
say "SUBLEVEL = 0" and re-compile new kernel.

I am not pointing any fingers here, but it seems that either glibc code or
stable kernel versioning is messed up.

--
Jari Ruusu  4096R/8132F189 12D6 4C3A DCDA 0AA4 27BD  ACDF F073 3C80 8132 F189