Comment 0 for bug 1991664

Revision history for this message
Dimitri John Ledkov (xnox) wrote : backport dkms fixes to build modules correctly for hwe-5.19+ kernels

[ Impact ]

 * hwe-5.19 kernel has to be compiled with gcc-12+ for the new security kernel config options that have been enabled in that kernel (init zero structs).

 * dkms needs to be patched to attempt to use the same compiler as was used to build the kernel, specifically use gcc for v5.15 but gcc-12 for v5.19+ in jammy

 * dkms autopkgtests also need to be improved to ensure there are no false negatives when kernel has module under test already built-in at the same version.

 * because linux-headers packages in Ubuntu do not depend on a toolchain, and it is very hard to correctly depend on a native or cross-toolchain, add gcc-12 dependency in the dkms package.

[ Test Plan ]

 * Retrigger dkms module test for a built-in package of the same version as already built into the kernel, for example zfs-linux dkms. It should pass.

 * Attempt to build dkms modules against v5.15 kernel and v5.19 kernel from proposed. dkms module should be built with gcc and gcc-12 respectively.

[ Where problems could occur ]

 * New gcc-12 dependency on the dkms package may result in two compilers being installed in the Ubuntu Desktop Live image

 * New gcc-12 dependency may prevent automatic upgrade/installation of the dkms package update via unattended upgrades.

[ Other Info ]

 * It is questionable for dkms to depend on any c-compiler, given that a module for a given kernel can really be built with the same toolchain and the same compiler features.

 * In debian, linux kernel packages ship and extra configuration file in the kernel headers, dkms uses said configuration file to use a matching compiler, and linux-headers packages depend on the toolchain used to build a given kernel. Maybe in the future Ubuntu could consider using the same packaging.