summaryrefslogtreecommitdiff
path: root/toolchain/kernel-headers
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/kernel-headers')
-rw-r--r--toolchain/kernel-headers/Makefile24
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/aufs2.patch (renamed from toolchain/kernel-headers/patches/3.4.9/aufs2.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/cleankernel.patch (renamed from toolchain/kernel-headers/patches/3.4.9/cleankernel.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/etrax-header.patch (renamed from toolchain/kernel-headers/patches/3.4.9/etrax-header.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/linux-gcc-check.patch (renamed from toolchain/kernel-headers/patches/3.4.9/linux-gcc-check.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/microperl.patch (renamed from toolchain/kernel-headers/patches/3.4.9/microperl.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/mkpiggy.patch (renamed from toolchain/kernel-headers/patches/3.4.9/mkpiggy.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.13/relocs.patch (renamed from toolchain/kernel-headers/patches/3.4.9/relocs.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/aufs2.patch (renamed from toolchain/kernel-headers/patches/3.5.4/aufs2.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/cleankernel.patch (renamed from toolchain/kernel-headers/patches/3.5.4/cleankernel.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/etrax-header.patch (renamed from toolchain/kernel-headers/patches/3.5.4/etrax-header.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/linux-gcc-check.patch (renamed from toolchain/kernel-headers/patches/3.5.4/linux-gcc-check.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/microperl.patch (renamed from toolchain/kernel-headers/patches/3.5.4/microperl.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/mkpiggy.patch (renamed from toolchain/kernel-headers/patches/3.5.4/mkpiggy.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/relocs.patch (renamed from toolchain/kernel-headers/patches/3.5.4/relocs.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.5.6/sortext.patch (renamed from toolchain/kernel-headers/patches/3.5.4/sortext.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/aufs2.patch238
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/cleankernel.patch11
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/etrax-header.patch94
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/linux-gcc-check.patch18
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/microperl.patch24
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/mkpiggy.patch28
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/relocs.patch3131
-rw-r--r--toolchain/kernel-headers/patches/3.6.1/sortext.patch22
24 files changed, 3590 insertions, 0 deletions
diff --git a/toolchain/kernel-headers/Makefile b/toolchain/kernel-headers/Makefile
index 4346cb1a6..8b364d760 100644
--- a/toolchain/kernel-headers/Makefile
+++ b/toolchain/kernel-headers/Makefile
@@ -10,6 +10,30 @@ $(WRKBUILD)/.headers:
$(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \
INSTALL_HDR_PATH=$(STAGING_DIR)/usr \
headers_install
+ifeq ($(ADK_TARGET_WITH_MULTILIB),y)
+ifeq ($(ADK_LINUX_MIPS),y)
+ $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=mips V=1 \
+ INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)-n32/usr \
+ headers_install
+ $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=mips V=1 \
+ INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)-64/usr \
+ headers_install
+ $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=mips V=1 \
+ INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)-o32/usr \
+ headers_install
+endif
+ifeq ($(ADK_LINUX_X86_64),y)
+ $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=x86 V=1 \
+ INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)-32/usr \
+ headers_install
+ $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=x86 V=1 \
+ INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)-x32/usr \
+ headers_install
+ $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=x86 V=1 \
+ INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)-64/usr \
+ headers_install
+endif
+endif
$(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \
INSTALL_HDR_PATH=$(LINUX_HEADER_DIR) \
headers_install
diff --git a/toolchain/kernel-headers/patches/3.4.9/aufs2.patch b/toolchain/kernel-headers/patches/3.4.13/aufs2.patch
index d40c9a3fe..d40c9a3fe 100644
--- a/toolchain/kernel-headers/patches/3.4.9/aufs2.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/aufs2.patch
diff --git a/toolchain/kernel-headers/patches/3.4.9/cleankernel.patch b/toolchain/kernel-headers/patches/3.4.13/cleankernel.patch
index f8d5448ee..f8d5448ee 100644
--- a/toolchain/kernel-headers/patches/3.4.9/cleankernel.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/cleankernel.patch
diff --git a/toolchain/kernel-headers/patches/3.4.9/etrax-header.patch b/toolchain/kernel-headers/patches/3.4.13/etrax-header.patch
index 559c0f322..559c0f322 100644
--- a/toolchain/kernel-headers/patches/3.4.9/etrax-header.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/etrax-header.patch
diff --git a/toolchain/kernel-headers/patches/3.4.9/linux-gcc-check.patch b/toolchain/kernel-headers/patches/3.4.13/linux-gcc-check.patch
index 7cc381845..7cc381845 100644
--- a/toolchain/kernel-headers/patches/3.4.9/linux-gcc-check.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/linux-gcc-check.patch
diff --git a/toolchain/kernel-headers/patches/3.4.9/microperl.patch b/toolchain/kernel-headers/patches/3.4.13/microperl.patch
index 44c39f6e8..44c39f6e8 100644
--- a/toolchain/kernel-headers/patches/3.4.9/microperl.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/microperl.patch
diff --git a/toolchain/kernel-headers/patches/3.4.9/mkpiggy.patch b/toolchain/kernel-headers/patches/3.4.13/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/toolchain/kernel-headers/patches/3.4.9/mkpiggy.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/mkpiggy.patch
diff --git a/toolchain/kernel-headers/patches/3.4.9/relocs.patch b/toolchain/kernel-headers/patches/3.4.13/relocs.patch
index 43c5bb580..43c5bb580 100644
--- a/toolchain/kernel-headers/patches/3.4.9/relocs.patch
+++ b/toolchain/kernel-headers/patches/3.4.13/relocs.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/aufs2.patch b/toolchain/kernel-headers/patches/3.5.6/aufs2.patch
index d40c9a3fe..d40c9a3fe 100644
--- a/toolchain/kernel-headers/patches/3.5.4/aufs2.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/aufs2.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/cleankernel.patch b/toolchain/kernel-headers/patches/3.5.6/cleankernel.patch
index f8d5448ee..f8d5448ee 100644
--- a/toolchain/kernel-headers/patches/3.5.4/cleankernel.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/cleankernel.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/etrax-header.patch b/toolchain/kernel-headers/patches/3.5.6/etrax-header.patch
index 03d19a9ab..03d19a9ab 100644
--- a/toolchain/kernel-headers/patches/3.5.4/etrax-header.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/etrax-header.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/linux-gcc-check.patch b/toolchain/kernel-headers/patches/3.5.6/linux-gcc-check.patch
index 7cc381845..7cc381845 100644
--- a/toolchain/kernel-headers/patches/3.5.4/linux-gcc-check.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/linux-gcc-check.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/microperl.patch b/toolchain/kernel-headers/patches/3.5.6/microperl.patch
index 44c39f6e8..44c39f6e8 100644
--- a/toolchain/kernel-headers/patches/3.5.4/microperl.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/microperl.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/mkpiggy.patch b/toolchain/kernel-headers/patches/3.5.6/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/toolchain/kernel-headers/patches/3.5.4/mkpiggy.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/mkpiggy.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/relocs.patch b/toolchain/kernel-headers/patches/3.5.6/relocs.patch
index 43c5bb580..43c5bb580 100644
--- a/toolchain/kernel-headers/patches/3.5.4/relocs.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/relocs.patch
diff --git a/toolchain/kernel-headers/patches/3.5.4/sortext.patch b/toolchain/kernel-headers/patches/3.5.6/sortext.patch
index d82b76a2d..d82b76a2d 100644
--- a/toolchain/kernel-headers/patches/3.5.4/sortext.patch
+++ b/toolchain/kernel-headers/patches/3.5.6/sortext.patch
diff --git a/toolchain/kernel-headers/patches/3.6.1/aufs2.patch b/toolchain/kernel-headers/patches/3.6.1/aufs2.patch
new file mode 100644
index 000000000..d40c9a3fe
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/aufs2.patch
@@ -0,0 +1,238 @@
+diff -Nur linux-3.1.4.orig/include/linux/Kbuild linux-3.1.4/include/linux/Kbuild
+--- linux-3.1.4.orig/include/linux/Kbuild 2011-11-28 23:48:14.000000000 +0100
++++ linux-3.1.4/include/linux/Kbuild 2011-12-01 12:44:17.000000000 +0100
+@@ -65,6 +65,7 @@
+ header-y += atmsap.h
+ header-y += atmsvc.h
+ header-y += audit.h
++header-y += aufs_type.h
+ header-y += auto_fs.h
+ header-y += auto_fs4.h
+ header-y += auxvec.h
+diff -Nur linux-3.1.4.orig/include/linux/aufs_type.h linux-3.1.4/include/linux/aufs_type.h
+--- linux-3.1.4.orig/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.1.4/include/linux/aufs_type.h 2011-12-01 12:44:17.000000000 +0100
+@@ -0,0 +1,197 @@
++/*
++ * Copyright (C) 2005-2011 Junjiro R. Okajima
++ *
++ * This program, aufs is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++#ifndef __AUFS_TYPE_H__
++#define __AUFS_TYPE_H__
++
++#include <linux/ioctl.h>
++#include <linux/kernel.h>
++#include <linux/limits.h>
++#include <linux/types.h>
++
++#define AUFS_VERSION "2.1-standalone.tree-36-20110110"
++
++/* todo? move this to linux-2.6.19/include/magic.h */
++#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
++
++/* ---------------------------------------------------------------------- */
++
++#ifdef CONFIG_AUFS_BRANCH_MAX_127
++typedef __s8 aufs_bindex_t;
++#define AUFS_BRANCH_MAX 127
++#else
++typedef __s16 aufs_bindex_t;
++#ifdef CONFIG_AUFS_BRANCH_MAX_511
++#define AUFS_BRANCH_MAX 511
++#elif defined(CONFIG_AUFS_BRANCH_MAX_1023)
++#define AUFS_BRANCH_MAX 1023
++#elif defined(CONFIG_AUFS_BRANCH_MAX_32767)
++#define AUFS_BRANCH_MAX 32767
++#endif
++#endif
++
++#ifdef __KERNEL__
++#ifndef AUFS_BRANCH_MAX
++#error unknown CONFIG_AUFS_BRANCH_MAX value
++#endif
++#endif /* __KERNEL__ */
++
++/* ---------------------------------------------------------------------- */
++
++#define AUFS_NAME "aufs"
++#define AUFS_FSTYPE AUFS_NAME
++
++#define AUFS_ROOT_INO 2
++#define AUFS_FIRST_INO 11
++
++#define AUFS_WH_PFX ".wh."
++#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1)
++#define AUFS_WH_TMP_LEN 4
++/* a limit for rmdir/rename a dir */
++#define AUFS_MAX_NAMELEN (NAME_MAX \
++ - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\
++ - 1 /* dot */\
++ - AUFS_WH_TMP_LEN) /* hex */
++#define AUFS_XINO_FNAME "." AUFS_NAME ".xino"
++#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME
++#define AUFS_XINO_TRUNC_INIT 64 /* blocks */
++#define AUFS_XINO_TRUNC_STEP 4 /* blocks */
++#define AUFS_DIRWH_DEF 3
++#define AUFS_RDCACHE_DEF 10 /* seconds */
++#define AUFS_RDCACHE_MAX 3600 /* seconds */
++#define AUFS_RDBLK_DEF 512 /* bytes */
++#define AUFS_RDHASH_DEF 32
++#define AUFS_WKQ_NAME AUFS_NAME "d"
++#define AUFS_WKQ_PRE_NAME AUFS_WKQ_NAME "_pre"
++#define AUFS_MFS_DEF_SEC 30 /* seconds */
++#define AUFS_MFS_MAX_SEC 3600 /* seconds */
++#define AUFS_PLINK_WARN 100 /* number of plinks */
++
++/* pseudo-link maintenace under /proc */
++#define AUFS_PLINK_MAINT_NAME "plink_maint"
++#define AUFS_PLINK_MAINT_DIR "fs/" AUFS_NAME
++#define AUFS_PLINK_MAINT_PATH AUFS_PLINK_MAINT_DIR "/" AUFS_PLINK_MAINT_NAME
++
++#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */
++#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME
++
++#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME
++#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk"
++#define AUFS_ORPHDIR_NAME AUFS_WH_PFX "orph"
++
++/* doubly whiteouted */
++#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME
++#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME
++#define AUFS_WH_ORPHDIR AUFS_WH_PFX AUFS_ORPHDIR_NAME
++
++/* branch permission */
++#define AUFS_BRPERM_RW "rw"
++#define AUFS_BRPERM_RO "ro"
++#define AUFS_BRPERM_RR "rr"
++#define AUFS_BRPERM_WH "wh"
++#define AUFS_BRPERM_NLWH "nolwh"
++#define AUFS_BRPERM_ROWH AUFS_BRPERM_RO "+" AUFS_BRPERM_WH
++#define AUFS_BRPERM_RRWH AUFS_BRPERM_RR "+" AUFS_BRPERM_WH
++#define AUFS_BRPERM_RWNLWH AUFS_BRPERM_RW "+" AUFS_BRPERM_NLWH
++
++/* ---------------------------------------------------------------------- */
++
++/* ioctl */
++enum {
++ /* readdir in userspace */
++ AuCtl_RDU,
++ AuCtl_RDU_INO,
++
++ /* pathconf wrapper */
++ AuCtl_WBR_FD
++};
++
++/* borrowed from linux/include/linux/kernel.h */
++#ifndef ALIGN
++#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a)-1)
++#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask))
++#endif
++
++/* borrowed from linux/include/linux/compiler-gcc3.h */
++#ifndef __aligned
++#define __aligned(x) __attribute__((aligned(x)))
++#define __packed __attribute__((packed))
++#endif
++
++struct au_rdu_cookie {
++ __u64 h_pos;
++ __s16 bindex;
++ __u8 flags;
++ __u8 pad;
++ __u32 generation;
++} __aligned(8);
++
++struct au_rdu_ent {
++ __u64 ino;
++ __s16 bindex;
++ __u8 type;
++ __u8 nlen;
++ __u8 wh;
++ char name[0];
++} __aligned(8);
++
++static inline int au_rdu_len(int nlen)
++{
++ /* include the terminating NULL */
++ return ALIGN(sizeof(struct au_rdu_ent) + nlen + 1,
++ sizeof(__u64));
++}
++
++union au_rdu_ent_ul {
++ struct au_rdu_ent __user *e;
++ __u64 ul;
++};
++
++enum {
++ AufsCtlRduV_SZ,
++ AufsCtlRduV_End
++};
++
++struct aufs_rdu {
++ /* input */
++ union {
++ __u64 sz; /* AuCtl_RDU */
++ __u64 nent; /* AuCtl_RDU_INO */
++ };
++ union au_rdu_ent_ul ent;
++ __u16 verify[AufsCtlRduV_End];
++
++ /* input/output */
++ __u32 blk;
++
++ /* output */
++ union au_rdu_ent_ul tail;
++ /* number of entries which were added in a single call */
++ __u64 rent;
++ __u8 full;
++ __u8 shwh;
++
++ struct au_rdu_cookie cookie;
++} __aligned(8);
++
++#define AuCtlType 'A'
++#define AUFS_CTL_RDU _IOWR(AuCtlType, AuCtl_RDU, struct aufs_rdu)
++#define AUFS_CTL_RDU_INO _IOWR(AuCtlType, AuCtl_RDU_INO, struct aufs_rdu)
++#define AUFS_CTL_WBR_FD _IO(AuCtlType, AuCtl_WBR_FD)
++
++#endif /* __AUFS_TYPE_H__ */
+diff -Nur linux-3.1.4.orig/include/linux/namei.h linux-3.1.4/include/linux/namei.h
+--- linux-3.1.4.orig/include/linux/namei.h 2011-11-28 23:48:14.000000000 +0100
++++ linux-3.1.4/include/linux/namei.h 2011-12-01 12:44:17.000000000 +0100
+@@ -85,6 +85,9 @@
+ extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
+ int (*open)(struct inode *, struct file *));
+
++extern struct dentry *lookup_hash(struct nameidata *nd);
++extern int __lookup_one_len(const char *name, struct qstr *this,
++ struct dentry *base, int len);
+ extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
+
+ extern int follow_down_one(struct path *);
+diff -Nur linux-3.1.4.orig/include/linux/splice.h linux-3.1.4/include/linux/splice.h
+--- linux-3.1.4.orig/include/linux/splice.h 2011-11-28 23:48:14.000000000 +0100
++++ linux-3.1.4/include/linux/splice.h 2011-12-01 12:45:51.000000000 +0100
+@@ -91,4 +91,9 @@
+ extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
+
+ extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
++extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
++ loff_t *ppos, size_t len, unsigned int flags);
++extern long do_splice_to(struct file *in, loff_t *ppos,
++ struct pipe_inode_info *pipe, size_t len,
++ unsigned int flags);
+ #endif
diff --git a/toolchain/kernel-headers/patches/3.6.1/cleankernel.patch b/toolchain/kernel-headers/patches/3.6.1/cleankernel.patch
new file mode 100644
index 000000000..f8d5448ee
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/cleankernel.patch
@@ -0,0 +1,11 @@
+diff -Nur linux-2.6.29.1.orig/scripts/Makefile.headersinst linux-2.6.29.1/scripts/Makefile.headersinst
+--- linux-2.6.29.1.orig/scripts/Makefile.headersinst 2009-04-02 22:55:27.000000000 +0200
++++ linux-2.6.29.1/scripts/Makefile.headersinst 2009-04-17 20:56:09.143476927 +0200
+@@ -65,7 +65,6 @@
+
+ targets += $(install-file)
+ $(install-file): scripts/headers_install.pl $(input-files) FORCE
+- $(if $(unwanted),$(call cmd,remove),)
+ $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
+ $(call if_changed,install)
+
diff --git a/toolchain/kernel-headers/patches/3.6.1/etrax-header.patch b/toolchain/kernel-headers/patches/3.6.1/etrax-header.patch
new file mode 100644
index 000000000..03d19a9ab
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/etrax-header.patch
@@ -0,0 +1,94 @@
+diff -Nur linux-3.5.orig//arch/cris/include/arch-v10/arch/Kbuild linux-3.5/arch/cris/include/arch-v10/arch/Kbuild
+--- linux-3.5.orig//arch/cris/include/arch-v10/arch/Kbuild 2012-07-21 22:58:29.000000000 +0200
++++ linux-3.5/arch/cris/include/arch-v10/arch/Kbuild 2012-07-27 14:01:25.000000000 +0200
+@@ -1,4 +1,10 @@
++header-y += dma.h
++header-y += io_interface_mux.h
+ header-y += user.h
+ header-y += svinto.h
+ header-y += sv_addr_ag.h
+ header-y += sv_addr.agh
++header-y += elf.h
++header-y += page.h
++header-y += ptrace.h
++header-y += system.h
+diff -Nur linux-3.5.orig//arch/cris/include/arch-v32/arch/Kbuild linux-3.5/arch/cris/include/arch-v32/arch/Kbuild
+--- linux-3.5.orig//arch/cris/include/arch-v32/arch/Kbuild 2012-07-21 22:58:29.000000000 +0200
++++ linux-3.5/arch/cris/include/arch-v32/arch/Kbuild 2012-07-27 14:01:25.000000000 +0200
+@@ -1,2 +1,7 @@
+ header-y += user.h
+ header-y += cryptocop.h
++header-y += elf.h
++header-y += page.h
++header-y += ptrace.h
++header-y += system.h
++
+diff -Nur linux-3.5.orig//arch/cris/include/asm/Kbuild linux-3.5/arch/cris/include/asm/Kbuild
+--- linux-3.5.orig//arch/cris/include/asm/Kbuild 2012-07-21 22:58:29.000000000 +0200
++++ linux-3.5/arch/cris/include/asm/Kbuild 2012-07-27 14:02:20.000000000 +0200
+@@ -1,9 +1,12 @@
+ include include/asm-generic/Kbuild.asm
+
+-header-y += arch-v10/
+-header-y += arch-v32/
++header-y += ../arch-v10/arch/
++header-y += ../arch-v32/arch/
+
++header-y += elf.h
+ header-y += ethernet.h
+ header-y += etraxgpio.h
+ header-y += rs485.h
+ header-y += sync_serial.h
++header-y += page.h
++header-y += user.h
+diff -Nur linux-3.5.orig//arch/cris/include/asm/posix_types.h linux-3.5/arch/cris/include/asm/posix_types.h
+--- linux-3.5.orig//arch/cris/include/asm/posix_types.h 2012-07-21 22:58:29.000000000 +0200
++++ linux-3.5/arch/cris/include/asm/posix_types.h 2012-07-27 14:01:25.000000000 +0200
+@@ -6,6 +6,7 @@
+ #ifndef __ARCH_CRIS_POSIX_TYPES_H
+ #define __ARCH_CRIS_POSIX_TYPES_H
+
++
+ /*
+ * This file is generally used by user-level software, so you need to
+ * be a little careful about namespace pollution etc. Also, we cannot
+@@ -32,4 +33,6 @@
+
+ #include <asm-generic/posix_types.h>
+
++#include <asm-generic/posix_types.h>
++
+ #endif /* __ARCH_CRIS_POSIX_TYPES_H */
+diff -Nur linux-3.5.orig//include/asm-generic/Kbuild linux-3.5/include/asm-generic/Kbuild
+--- linux-3.5.orig//include/asm-generic/Kbuild 2012-07-21 22:58:29.000000000 +0200
++++ linux-3.5/include/asm-generic/Kbuild 2012-07-27 14:03:16.000000000 +0200
+@@ -3,15 +3,18 @@
+ header-y += errno-base.h
+ header-y += errno.h
+ header-y += fcntl.h
++header-y += getorder.h
+ header-y += int-l64.h
+ header-y += int-ll64.h
+ header-y += ioctl.h
+ header-y += ioctls.h
+ header-y += ipcbuf.h
+ header-y += kvm_para.h
++header-y += memory_model.h
+ header-y += mman-common.h
+ header-y += mman.h
+ header-y += msgbuf.h
++header-y += page.h
+ header-y += param.h
+ header-y += poll.h
+ header-y += posix_types.h
+diff -Nur linux-3.5.orig//include/linux/Kbuild linux-3.5/include/linux/Kbuild
+--- linux-3.5.orig//include/linux/Kbuild 2012-07-21 22:58:29.000000000 +0200
++++ linux-3.5/include/linux/Kbuild 2012-07-27 14:01:25.000000000 +0200
+@@ -382,6 +382,7 @@
+ header-y += un.h
+ header-y += unistd.h
+ header-y += usbdevice_fs.h
++header-y += user.h
+ header-y += utime.h
+ header-y += utsname.h
+ header-y += uuid.h
diff --git a/toolchain/kernel-headers/patches/3.6.1/linux-gcc-check.patch b/toolchain/kernel-headers/patches/3.6.1/linux-gcc-check.patch
new file mode 100644
index 000000000..7cc381845
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/linux-gcc-check.patch
@@ -0,0 +1,18 @@
+diff -Nur linux-2.6.32.orig/arch/mips/include/asm/sgidefs.h linux-2.6.32/arch/mips/include/asm/sgidefs.h
+--- linux-2.6.32.orig/arch/mips/include/asm/sgidefs.h 2009-12-03 04:51:21.000000000 +0100
++++ linux-2.6.32/arch/mips/include/asm/sgidefs.h 2010-02-14 11:49:21.000000000 +0100
+@@ -11,14 +11,6 @@
+ #define __ASM_SGIDEFS_H
+
+ /*
+- * Using a Linux compiler for building Linux seems logic but not to
+- * everybody.
+- */
+-#ifndef __linux__
+-#error Use a Linux compiler or give up.
+-#endif
+-
+-/*
+ * Definitions for the ISA levels
+ *
+ * With the introduction of MIPS32 / MIPS64 instruction sets definitions
diff --git a/toolchain/kernel-headers/patches/3.6.1/microperl.patch b/toolchain/kernel-headers/patches/3.6.1/microperl.patch
new file mode 100644
index 000000000..44c39f6e8
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/microperl.patch
@@ -0,0 +1,24 @@
+diff -Nur linux-3.4.2.orig/scripts/headers_check.pl linux-3.4.2/scripts/headers_check.pl
+--- linux-3.4.2.orig/scripts/headers_check.pl 2012-06-09 17:36:33.000000000 +0200
++++ linux-3.4.2/scripts/headers_check.pl 2012-06-15 12:45:43.000000000 +0200
+@@ -18,7 +18,7 @@
+ #
+ # 3) Check for leaked CONFIG_ symbols
+
+-use strict;
++#use strict;
+ use File::Basename;
+
+ my ($dir, $arch, @files) = @ARGV;
+diff -Nur linux-3.4.2.orig/scripts/headers_install.pl linux-3.4.2/scripts/headers_install.pl
+--- linux-3.4.2.orig/scripts/headers_install.pl 2012-06-09 17:36:33.000000000 +0200
++++ linux-3.4.2/scripts/headers_install.pl 2012-06-15 12:45:11.000000000 +0200
+@@ -16,7 +16,7 @@
+ # 2) Drop include of compiler.h
+ # 3) Drop all sections defined out by __KERNEL__ (using unifdef)
+
+-use strict;
++#use strict;
+
+ my ($readdir, $installdir, $arch, @files) = @ARGV;
+
diff --git a/toolchain/kernel-headers/patches/3.6.1/mkpiggy.patch b/toolchain/kernel-headers/patches/3.6.1/mkpiggy.patch
new file mode 100644
index 000000000..d4e815cd2
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/mkpiggy.patch
@@ -0,0 +1,28 @@
+diff -Nur linux-3.4.4.orig/arch/x86/boot/compressed/mkpiggy.c linux-3.4.4/arch/x86/boot/compressed/mkpiggy.c
+--- linux-3.4.4.orig/arch/x86/boot/compressed/mkpiggy.c 2012-06-22 20:37:50.000000000 +0200
++++ linux-3.4.4/arch/x86/boot/compressed/mkpiggy.c 2012-07-03 09:48:02.000000000 +0200
+@@ -29,7 +29,14 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <inttypes.h>
+-#include <tools/le_byteshift.h>
++
++static uint32_t getle32(const void *p)
++{
++ const uint8_t *cp = p;
++
++ return (uint32_t)cp[0] + ((uint32_t)cp[1] << 8) +
++ ((uint32_t)cp[2] << 16) + ((uint32_t)cp[3] << 24);
++}
+
+ int main(int argc, char *argv[])
+ {
+@@ -62,7 +69,7 @@
+ }
+
+ ilen = ftell(f);
+- olen = get_unaligned_le32(&olen);
++ olen = getle32(&olen);
+ fclose(f);
+
+ /*
diff --git a/toolchain/kernel-headers/patches/3.6.1/relocs.patch b/toolchain/kernel-headers/patches/3.6.1/relocs.patch
new file mode 100644
index 000000000..43c5bb580
--- /dev/null
+++ b/toolchain/kernel-headers/patches/3.6.1/relocs.patch
@@ -0,0 +1,3131 @@
+diff -Nur linux-3.4.4.orig/arch/x86/tools/relocs.c linux-3.4.4/arch/x86/tools/relocs.c
+--- linux-3.4.4.orig/arch/x86/tools/relocs.c 2012-06-22 20:37:50.000000000 +0200
++++ linux-3.4.4/arch/x86/tools/relocs.c 2012-07-03 09:19:18.000000000 +0200
+@@ -5,12 +5,3123 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
+-#include <elf.h>
+-#include <byteswap.h>
++//#include <elf.h>
++//#include <byteswap.h>
+ #define USE_BSD
+-#include <endian.h>
++//#include <endian.h>
+ #include <regex.h>
+-#include <tools/le_byteshift.h>
++//#include <tools/le_byteshift.h>
++
++static inline void __put_unaligned_le16(int val, int *p)
++{
++ *p++ = val;
++ *p++ = val >> 8;
++}
++
++static inline void __put_unaligned_le32(int val, int *p)
++{
++ __put_unaligned_le16(val >> 16, p + 2);
++ __put_unaligned_le16(val, p);
++}
++
++static inline void __put_unaligned_le64(int val, int *p)
++{
++ __put_unaligned_le32(val >> 32, p + 4);
++ __put_unaligned_le32(val, p);
++}
++
++static inline void put_unaligned_le16(int val, void *p)
++{
++ __put_unaligned_le16(val, p);
++}
++
++static inline void put_unaligned_le32(int val, void *p)
++{
++ __put_unaligned_le32(val, p);
++}
++
++static inline void put_unaligned_le64(int val, void *p)
++{
++ __put_unaligned_le64(val, p);
++}
++
++/* Type for a 16-bit quantity. */
++typedef uint16_t Elf32_Half;
++typedef uint16_t Elf64_Half;
++
++/* Types for signed and unsigned 32-bit quantities. */
++typedef uint32_t Elf32_Word;
++typedef int32_t Elf32_Sword;
++typedef uint32_t Elf64_Word;
++typedef int32_t Elf64_Sword;
++
++/* Types for signed and unsigned 64-bit quantities. */
++typedef uint64_t Elf32_Xword;
++typedef int64_t Elf32_Sxword;
++typedef uint64_t Elf64_Xword;
++typedef int64_t Elf64_Sxword;
++
++/* Type of addresses. */
++typedef uint32_t Elf32_Addr;
++typedef uint64_t Elf64_Addr;
++
++/* Type of file offsets. */
++typedef uint32_t Elf32_Off;
++typedef uint64_t Elf64_Off;
++
++/* Type for section indices, which are 16-bit quantities. */
++typedef uint16_t Elf32_Section;
++typedef uint16_t Elf64_Section;
++
++/* Type for version symbol information. */
++typedef Elf32_Half Elf32_Versym;
++typedef Elf64_Half Elf64_Versym;
++
++
++/* The ELF file header. This appears at the start of every ELF file. */
++
++#define EI_NIDENT (16)
++
++typedef struct
++{
++ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
++ Elf32_Half e_type; /* Object file type */
++ Elf32_Half e_machine; /* Architecture */
++ Elf32_Word e_version; /* Object file version */
++ Elf32_Addr e_entry; /* Entry point virtual address */
++ Elf32_Off e_phoff; /* Program header table file offset */
++ Elf32_Off e_shoff; /* Section header table file offset */
++ Elf32_Word e_flags; /* Processor-specific flags */
++ Elf32_Half e_ehsize; /* ELF header size in bytes */
++ Elf32_Half e_phentsize; /* Program header table entry size */
++ Elf32_Half e_phnum; /* Program header table entry count */
++ Elf32_Half e_shentsize; /* Section header table entry size */
++ Elf32_Half e_shnum; /* Section header table entry count */
++ Elf32_Half e_shstrndx; /* Section header string table index */
++} Elf32_Ehdr;
++
++typedef struct
++{
++ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
++ Elf64_Half e_type; /* Object file type */
++ Elf64_Half e_machine; /* Architecture */
++ Elf64_Word e_version; /* Object file version */
++ Elf64_Addr e_entry; /* Entry point virtual address */
++ Elf64_Off e_phoff; /* Program header table file offset */
++ Elf64_Off e_shoff; /* Section header table file offset */
++ Elf64_Word e_flags; /* Processor-specific flags */
++ Elf64_Half e_ehsize; /* ELF header size in bytes */
++ Elf64_Half e_phentsize; /* Program header table entry size */
++ Elf64_Half e_phnum; /* Program header table entry count */
++ Elf64_Half e_shentsize; /* Section header table entry size */
++ Elf64_Half e_shnum; /* Section header table entry count */
++ Elf64_Half e_shstrndx; /* Section header string table index */
++} Elf64_Ehdr;
++
++/* Fields in the e_ident array. The EI_* macros are indices into the
++ array. The macros under each EI_* macro are the values the byte
++ may have. */
++
++#define EI_MAG0 0 /* File identification byte 0 index */
++#define ELFMAG0 0x7f /* Magic number byte 0 */
++
++#define EI_MAG1 1 /* File identification byte 1 index */
++#define ELFMAG1 'E' /* Magic number byte 1 */
++
++#define EI_MAG2 2 /* File identification byte 2 index */
++#define ELFMAG2 'L' /* Magic number byte 2 */
++
++#define EI_MAG3 3 /* File identification byte 3 index */
++#define ELFMAG3 'F' /* Magic number byte 3 */
++
++/* Conglomeration of the identification bytes, for easy testing as a word. */
++#define ELFMAG "\177ELF"
++#define SELFMAG 4
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++# define ELFMAG_U32 ((uint32_t)(ELFMAG0 + 0x100 * (ELFMAG1 + (0x100 * (ELFMAG2 + 0x100 * ELFMAG3)))))
++#elif __BYTE_ORDER == __BIG_ENDIAN
++# define ELFMAG_U32 ((uint32_t)((((ELFMAG0 * 0x100) + ELFMAG1) * 0x100 + ELFMAG2) * 0x100 + ELFMAG3))
++#endif
++
++#define EI_CLASS 4 /* File class byte index */
++#define ELFCLASSNONE 0 /* Invalid class */
++#define ELFCLASS32 1 /* 32-bit objects */