From 5e8705263cf4592d8c02fac71803053e17d4f83b Mon Sep 17 00:00:00 2001 From: Titouan Christophe Date: Sat, 10 Oct 2026 22:15:07 +0200 Subject: [PATCH] linux: add first-class support for all upstream linux versions Add new KConfig symbols for all actively supported longterm versions of the Linux kernel. This makes it easier for individual configs to follow updates of their kernels, without having to frequently update them. This should generally improve the security of the target systems, which receive frequent security updates while preserving a stable feature set. Signed-off-by: Titouan Christophe [Peter: move BR2_LINUX_KERNEL_LATEST_SERIES outside the choice to make utils/check-symbols happy, add version symlinks] Signed-off-by: Peter Korsgaard --- linux/5.10.271 | 1 + linux/5.15.222 | 1 + linux/6.1.189 | 1 + linux/6.12.112 | 1 + linux/6.18.55 | 1 + linux/6.6.158 | 1 + linux/Config.in | 49 ++++++++++++++++++++++++++-- linux/linux.mk | 2 +- package/linux-headers/Config.in.host | 4 +-- 9 files changed, 54 insertions(+), 7 deletions(-) create mode 120000 linux/5.10.271 create mode 120000 linux/5.15.222 create mode 120000 linux/6.1.189 create mode 120000 linux/6.12.112 create mode 120000 linux/6.18.55 create mode 120000 linux/6.6.158 diff --git a/linux/5.10.271 b/linux/5.10.271 new file mode 120000 index 0000000000..108006b730 --- /dev/null +++ b/linux/5.10.271 @@ -0,0 +1 @@ +before-6.17 \ No newline at end of file diff --git a/linux/5.15.222 b/linux/5.15.222 new file mode 120000 index 0000000000..108006b730 --- /dev/null +++ b/linux/5.15.222 @@ -0,0 +1 @@ +before-6.17 \ No newline at end of file diff --git a/linux/6.1.189 b/linux/6.1.189 new file mode 120000 index 0000000000..108006b730 --- /dev/null +++ b/linux/6.1.189 @@ -0,0 +1 @@ +before-6.17 \ No newline at end of file diff --git a/linux/6.12.112 b/linux/6.12.112 new file mode 120000 index 0000000000..108006b730 --- /dev/null +++ b/linux/6.12.112 @@ -0,0 +1 @@ +before-6.17 \ No newline at end of file diff --git a/linux/6.18.55 b/linux/6.18.55 new file mode 120000 index 0000000000..74e2b2d5b6 --- /dev/null +++ b/linux/6.18.55 @@ -0,0 +1 @@ +from-6.17 \ No newline at end of file diff --git a/linux/6.6.158 b/linux/6.6.158 new file mode 120000 index 0000000000..108006b730 --- /dev/null +++ b/linux/6.6.158 @@ -0,0 +1 @@ +before-6.17 \ No newline at end of file diff --git a/linux/Config.in b/linux/Config.in index 3521fe5cd5..ec705b0bb0 100644 --- a/linux/Config.in +++ b/linux/Config.in @@ -21,6 +21,12 @@ if BR2_LINUX_KERNEL config BR2_LINUX_NEEDS_MODULES bool +config BR2_LINUX_KERNEL_LATEST_SERIES + # Helper symbol to indicate if one of the "latest" kernel + # (either the very latest one or from a longterm supported series) + # has been selected + bool + # # Version selection. We provide the choice between: # @@ -35,12 +41,44 @@ choice config BR2_LINUX_KERNEL_LATEST_VERSION bool "Latest version (7.2)" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_7_2 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES + +config BR2_LINUX_KERNEL_LATEST_6_18 + bool "Long term 6.18" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_18 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES + +config BR2_LINUX_KERNEL_LATEST_6_12 + bool "Long term 6.12" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_12 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES + +config BR2_LINUX_KERNEL_LATEST_6_6 + bool "Long term 6.6" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_12 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES + +config BR2_LINUX_KERNEL_LATEST_6_1 + bool "Long term 6.1" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_6_1 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES + +config BR2_LINUX_KERNEL_LATEST_5_15 + bool "Long term 5.15" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_15 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES + +config BR2_LINUX_KERNEL_LATEST_5_10 + bool "Long term 5.10" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES config BR2_LINUX_KERNEL_LATEST_CIP_VERSION bool "Latest CIP SLTS version (5.10.254-cip72)" # Support was introduced in Linux 5.19 depends on !BR2_loongarch64 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES help CIP launched in the spring of 2016 to address the needs of organizations in industries such as power generation and @@ -63,6 +101,7 @@ config BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION # Support was introduced in Linux 5.19 depends on !BR2_loongarch64 select BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_10 if BR2_KERNEL_HEADERS_AS_KERNEL + select BR2_LINUX_KERNEL_LATEST_SERIES help Same as the CIP version, but this is the PREEMPT_RT realtime variant. @@ -144,6 +183,12 @@ config BR2_LINUX_KERNEL_CUSTOM_REPO_GIT_SUBMODULES config BR2_LINUX_KERNEL_VERSION string default "7.2.9" if BR2_LINUX_KERNEL_LATEST_VERSION + default "6.18.55" if BR2_LINUX_KERNEL_LATEST_6_18 + default "6.12.112" if BR2_LINUX_KERNEL_LATEST_6_12 + default "6.6.158" if BR2_LINUX_KERNEL_LATEST_6_6 + default "6.1.189" if BR2_LINUX_KERNEL_LATEST_6_1 + default "5.15.222" if BR2_LINUX_KERNEL_LATEST_5_15 + default "5.10.271" if BR2_LINUX_KERNEL_LATEST_5_10 default "5.10.254-cip72" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION default "5.10.254-cip72-rt32" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \ @@ -189,9 +234,7 @@ config BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG # requires host-openssl, so select it for the latest kernel # version and the latest CIP version. # This is mainly needed to fix autobuilder testing. - select BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL if \ - BR2_LINUX_KERNEL_LATEST_VERSION || \ - BR2_LINUX_KERNEL_LATEST_CIP_VERSION + select BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL if BR2_LINUX_KERNEL_LATEST_SERIES help This option will use the default configuration for the selected architecture. I.e, it is equivalent to running diff --git a/linux/linux.mk b/linux/linux.mk index cd80904113..75294cff18 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -45,7 +45,7 @@ LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v$(firstword $(subst ., ,$(LINUX_ endif endif -ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_VERSION),y) +ifeq ($(BR2_LINUX_KERNEL)$(BR2_LINUX_KERNEL_LATEST_SERIES),y) BR_NO_CHECK_HASH_FOR += $(LINUX_SOURCE) endif diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host index b11db18379..3cf2cdd4f4 100644 --- a/package/linux-headers/Config.in.host +++ b/package/linux-headers/Config.in.host @@ -118,9 +118,7 @@ endif choice bool "Custom kernel headers series" default BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD - depends on !BR2_LINUX_KERNEL_LATEST_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL - depends on !BR2_LINUX_KERNEL_LATEST_CIP_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL - depends on !BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION || !BR2_KERNEL_HEADERS_AS_KERNEL + depends on !BR2_LINUX_KERNEL_LATEST_SERIES || !BR2_KERNEL_HEADERS_AS_KERNEL depends on BR2_KERNEL_HEADERS_VERSION || BR2_KERNEL_HEADERS_AS_KERNEL || \ BR2_KERNEL_HEADERS_CUSTOM_TARBALL || BR2_KERNEL_HEADERS_CUSTOM_GIT help