Comment 0 for bug 1953522

Revision history for this message
Stefan Bader (smb) wrote :

An upstream kernel change which was introduced to avoid high sub-level numbers in 4.14.y to overflow into the minor number has uncovered a similar issue with LTTNG's macros which allow versioned code adaptions.

To allow that the ABI number of the kernel is inserted as a new sub-sub-level number. Which is done by shifting the existing LINUX_VERSION_CODE by another 8 bits. But this only allows for ABI numbers up to 255. After that they overflow into the sub-level part of the kernel. This went unnoticed until the kernel side changed this number to be 255 fix. Now the overflow reaches the minor number and this breaks assumptions in the code.

For example bionic:linux-snapdragon (-1117) fails to produce lttng-modules (DKMS) but the previous version would succeed. When changing the LINUX_VERSION_CODE back, this works in both cases.

Since the macros are only used to make compile time decisions the proposed fix would be to extend the ABI number size to 16bit. That will work in all cases.