← Back to team overview

lttng team mailing list archive

[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