lttng team mailing list archive
-
lttng team
-
Mailing list archive
-
Message #07504
[Bug 1953522] Re: Ubuntu version macros overflow with high ABI numbers
** Changed in: linux (Ubuntu)
Status: Incomplete => Invalid
--
You received this bug notification because you are a member of Ubuntu
LTTng, which is subscribed to lttng-modules in Ubuntu.
Matching subscriptions: lttng-modules-bugs
https://bugs.launchpad.net/bugs/1953522
Title:
Ubuntu version macros overflow with high ABI numbers
Status in linux package in Ubuntu:
Invalid
Status in lttng-modules package in Ubuntu:
Confirmed
Status in linux source package in Bionic:
Triaged
Status in lttng-modules source package in Bionic:
Triaged
Bug description:
[SRU Justification]
== Impact ==
The kernel change (which may or may not be taken back) revealed a
build issue we already have with lltng-modules and our high ABI
numbers for derivative/custom kernels. It should be fixed regardless
of what the kernel will do.
== Fix ==
The proposed fix changes macros which are used to do run-time
adaptions of code based on the kernel version for which the DKMS
modules are built for. The number keys which the macros are using are
not included in the code and the way those are used will either cause
build failures or produce the same code as before.
== Test case ==
Producing DKMS modules is the test case here. I did tests with the
previous bionic:linux-snapdragon (which uses the old sub-level in the
kernel) and the same kernel in proposed which has the sub-level set to
255 fix). Both worked.
== Regression Potential ==
Building DKMS modules for lttng could start to fail.
---
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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1953522/+subscriptions
References