Skip to contentSkip to conversation

linux: add BR2_LINUX_KERNEL_NEEDS_HOST_BISON & BR2_LINUX_KERNEL_NEEDS_HOST_FLEX

PATCH New Bernd Kuhls 2 participants 5 messages Apr 2, 2018

lore
Share & tools
lore
#0 lore raw

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
index d9c5b62863..487863875f 100644
@@ -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
index 7609a15f23..f1bed1eb09 100644
@@ -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
#1 lore raw

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
index b33eaffd52..e2ef1e7ef3 100644
@@ -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
index 6c12b1619c..8cc9db6841 100644
@@ -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
#2 lore raw

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
index 487863875f..94d9e005a0 100644
@@ -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
#3 lore raw

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
index 2a59e2902a..75f7966e51 100644
@@ -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
#4 lore raw

PATCH 1/4 linux: add BR2_LINUX_KERNEL_NEEDS_HOST_BISON & BR2_LINUX_KERNEL_NEEDS_HOST_FLEX

In reply to Bernd Kuhls

Hello,

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=29c833061c1d8c2d1d23a62e7061561eadd76cdb

---
 linux/Config.in | 14 ++++++++++++++
 linux/linux.mk  |  8 ++++++++
 2 files changed, 22 insertions(+)
linux/Config.in +3 -0
index d9c5b62863..487863875f 100644
@@ -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