summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--linux/Config.in1
-rw-r--r--package/linux-headers/Config.in.host7
-rw-r--r--package/linux-headers/linux-headers.mk25
3 files changed, 29 insertions, 4 deletions
diff --git a/linux/Config.in b/linux/Config.in
index 40d7844de6..8971192873 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -31,6 +31,7 @@ config BR2_LINUX_KERNEL_LATEST_VERSION
config BR2_LINUX_KERNEL_SAME_AS_HEADERS
bool "Same as toolchain kernel headers"
+ depends on !BR2_KERNEL_HEADERS_AS_KERNEL
depends on BR2_TOOLCHAIN_BUILDROOT
help
This option will re-use the same kernel sources as the one
diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host
index e556bbffcc..ad5ee2ea47 100644
--- a/package/linux-headers/Config.in.host
+++ b/package/linux-headers/Config.in.host
@@ -5,12 +5,17 @@ comment "Kernel Header Options"
choice
prompt "Kernel Headers"
+ default BR2_KERNEL_HEADERS_AS_KERNEL if BR2_LINUX_KERNEL
default BR2_KERNEL_HEADERS_4_4
help
Select the version of kernel header files you wish to use.
You must select the correct set of header files to match
the kernel you intend to use on your target system.
+ config BR2_KERNEL_HEADERS_AS_KERNEL
+ bool "Same as kernel"
+ depends on BR2_LINUX_KERNEL
+
config BR2_KERNEL_HEADERS_3_2
bool "Linux 3.2.x kernel headers"
depends on !BR2_arc && !BR2_nios2
@@ -87,7 +92,7 @@ config BR2_DEFAULT_KERNEL_VERSION
choice
bool "Custom kernel headers series"
- depends on BR2_KERNEL_HEADERS_VERSION
+ depends on BR2_KERNEL_HEADERS_VERSION || BR2_KERNEL_HEADERS_AS_KERNEL
default BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD
help
Set to the kernel headers series you manually set above.
diff --git a/package/linux-headers/linux-headers.mk b/package/linux-headers/linux-headers.mk
index 1b8b81b20e..6339280345 100644
--- a/package/linux-headers/linux-headers.mk
+++ b/package/linux-headers/linux-headers.mk
@@ -7,6 +7,19 @@
# This package is used to provide Linux kernel headers for the
# internal toolchain backend.
+ifeq ($(BR2_KERNEL_HEADERS_AS_KERNEL),y)
+
+LINUX_HEADERS_VERSION = none
+LINUX_HEADERS_SOURCE =
+
+LINUX_HEADERS_LICENSE = $(LINUX_LICENSE)
+LINUX_HEADERS_LICENSE_FILES = $(LINUX_LICENSE_FILES)
+
+LINUX_HEADERS_PATCH_DEPENDENCIES = linux
+LINUX_HEADERS_REAL_DIR = $(LINUX_DIR)
+
+else # ! BR2_KERNEL_HEADERS_AS_KERNEL
+
LINUX_HEADERS_VERSION = $(call qstrip,$(BR2_DEFAULT_KERNEL_HEADERS))
ifeq ($(findstring x2.6.,x$(LINUX_HEADERS_VERSION)),x2.6.)
LINUX_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v2.6
@@ -16,9 +29,14 @@ else ifeq ($(findstring x4.,x$(LINUX_HEADERS_VERSION)),x4.)
LINUX_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v4.x
endif
LINUX_HEADERS_SOURCE = linux-$(LINUX_HEADERS_VERSION).tar.xz
+
LINUX_HEADERS_LICENSE = GPLv2
LINUX_HEADERS_LICENSE_FILES = COPYING
+LINUX_HEADERS_REAL_DIR = $(@D)
+
+endif # ! BR2_KERNEL_HEADERS_AS_KERNEL
+
LINUX_HEADERS_INSTALL_STAGING = YES
# linux-headers is part of the toolchain so disable the toolchain dependency
@@ -35,17 +53,18 @@ LINUX_HEADERS_ADD_TOOLCHAIN_DEPENDENCY = NO
# uClibc building. This way uClibc doesn't modify linux headers on installation
# of "its" headers
define LINUX_HEADERS_CONFIGURE_CMDS
- (cd $(@D); \
+ (cd $(LINUX_HEADERS_REAL_DIR); \
$(TARGET_MAKE_ENV) $(MAKE) \
ARCH=$(KERNEL_ARCH) \
HOSTCC="$(HOSTCC)" \
HOSTCFLAGS="$(HOSTCFLAGS)" \
HOSTCXX="$(HOSTCXX)" \
+ INSTALL_HDR_PATH=$(@D)/usr \
headers_install)
endef
define LINUX_HEADERS_INSTALL_STAGING_CMDS
- (cd $(@D); \
+ (cd $(LINUX_HEADERS_REAL_DIR); \
$(TARGET_MAKE_ENV) $(MAKE) \
ARCH=$(KERNEL_ARCH) \
HOSTCC="$(HOSTCC)" \
@@ -55,7 +74,7 @@ define LINUX_HEADERS_INSTALL_STAGING_CMDS
headers_install)
endef
-ifeq ($(BR2_KERNEL_HEADERS_VERSION),y)
+ifeq ($(BR2_KERNEL_HEADERS_VERSION)$(BR2_KERNEL_HEADERS_AS_KERNEL),y)
define LINUX_HEADERS_CHECK_VERSION
$(call check_kernel_headers_version,\
$(STAGING_DIR),\
OpenPOWER on IntegriCloud