diff options
Diffstat (limited to 'linux')
-rw-r--r-- | linux/Config.in | 63 | ||||
-rw-r--r-- | linux/linux.mk | 28 |
2 files changed, 51 insertions, 40 deletions
diff --git a/linux/Config.in b/linux/Config.in index 5afd620d98..142d42e10c 100644 --- a/linux/Config.in +++ b/linux/Config.in @@ -116,7 +116,7 @@ endif config BR2_LINUX_KERNEL_VERSION string - default "4.15.7" if BR2_LINUX_KERNEL_LATEST_VERSION + default "4.15.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 @@ -284,7 +284,7 @@ endchoice choice prompt "Kernel compression format" help - This selection will just ensure that the correct host tools are build. + This selection will just ensure that the correct host tools are built. The actual compression for the kernel should be selected in the kernel configuration menu. @@ -363,40 +363,19 @@ config BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT config BR2_LINUX_KERNEL_APPENDED_DTB bool -choice - prompt "Device tree source" - default BR2_LINUX_KERNEL_USE_INTREE_DTS - -config BR2_LINUX_KERNEL_USE_INTREE_DTS - bool "Use a device tree present in the kernel" - help - Use a device tree source distributed with - the kernel sources. The dts files are located - in the arch/<arch>/boot/dts folder. - -config BR2_LINUX_KERNEL_USE_CUSTOM_DTS - bool "Use a custom device tree file" - help - Use a custom device tree file, i.e, a device - tree file that does not belong to the kernel - source tree. -endchoice - config BR2_LINUX_KERNEL_INTREE_DTS_NAME - string "Device Tree Source file names" - depends on BR2_LINUX_KERNEL_USE_INTREE_DTS + string "In-tree Device Tree Source file names" help - Name of the device tree source file, without + Name of in-tree device tree source file, without the trailing .dts. You can provide a list of dts files to build, separated by spaces. config BR2_LINUX_KERNEL_CUSTOM_DTS_PATH - string "Device Tree Source file paths" - depends on BR2_LINUX_KERNEL_USE_CUSTOM_DTS + string "Out-of-tree Device Tree Source file paths" help - Path to the device tree source files. You can - provide a list of dts paths to copy and build, - separated by spaces. + Path to to out-of-tree device tree source files. + You can provide a list of dts paths to copy and + build, separated by spaces. endif @@ -412,6 +391,32 @@ config BR2_LINUX_KERNEL_INSTALL_TARGET /boot if DTBs have been generated by the kernel build process. +config BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL + bool "Needs host OpenSSL" + help + Some Linux kernel configuration options (such as + CONFIG_SYSTEM_TRUSTED_KEYRING) require building a host + program called extract-cert, which itself needs + OpenSSL. Enabling this option will ensure host-openssl gets + built before the Linux kernel. + + Enable this option if you get a Linux kernel build failure + such as "scripts/extract-cert.c:21:25: fatal error: + openssl/bio.h: No such file or directory". + +config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF + bool "Needs host libelf" + help + Some Linux kernel configuration options (such as + CONFIG_UNWINDER_ORC) require building a host program that + needs libelf. Enabling this option will ensure host-elfutils + (which provides libelf) gets built before the Linux kernel. + + Enable this option if you get a Linux kernel build failure + such as "Cannot generate ORC metadata for + CONFIG_UNWINDER_ORC=y, please install libelf-dev, + libelf-devel or elfutils-libelf-devel". + # Linux extensions source "linux/Config.ext.in" diff --git a/linux/linux.mk b/linux/linux.mk index 5300b9cfc5..8d14f41c6b 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -80,6 +80,14 @@ LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZMA) += CONFIG_KERNEL_LZMA LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_LZO) += CONFIG_KERNEL_LZO LINUX_COMPRESSION_OPT_$(BR2_LINUX_KERNEL_XZ) += CONFIG_KERNEL_XZ +ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL),y) +LINUX_DEPENDENCIES += host-openssl +endif + +ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF),y) +LINUX_DEPENDENCIES += host-elfutils +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) @@ -95,8 +103,7 @@ LINUX_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif LINUX_MAKE_FLAGS = \ - HOSTCC="$(HOSTCC)" \ - HOSTCFLAGS="$(HOSTCFLAGS)" \ + HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \ ARCH=$(KERNEL_ARCH) \ INSTALL_MOD_PATH=$(TARGET_DIR) \ CROSS_COMPILE="$(TARGET_CROSS)" \ @@ -118,15 +125,13 @@ endif # going to be installed in the target filesystem. LINUX_VERSION_PROBED = `$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease 2>/dev/null` -ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y) -KERNEL_DTS_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME)) -else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y) +KERNEL_DTS_NAME += $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME)) + # We keep only the .dts files, so that the user can specify both .dts # and .dtsi files in BR2_LINUX_KERNEL_CUSTOM_DTS_PATH. Both will be # copied to arch/<arch>/boot/dts, but only the .dts files will # actually be generated as .dtb. -KERNEL_DTS_NAME = $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH))))) -endif +KERNEL_DTS_NAME += $(basename $(filter %.dts,$(notdir $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH))))) KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME)) @@ -362,8 +367,9 @@ endif # Compilation. We make sure the kernel gets rebuilt when the # configuration has changed. define LINUX_BUILD_CMDS - $(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS), - cp -f $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)) $(KERNEL_ARCH_PATH)/boot/dts/) + @for dts in $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)); do \ + cp -f $${dts} $(KERNEL_ARCH_PATH)/boot/dts/ ; \ + done $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) @if grep -q "CONFIG_MODULES=y" $(@D)/.config; then \ $(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \ @@ -474,9 +480,9 @@ $(error No kernel configuration file specified, check your BR2_LINUX_KERNEL_CUST endif endif -ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT)$(KERNEL_DTS_NAME),y) +ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT):$(strip $(KERNEL_DTS_NAME)),y:) $(error No kernel device tree source specified, check your \ -BR2_LINUX_KERNEL_USE_INTREE_DTS / BR2_LINUX_KERNEL_USE_CUSTOM_DTS settings) +BR2_LINUX_KERNEL_INTREE_DTS_NAME / BR2_LINUX_KERNEL_CUSTOM_DTS_PATH settings) endif endif # BR_BUILDING |