linux: add BR2_LINUX_KERNEL_NEEDS_HOST_BISON & BR2_LINUX_KERNEL_NEEDS_HOST_FLEX
PATCH 1/4 linux: add BR2_LINUX_KERNEL_NEEDS_HOST_BISON & BR2_LINUX_KERNEL_NEEDS_HOST_FLEX
Upstream removed pre-generated files and switched over to build-time generation, for details see
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=033dba2ec06c47a9fe1b190bc3281058fb20738d
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=29c833061c1d8c2d1d23a62e7061561eadd76cdb
--- linux/Config.in | 14 ++++++++++++++ linux/linux.mk | 8 ++++++++ 2 files changed, 22 insertions(+)
linux/Config.in +14 -0
@@ -420,6 +420,20 @@ config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". +config BR2_LINUX_KERNEL_NEEDS_HOST_BISON + bool "Needs host bison" + help + Linux kernel versions >= 4.16 need host-bison. + + Enable this option if you want to build a Linux kernel >= 4.16 + +config BR2_LINUX_KERNEL_NEEDS_HOST_FLEX + bool "Needs host flex" + help + Linux kernel versions >= 4.16 need host-flex. + + Enable this option if you want to build a Linux kernel >= 4.16 + # Linux extensions source "linux/Config.ext.in"
linux/linux.mk +8 -0
@@ -88,6 +88,14 @@ ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF),y) LINUX_DEPENDENCIES += host-elfutils endif +ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_BISON),y) +LINUX_DEPENDENCIES += host-bison +endif + +ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_FLEX),y) +LINUX_DEPENDENCIES += host-flex +endif + # If host-uboot-tools is selected by the user, assume it is needed to # create a custom image ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS),y)
Signature · 1 line
2.14.2
PATCH 2/4 toolchain: add 4.16.x choice for headers
--- toolchain/Config.in | 5 +++++ .../toolchain-external/toolchain-external-custom/Config.in.options | 4 ++++ 2 files changed, 9 insertions(+)
toolchain/Config.in +5 -0
@@ -323,10 +323,15 @@ config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 bool select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 +config BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 + bool + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 + # This order guarantees that the highest version is set, as kconfig # stops affecting a value on the first matching default. config BR2_TOOLCHAIN_HEADERS_AT_LEAST string + default "4.16" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 default "4.15" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 default "4.14" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14 default "4.13" if BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13
toolchain/toolchain-external/toolchain-external-custom/Config.in.options +4 -0
@@ -108,6 +108,10 @@ choice m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF +config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_16 + bool "4.16.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 + config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_15 bool "4.15.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
Signature · 1 line
2.14.2
PATCH 3/4 linux: bump default to version 4.16
In reply to Bernd Kuhls--- linux/Config.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
linux/Config.in +2 -2
@@ -26,7 +26,7 @@ choice prompt "Kernel version" config BR2_LINUX_KERNEL_LATEST_VERSION - bool "Latest version (4.15)" + bool "Latest version (4.16)" config BR2_LINUX_KERNEL_LATEST_CIP_VERSION bool "Latest CIP SLTS version (v4.4.112-cip18)"
@@ -116,7 +116,7 @@ endif config BR2_LINUX_KERNEL_VERSION string - default "4.15.15" if BR2_LINUX_KERNEL_LATEST_VERSION + default "4.16" if BR2_LINUX_KERNEL_LATEST_VERSION default "v4.4.112-cip18" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \ if BR2_LINUX_KERNEL_CUSTOM_VERSION
Signature · 1 line
2.14.2
PATCH 4/4 linux-headers: bump to 4.16 kernel version
In reply to Bernd Kuhls--- package/linux-headers/Config.in.host | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
package/linux-headers/Config.in.host +10 -1
@@ -6,7 +6,7 @@ config BR2_PACKAGE_HOST_LINUX_HEADERS choice prompt "Kernel Headers" default BR2_KERNEL_HEADERS_AS_KERNEL if BR2_LINUX_KERNEL - default BR2_KERNEL_HEADERS_4_15 + default BR2_KERNEL_HEADERS_4_16 help Select the kernel version to get headers from.
@@ -67,6 +67,10 @@ config BR2_KERNEL_HEADERS_4_15 bool "Linux 4.15.x kernel headers" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15 +config BR2_KERNEL_HEADERS_4_16 + bool "Linux 4.16.x kernel headers" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 + config BR2_KERNEL_HEADERS_VERSION bool "Manually specified Linux version"
@@ -89,6 +93,10 @@ choice This is used to hide/show some packages that have strict requirements on the version of kernel headers. +config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_16 + bool "4.16.x" + select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_16 + config BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_15 bool "4.15.x" select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_15
@@ -250,4 +258,5 @@ config BR2_DEFAULT_KERNEL_HEADERS default "4.13.16" if BR2_KERNEL_HEADERS_4_13 default "4.14.32" if BR2_KERNEL_HEADERS_4_14 default "4.15.15" if BR2_KERNEL_HEADERS_4_15 + default "4.16" if BR2_KERNEL_HEADERS_4_16 default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
Signature · 1 line
2.14.2
PATCH 1/4 linux: add BR2_LINUX_KERNEL_NEEDS_HOST_BISON & BR2_LINUX_KERNEL_NEEDS_HOST_FLEX
In reply to Bernd KuhlsHello,
Quoted 22 lines · Bernd Kuhls
Upstream removed pre-generated files and switched over to build-time generation, for details see
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=033dba2ec06c47a9fe1b190bc3281058fb20738d
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=29c833061c1d8c2d1d23a62e7061561eadd76cdbSigned-off-by Bernd Kuhls <[email protected]>--- linux/Config.in | 14 ++++++++++++++ linux/linux.mk | 8 ++++++++ 2 files changed, 22 insertions(+)linux/Config.in +3
-0@@ -420,6 +420,20 @@ config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". +config BR2_LINUX_KERNEL_NEEDS_HOST_BISON + bool "Needs host bison" + help
linux/Config.in config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF · line 435
Quoted 10 lines
linux/Config.in +10
-0+ Linux kernel versions >= 4.16 need host-bison. + + Enable this option if you want to build a Linux kernel >= 4.16 + +config BR2_LINUX_KERNEL_NEEDS_HOST_FLEX + bool "Needs host flex" + help + Linux kernel versions >= 4.16 need host-flex. + + Enable this option if you want to build a Linux kernel >= 4.16
I think we should just add host-bison and host-flex as mandatory dependencies of Linux. Trust me, I don't like adding mandatory dependencies, but moving forward everybody will need those dependencies, since just to do the kernel configuration they will be needed.
The OpenSSL and libelf dependencies that I recently added are IMO a bit different, because they are only needed when some very specific Linux kernel configuration options are enabled.
For bison/flex, it's all Linux kernel versions >= 4.16 that will need them.
It is very annoying that host-flex currently needs autoreconf+gettextize, but hopefully with the next release of flex, we can remove the patches, and drop autoreconf+gettextize.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com