Compatibility
Oracle Linux maintains full user space compatibility with Red Hat Enterprise Linux (RHEL), which is independent of the kernel version that is running underneath the operating system. Existing applications in user space continue to run unmodified on the Unbreakable Enterprise Kernel Release 6 and no re-certifications are needed for RHEL certified applications.
To minimize impact on interoperability during releases, the Oracle Linux team works closely with third-party vendors whose hardware and software have dependencies on kernel modules. The kernel ABI for UEK R6 remains unchanged in all subsequent updates to the initial release. In this release, there are changes to the kernel ABI relative to UEK R5 that require recompilation of third-party kernel modules on the system. Before installing UEK R6, verify its support status with your application vendor.
Notable changes in kernel headers
Upstream changes to kernel headers may mean that third party
modules do not compile across different kernel versions
without modification to source code. Notably, the
memcg_cache_params
structure has been moved
from include/linux/slab.h
to
mm/slab.h
. This means that code needs to be
refactored to account for the change if you are compiling
across kernel versions.
To solve this problem, so that the code can compile for both UEK R5 and UEK R6, change header requirements in the source code. For example, change lines like those in the following example to what is shown in the second example:
#ifdef CONFIG_SLUB #include <linux/slub_def.h> #endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) ) #ifdef CONFIG_SLUB #include <linux/slub_def.h> #endif #endif