summaryrefslogtreecommitdiffstats
path: root/package/linux-headers
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-06-30 21:28:58 +0200
committerPeter Korsgaard <jacmet@sunsite.dk>2013-07-03 22:45:14 +0200
commit7f240d984b721c104fec6aee5710277c6955206b (patch)
tree0e12525ccb43293275d66a87b7b93c749ffe35ca /package/linux-headers
parente21db000267cfbff000f1fc8c8e3329c5473ce1e (diff)
downloadbuildroot-novena-7f240d984b721c104fec6aee5710277c6955206b.tar.gz
buildroot-novena-7f240d984b721c104fec6aee5710277c6955206b.zip
kernel-headers: migrate to the package infrastructure
[Peter: fix file header] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/linux-headers')
-rw-r--r--package/linux-headers/3.0.85/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch46
-rw-r--r--package/linux-headers/3.3.8/linux-fix-umode_t.patch22
-rw-r--r--package/linux-headers/Config.in.host83
-rw-r--r--package/linux-headers/linux-headers.mk31
4 files changed, 182 insertions, 0 deletions
diff --git a/package/linux-headers/3.0.85/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch b/package/linux-headers/3.0.85/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch
new file mode 100644
index 000000000..8777b7163
--- /dev/null
+++ b/package/linux-headers/3.0.85/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch
@@ -0,0 +1,46 @@
+From f210735fe2f17a6225432ee3d1239bcf23a8659c Mon Sep 17 00:00:00 2001
+From: Markus Trippelsdorf <markus@trippelsdorf.de>
+Date: Fri, 24 Jun 2011 15:51:00 +0200
+Subject: [PATCH] headers_install: fix __packed in exported kernel headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+checkpatch.pl warns about using __attribute__((packed)) in kernel
+headers: "__packed is preferred over __attribute__((packed))". If one
+follows that advice it could cause problems in the exported header
+files, because the outside world doesn't know about this shortcut.
+
+For example busybox will fail to compile:
+ CC miscutils/ubi_attach_detach.o
+ In file included from miscutils/ubi_attach_detach.c:27:0:
+ /usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
+ /usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
+...
+
+Fix the problem by substituting __packed with __attribute__((packed)) in
+the header_install.pl script.
+
+Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
+CC: Joe Perches <joe@perches.com>
+Signed-off-by: Markus Trippelsdorf <markus@trippelsdorf.de>
+Signed-off-by: Michal Marek <mmarek@suse.cz>
+---
+ scripts/headers_install.pl | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl
+index efb3be1..48462be 100644
+--- a/scripts/headers_install.pl
++++ b/scripts/headers_install.pl
+@@ -35,6 +35,7 @@ foreach my $file (@files) {
+ $line =~ s/([\s(])__iomem\s/$1/g;
+ $line =~ s/\s__attribute_const__\s/ /g;
+ $line =~ s/\s__attribute_const__$//g;
++ $line =~ s/\b__packed\b/__attribute__((packed))/g;
+ $line =~ s/^#include <linux\/compiler.h>//;
+ $line =~ s/(^|\s)(inline)\b/$1__$2__/g;
+ $line =~ s/(^|\s)(asm)\b(\s|[(]|$)/$1__$2__$3/g;
+--
+1.7.5.4
+
diff --git a/package/linux-headers/3.3.8/linux-fix-umode_t.patch b/package/linux-headers/3.3.8/linux-fix-umode_t.patch
new file mode 100644
index 000000000..966366225
--- /dev/null
+++ b/package/linux-headers/3.3.8/linux-fix-umode_t.patch
@@ -0,0 +1,22 @@
+Fix a problem with the 3.3 kernel headers. Specifically, the umode_t type
+is defined within a __KERNEL__ preprocessor ifdef region, and so the type
+is not usable by non-kernel code. Visit the following URL for more details.
+
+* http://www.spinics.net/lists/linux-fsdevel/msg52638.html
+
+The commit that created the problem can be seen at the following URL.
+
+* http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commitdiff;h=0583fcc96bb117763c0fa74c123573c0112dec65
+
+diff -Nur a/include/linux/ext2_fs.h b/include/linux/ext2_fs.h
+--- a/include/linux/ext2_fs.h 2012-03-18 23:15:34.000000000 +0000
++++ b/include/linux/ext2_fs.h 2012-03-21 11:47:53.015548437 +0000
+@@ -209,7 +209,7 @@
+ #define EXT2_OTHER_FLMASK (EXT2_NODUMP_FL | EXT2_NOATIME_FL)
+
+ /* Mask out flags that are inappropriate for the given type of inode. */
+-static inline __u32 ext2_mask_flags(umode_t mode, __u32 flags)
++static inline __u32 ext2_mask_flags(unsigned short mode, __u32 flags)
+ {
+ if (S_ISDIR(mode))
+ return flags;
diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host
new file mode 100644
index 000000000..495552416
--- /dev/null
+++ b/package/linux-headers/Config.in.host
@@ -0,0 +1,83 @@
+config BR2_PACKAGE_HOST_LINUX_HEADERS
+ bool
+
+comment "Kernel Header Options"
+
+choice
+ prompt "Kernel Headers"
+ default BR2_KERNEL_HEADERS_3_9
+ 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.
+
+ For the snapshot, you have to provide the
+ linux-2.6.tar.bz2 tarball in your download dir.
+
+ config BR2_KERNEL_HEADERS_3_0
+ bool "Linux 3.0.x kernel headers"
+ depends on !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_1
+ bool "Linux 3.1.x kernel headers"
+ depends on BR2_DEPRECATED && !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_2
+ bool "Linux 3.2.x kernel headers"
+ depends on !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_3
+ bool "Linux 3.3.x kernel headers"
+ depends on BR2_DEPRECATED && !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_4
+ bool "Linux 3.4.x kernel headers"
+ depends on !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_5
+ bool "Linux 3.5.x kernel headers"
+ depends on BR2_DEPRECATED && !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_6
+ bool "Linux 3.6.x kernel headers"
+ depends on BR2_DEPRECATED && !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_7
+ bool "Linux 3.7.x kernel headers"
+ depends on BR2_DEPRECATED && !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_8
+ bool "Linux 3.8.x kernel headers"
+ depends on BR2_DEPRECATED && !BR2_arc
+
+ config BR2_KERNEL_HEADERS_3_9
+ bool "Linux 3.9.x kernel headers"
+
+ config BR2_KERNEL_HEADERS_VERSION
+ bool "Manually specified Linux version"
+
+ config BR2_KERNEL_HEADERS_SNAP
+ bool "Local Linux snapshot (linux-2.6.tar.bz2)"
+endchoice
+
+config BR2_DEFAULT_KERNEL_VERSION
+ string "linux version"
+ depends on BR2_KERNEL_HEADERS_VERSION
+ help
+ Specify the version you want to use.
+ E.G.: 3.6.10
+
+config BR2_DEFAULT_KERNEL_HEADERS
+ string
+ default "3.0.85" if BR2_KERNEL_HEADERS_3_0
+ default "3.1.10" if BR2_KERNEL_HEADERS_3_1
+ default "3.2.47" if BR2_KERNEL_HEADERS_3_2
+ default "3.3.8" if BR2_KERNEL_HEADERS_3_3
+ default "3.4.52" if BR2_KERNEL_HEADERS_3_4
+ default "3.5.7" if BR2_KERNEL_HEADERS_3_5
+ default "3.6.11" if BR2_KERNEL_HEADERS_3_6
+ default "3.7.10" if BR2_KERNEL_HEADERS_3_7
+ default "3.8.13" if BR2_KERNEL_HEADERS_3_8
+ default "3.9.9" if BR2_KERNEL_HEADERS_3_9
+ default "2.6" if BR2_KERNEL_HEADERS_SNAP
+ default $BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
diff --git a/package/linux-headers/linux-headers.mk b/package/linux-headers/linux-headers.mk
new file mode 100644
index 000000000..9d7a683bc
--- /dev/null
+++ b/package/linux-headers/linux-headers.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# linux-headers
+#
+################################################################################
+
+# This package is used to provide Linux kernel headers for the
+# internal toolchain backend.
+
+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/
+else
+LINUX_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v3.x/
+endif
+LINUX_HEADERS_SOURCE = linux-$(LINUX_HEADERS_VERSION).tar.bz2
+
+LINUX_HEADERS_INSTALL_STAGING = YES
+
+define LINUX_HEADERS_INSTALL_STAGING_CMDS
+ (cd $(@D); \
+ $(TARGET_MAKE_ENV) $(MAKE) \
+ ARCH=$(KERNEL_ARCH) \
+ HOSTCC="$(HOSTCC)" \
+ HOSTCFLAGS="$(HOSTCFLAGS)" \
+ HOSTCXX="$(HOSTCXX)" \
+ INSTALL_HDR_PATH=$(STAGING_DIR)/usr \
+ headers_install)
+endef
+
+$(eval $(generic-package))