aboutsummaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorGravatar Yann E. MORIN <yann.morin.1998@free.fr>2016-01-20 19:34:28 +0100
committerGravatar Peter Korsgaard <peter@korsgaard.com>2016-02-02 09:55:58 +0100
commit63abfb7210313fcc84b912ff2884b1357beff4b5 (patch)
treee54258d9a3f6ae8e3b65966eaf55cff25329edbe /linux
parentc823c6ee6ae68115f4d81b6aa5020486a273018e (diff)
downloadbuildroot-63abfb7210313fcc84b912ff2884b1357beff4b5.tar.gz
buildroot-63abfb7210313fcc84b912ff2884b1357beff4b5.tar.bz2
package/linux-headers: add option to use same sources as the kernel
Some heavily (and most often improperly) modified Linux kernels may export new APIs to userland, so as to speak to custom hardware or custom kernel facilities. However, we currently have no easy way to use such kernels as a source for the linux-headers package, which precludes having those userland headers intalled for userland applications to use them. We do have a way for the kernel to use the same version as for the headers, but that is definitely not enough, as the linux-headers package has a version choice that is far less versatile and capable than that of the linux package. Add a new option for the linux-headers package, for the user to specify that the version (really, the sources) of the kernel be used to install the headers from. We do that by making linux-headers patch-depend on the linux package. We can't have linux-header simply depend on linux, because the simple dependency means the the dependee will be configured, built and installed before the dependent is configured. And since linux is a target package, it depends on the toolchain, which internally dependes on linux-headers, which would depend on linux, and we'd get a circular dependency. Using patch-depend will ensure that linux is extracted and patched before linux-headers is extracted, which is really all we need. Then, we install the headers from the linux source tree, rather than from linux-headers' source tree (as there's nothing in there!). Since we need to install a private set for uClibc (see cde947f, uclibc: prevent rebuilding after installation to staging), we explicitly set INSTALL_HDR_PATH when calling the kernel' install-headers rule in LINUX_HEADERS_CONFIGURE_CMDS, so that the headers are installed in linux-headers' $(@D) instead of linux' $(@D). Finally, as there is no way to know the kernel version in this case, we must still prompt the user for the kernel series the headers are from (like we do for a custom version) and check for consistency at build time. Note however that this still leaves users that want to built their such-kernel outside of Buildroot out in the cold. [Peter: drop comment as suggested by Thomas] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Karoly Kasza <kaszak@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'linux')
-rw-r--r--linux/Config.in1
1 files changed, 1 insertions, 0 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