summaryrefslogtreecommitdiff
path: root/recipes/linux-libc-headers
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux-libc-headers')
-rw-r--r--recipes/linux-libc-headers/files/keyboard.patch78
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/3477-1.patch43
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/asm-arch-irqs.patch19
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netdevice.patch11
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netfilter_ipv4.patch31
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-rtc.patch11
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-videodev2.patch45
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-procinfo-hwcap.patch31
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-unistd-syscall.patch190
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/linux-err.patch23
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.18/arm-syscall-define.patch22
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.20/procinfo.h24
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.22/procinfo.h24
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.23/procinfo.h24
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.25/fix-kernel-conditionalize-a.out.h.patch15
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.25/netfilter-include-types_h-in-userspace.patch88
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.25/procinfo.h24
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.25/reinstate-a.out.h.patch14
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.7.0/sh-missing.patch72
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers-2.6.8.1/mips-asm-atomic-system.diff11
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers.inc10
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.11.1.bb58
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.15.99.bb72
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.18+2.6.19-rc1.bb57
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.18.bb77
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.20.bb66
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.22.bb66
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.23.bb66
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb69
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.7.0.bb47
-rw-r--r--recipes/linux-libc-headers/linux-libc-headers_2.6.8.1.bb54
31 files changed, 1442 insertions, 0 deletions
diff --git a/recipes/linux-libc-headers/files/keyboard.patch b/recipes/linux-libc-headers/files/keyboard.patch
new file mode 100644
index 0000000000..7df00418b1
--- /dev/null
+++ b/recipes/linux-libc-headers/files/keyboard.patch
@@ -0,0 +1,78 @@
+--- kernel/include/linux/keyboard.h 2004-01-17 23:04:30.000000000 +0000
++++ kernel/include/linux/keyboard.h 2004-08-30 12:49:41.000000000 +0100
+@@ -37,6 +44,8 @@
+ #define KT_ASCII 9
+ #define KT_LOCK 10
+ #define KT_SLOCK 12
++#define KT_X 13 /* A few useful symbols from the base X Keysym set, that go with... */
++#define KT_XF 14 /* The XFree86 Internet multimedia and PDA keyboard symbols */
+
+ #define K(t,v) (((t)<<8)|(v))
+ #define KTYP(x) ((x) >> 8)
+@@ -421,4 +430,66 @@
+ #define NR_LOCK 8
+
+ #define MAX_DIACR 256
++
++/*
++ * modifications to this section of this list should be coordinated with
++ * the X Window System keysym list; life is much easier that way
++ *
++ */
++
++/* These don't correspond identically. */
++#define K_XMENU K(KT_X, 0x1)
++#define K_XTELEPHONE K(KT_X, 0x2)
++
++/*
++ * XFree86 vendor specific keysyms.
++ *
++ * These map to XFree86 X keysym range is 0x1008FF01 - 0x1008FFFF;
++ * for simplicity's sake, we'll define a simple identity mapping for these.
++ *
++ * Please coordinate changes here with XFree86.org, so this simple
++ * identity mapping can be maintained (and old code "just works").
++ *
++ * Keys found on some "Internet" keyboards.
++ */
++#define K_XFSTANDBY K(KT_XF,0x10)
++#define K_XFAUDIOLOWERVOLUME K(KT_XF,0x11)
++#define K_XFAUDIOMUTE K(KT_XF,0x12)
++#define K_XFAUDIORAISEVOLUME K(KT_XF,0x13)
++#define K_XFAUDIOPLAY K(KT_XF,0x14)
++#define K_XFAUDIOSTOP K(KT_XF,0x15)
++#define K_XFAUDIOPREV K(KT_XF,0x16)
++#define K_XFAUDIONEXT K(KT_XF,0x17)
++#define K_XFHOMEPAGE K(KT_XF,0x18)
++#define K_XFMAIL K(KT_XF,0x19)
++#define K_XFSTART K(KT_XF,0x1A)
++#define K_XFSEARCH K(KT_XF,0x1B)
++#define K_XFAUDIORECORD K(KT_XF,0x1C)
++
++/* These are sometimes found on PDA's (e.g. Palm, PocketPC or elsewhere) */
++#define K_XFCALCULATOR K(KT_XF,0x1D)
++#define K_XFMEMO K(KT_XF,0x1E)
++#define K_XFTODOLIST K(KT_XF,0x1F)
++#define K_XFCALENDAR K(KT_XF,0x20)
++#define K_XFPOWERDOWN K(KT_XF,0x21)
++#define K_XFCONTRASTADJUST K(KT_XF,0x22)
++#define K_XFROCKERUP K(KT_XF,0x23)
++#define K_XFROCKERDOWN K(KT_XF,0x24)
++#define K_XFROCKERENTER K(KT_XF,0x25)
++
++/* Some more "Internet" keyboard symbols */
++#define K_XFBACK K(KT_XF,0x26)
++#define K_XFFORWARD K(KT_XF,0x27)
++#define K_XFSTOP K(KT_XF,0x28)
++#define K_XFREFRESH K(KT_XF,0x29)
++
++/* Some more ... */
++#define K_XFFAVORITES K(KT_XF,0x30)
++#define K_XFAUDIOPAUSE K(KT_XF,0x31)
++#define K_XFAUDIOMEDIA K(KT_XF,0x32)
++#define K_XFMYCOMPUTER K(KT_XF,0x33)
++#define K_XFVENDORHOME K(KT_XF,0x34)
++#define K_XFLIGHTBULB K(KT_XF,0x35)
++#define K_XFSHOP K(KT_XF,0x36)
++
+ #endif
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/3477-1.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/3477-1.patch
new file mode 100644
index 0000000000..1b207b3cd9
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/3477-1.patch
@@ -0,0 +1,43 @@
+From: Nicolas Pitre <nico@cam.org>
+Date: Sat, 15 Apr 2006 15:10:43 +0000 (+0100)
+Subject: [ARM] 3477/1: ARM EABI: undefine removed syscalls
+X-Git-Url: http://git.infradead.org/?p=mtd-2.6.git;a=commitdiff;h=463b158aab247b600e4e93614b7b8f42a66331c9
+
+[ARM] 3477/1: ARM EABI: undefine removed syscalls
+
+Patch from Nicolas Pitre
+
+Avoid confusion for libraries assuming that a given syscall is available
+when corresponding symbol is defined.
+
+Signed-off-by: Nicolas Pitre <nico@cam.org>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+---
+
+--- a/include/asm-arm/unistd.h
++++ b/include/asm-arm/unistd.h
+@@ -360,6 +360,24 @@
+ #define __ARM_NR_usr32 (__ARM_NR_BASE+4)
+ #define __ARM_NR_set_tls (__ARM_NR_BASE+5)
+
++/*
++ * The following syscalls are obsolete and no longer available for EABI.
++ */
++#if defined(__ARM_EABI__)
++#undef __NR_time
++#undef __NR_umount
++#undef __NR_stime
++#undef __NR_alarm
++#undef __NR_utime
++#undef __NR_getrlimit
++#undef __NR_select
++#undef __NR_readdir
++#undef __NR_mmap
++#undef __NR_socketcall
++#undef __NR_syscall
++#undef __NR_ipc
++#endif
++
+ #define __sys2(x) #x
+ #define __sys1(x) __sys2(x)
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/asm-arch-irqs.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/asm-arch-irqs.patch
new file mode 100644
index 0000000000..4785275db4
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/asm-arch-irqs.patch
@@ -0,0 +1,19 @@
+--- linux-libc-headers-2.6.15.99/include/asm-arm/arch-ebsa285/irqs.h.orig 2006-03-19 17:01:59.000000000 +0100
++++ linux-libc-headers-2.6.15.99/include/asm-arm/arch-ebsa285/irqs.h 2006-03-19 17:02:50.000000000 +0100
+@@ -8,7 +8,6 @@
+ * 20-Jan-1998 RMK Started merge of EBSA286, CATS and NetWinder
+ * 01-Feb-1999 PJB ISA IRQs start at 0 not 16
+ */
+-#include <asm/mach-types.h>
+
+ #define NR_IRQS 36
+ #define NR_DC21285_IRQS 16
+@@ -92,7 +91,7 @@
+ #undef RTC_IRQ
+ #define RTC_IRQ IRQ_ISA_RTC_ALARM
+ #define I8042_KBD_IRQ IRQ_ISA_KEYBOARD
+-#define I8042_AUX_IRQ (machine_is_netwinder() ? IRQ_NETWINDER_PS2MOUSE : IRQ_ISA_PS2MOUSE)
++#define I8042_AUX_IRQ IRQ_ISA_PS2MOUSE
+ #define IRQ_FLOPPYDISK IRQ_ISA_FLOPPY
+
+ #define irq_canonicalize(_i) (((_i) == IRQ_ISA_CASCADE) ? IRQ_ISA_2 : _i)
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netdevice.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netdevice.patch
new file mode 100644
index 0000000000..588aea4ba8
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netdevice.patch
@@ -0,0 +1,11 @@
+--- linux-libc-headers-2.6.15.99/include/linux/netdevice.h.orig 2006-04-29 14:10:39.245687500 +0200
++++ linux-libc-headers-2.6.15.99/include/linux/netdevice.h 2006-04-29 14:11:08.819535750 +0200
+@@ -100,8 +100,6 @@
+ unsigned long tx_compressed;
+ };
+
+-extern int __init netdev_boot_setup(char *str);
+-
+ /* Media selection options. */
+ enum {
+ IF_PORT_UNKNOWN = 0,
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netfilter_ipv4.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netfilter_ipv4.patch
new file mode 100644
index 0000000000..f7f77af0de
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-netfilter_ipv4.patch
@@ -0,0 +1,31 @@
+iptables 1.3.3 assumes that ipt_scpt.h defines ELEMCOUNT, but ipt_scpt.h
+moved to ARRAY_SIZE (which would be defined in linux/kernel.h).
+The ip_conntrack_dir definition now resides in linux/netfilter/ip_conntrack_common.h
+
+--- linux-libc-headers-2.6.15.99/include/linux/netfilter_ipv4/ipt_sctp.h.orig 2006-03-20 22:03:04.000000000 +0100
++++ linux-libc-headers-2.6.15.99/include/linux/netfilter_ipv4/ipt_sctp.h 2006-03-20 22:07:09.000000000 +0100
+@@ -7,6 +7,8 @@
+
+ #define IPT_SCTP_VALID_FLAGS 0x07
+
++#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
++#define ELEMCOUNT(x) (sizeof(x) / sizeof((x)[0]))
+
+ struct ipt_sctp_flag_info {
+ u_int8_t chunktype;
+--- linux-libc-headers-2.6.15.99/include/linux/netfilter_ipv4/ip_conntrack_tuple.h.orig 2006-03-20 21:51:10.000000000 +0100
++++ linux-libc-headers-2.6.15.99/include/linux/netfilter_ipv4/ip_conntrack_tuple.h 2006-03-20 21:51:12.000000000 +0100
+@@ -89,13 +89,6 @@
+ (tuple)->dst.u.all = 0; \
+ } while (0)
+
+-enum ip_conntrack_dir
+-{
+- IP_CT_DIR_ORIGINAL,
+- IP_CT_DIR_REPLY,
+- IP_CT_DIR_MAX
+-};
+-
+ static inline int ip_ct_tuple_src_equal(const struct ip_conntrack_tuple *t1,
+ const struct ip_conntrack_tuple *t2)
+ {
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-rtc.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-rtc.patch
new file mode 100644
index 0000000000..36b80fb9d2
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-rtc.patch
@@ -0,0 +1,11 @@
+--- linux-libc-headers-2.6.15.99/include/linux/rtc.h.orig 2006-03-19 12:31:07.000000000 +0100
++++ linux-libc-headers-2.6.15.99/include/linux/rtc.h 2006-03-19 12:31:14.000000000 +0100
+@@ -11,8 +11,6 @@
+ #ifndef _LINUX_RTC_H_
+ #define _LINUX_RTC_H_
+
+-#include <linux/interrupt.h>
+-
+ /*
+ * The struct used to pass data via the following ioctl. Similar to the
+ * struct tm in <time.h>, but it needs to be here so that the kernel
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-videodev2.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-videodev2.patch
new file mode 100644
index 0000000000..95335c99b6
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.15.99/linux-videodev2.patch
@@ -0,0 +1,45 @@
+--- linux-libc-headers-2.6.15.99/include/linux/videodev2.h.orig 2006-03-20 11:14:35.000000000 +0100
++++ linux-libc-headers-2.6.15.99/include/linux/videodev2.h 2006-03-20 11:14:37.000000000 +0100
+@@ -15,7 +15,32 @@
+ */
+ #include <sys/time.h> /* need struct timeval */
+ #include <asm/types.h> /* needed __u64 */
+-
++
++#define OBSOLETE_OWNER 1 /* It will be removed for 2.6.15 */
++#define HAVE_V4L2 1
++
++/*
++ * Common stuff for both V4L1 and V4L2
++ * Moved from videodev.h
++ */
++
++#define VIDEO_MAX_FRAME 32
++
++#define VID_TYPE_CAPTURE 1 /* Can capture */
++#define VID_TYPE_TUNER 2 /* Can tune */
++#define VID_TYPE_TELETEXT 4 /* Does teletext */
++#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */
++#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */
++#define VID_TYPE_CLIPPING 32 /* Can clip */
++#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */
++#define VID_TYPE_SCALES 128 /* Scalable */
++#define VID_TYPE_MONOCHROME 256 /* Monochrome only */
++#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */
++#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */
++#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */
++#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */
++#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */
++
+ /*
+ * M I S C E L L A N E O U S
+ */
+@@ -464,7 +489,7 @@
+ struct v4l2_clip
+ {
+ struct v4l2_rect c;
+- struct v4l2_clip __user *next;
++ struct v4l2_clip *next;
+ };
+
+ struct v4l2_window
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-procinfo-hwcap.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-procinfo-hwcap.patch
new file mode 100644
index 0000000000..3b20b4ac59
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-procinfo-hwcap.patch
@@ -0,0 +1,31 @@
+# Add HWCAP definitions in asm/procinfo.h
+
+Index: linux-2.6.19-rc1/usr/include/asm-arm/procinfo.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.19-rc1/usr/include/asm-arm/procinfo.h 2006-10-05 10:28:40.000000000 +0200
+@@ -0,0 +1,24 @@
++/*
++ * linux/include/asm-arm/procinfo.h
++ *
++ * Copyright (C) 1996-1999 Russell King
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++#ifndef __ASM_PROCINFO_H
++#define __ASM_PROCINFO_H
++
++#define HWCAP_SWP 1
++#define HWCAP_HALF 2
++#define HWCAP_THUMB 4
++#define HWCAP_26BIT 8 /* Play it safe */
++#define HWCAP_FAST_MULT 16
++#define HWCAP_FPA 32
++#define HWCAP_VFP 64
++#define HWCAP_EDSP 128
++#define HWCAP_JAVA 256
++#define HWCAP_IWMMXT 512
++
++#endif
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-unistd-syscall.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-unistd-syscall.patch
new file mode 100644
index 0000000000..f1fed650bb
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/arm-unistd-syscall.patch
@@ -0,0 +1,190 @@
+# Add asm syscall definitions, needed for fstab/llseek.c in util-linux
+
+Index: linux-2.6.19-rc1/usr/include/asm-arm/unistd.h
+===================================================================
+--- linux-2.6.19-rc1.orig/usr/include/asm-arm/unistd.h 2006-10-05 10:29:50.000000000 +0200
++++ linux-2.6.19-rc1/usr/include/asm-arm/unistd.h 2006-10-05 10:31:43.000000000 +0200
+@@ -376,4 +376,183 @@
+ #undef __NR_ipc
+ #endif
+
++#include <linux/err.h>
++
++#define __sys2(x) #x
++#define __sys1(x) __sys2(x)
++
++#ifndef __syscall
++#if defined(__thumb__) || defined(__ARM_EABI__)
++#define __SYS_REG(name) register long __sysreg __asm__("r7") = __NR_##name;
++#define __SYS_REG_LIST(regs...) "r" (__sysreg) , ##regs
++#define __syscall(name) "swi\t0"
++#else
++#define __SYS_REG(name)
++#define __SYS_REG_LIST(regs...) regs
++#define __syscall(name) "swi\t" __sys1(__NR_##name) ""
++#endif
++#endif
++
++#define __syscall_return(type, res) \
++do { \
++ if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { \
++ errno = -(res); \
++ res = -1; \
++ } \
++ return (type) (res); \
++} while (0)
++
++#define _syscall0(type,name) \
++type name(void) { \
++ __SYS_REG(name) \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST() \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++#define _syscall1(type,name,type1,arg1) \
++type name(type1 arg1) { \
++ __SYS_REG(name) \
++ register long __r0 __asm__("r0") = (long)arg1; \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST( "0" (__r0) ) \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++#define _syscall2(type,name,type1,arg1,type2,arg2) \
++type name(type1 arg1,type2 arg2) { \
++ __SYS_REG(name) \
++ register long __r0 __asm__("r0") = (long)arg1; \
++ register long __r1 __asm__("r1") = (long)arg2; \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST( "0" (__r0), "r" (__r1) ) \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++
++#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
++type name(type1 arg1,type2 arg2,type3 arg3) { \
++ __SYS_REG(name) \
++ register long __r0 __asm__("r0") = (long)arg1; \
++ register long __r1 __asm__("r1") = (long)arg2; \
++ register long __r2 __asm__("r2") = (long)arg3; \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2) ) \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++
++#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4)\
++type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \
++ __SYS_REG(name) \
++ register long __r0 __asm__("r0") = (long)arg1; \
++ register long __r1 __asm__("r1") = (long)arg2; \
++ register long __r2 __asm__("r2") = (long)arg3; \
++ register long __r3 __asm__("r3") = (long)arg4; \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), "r" (__r3) ) \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++
++#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \
++type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) { \
++ __SYS_REG(name) \
++ register long __r0 __asm__("r0") = (long)arg1; \
++ register long __r1 __asm__("r1") = (long)arg2; \
++ register long __r2 __asm__("r2") = (long)arg3; \
++ register long __r3 __asm__("r3") = (long)arg4; \
++ register long __r4 __asm__("r4") = (long)arg5; \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \
++ "r" (__r3), "r" (__r4) ) \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++#define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5,type6,arg6) \
++type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5, type6 arg6) { \
++ __SYS_REG(name) \
++ register long __r0 __asm__("r0") = (long)arg1; \
++ register long __r1 __asm__("r1") = (long)arg2; \
++ register long __r2 __asm__("r2") = (long)arg3; \
++ register long __r3 __asm__("r3") = (long)arg4; \
++ register long __r4 __asm__("r4") = (long)arg5; \
++ register long __r5 __asm__("r5") = (long)arg6; \
++ register long __res_r0 __asm__("r0"); \
++ long __res; \
++ __asm__ __volatile__ ( \
++ __syscall(name) \
++ : "=r" (__res_r0) \
++ : __SYS_REG_LIST( "0" (__r0), "r" (__r1), "r" (__r2), \
++ "r" (__r3), "r" (__r4), "r" (__r5) ) \
++ : "memory" ); \
++ __res = __res_r0; \
++ __syscall_return(type,__res); \
++}
++
++#define __ARCH_WANT_IPC_PARSE_VERSION
++#define __ARCH_WANT_STAT64
++#define __ARCH_WANT_SYS_GETHOSTNAME
++#define __ARCH_WANT_SYS_PAUSE
++#define __ARCH_WANT_SYS_GETPGRP
++#define __ARCH_WANT_SYS_LLSEEK
++#define __ARCH_WANT_SYS_NICE
++#define __ARCH_WANT_SYS_SIGPENDING
++#define __ARCH_WANT_SYS_SIGPROCMASK
++#define __ARCH_WANT_SYS_RT_SIGACTION
++
++#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
++#define __ARCH_WANT_SYS_TIME
++#define __ARCH_WANT_SYS_OLDUMOUNT
++#define __ARCH_WANT_SYS_ALARM
++#define __ARCH_WANT_SYS_UTIME
++#define __ARCH_WANT_SYS_OLD_GETRLIMIT
++#define __ARCH_WANT_OLD_READDIR
++#define __ARCH_WANT_SYS_SOCKETCALL
++#endif
++
++/*
++ * "Conditional" syscalls
++ *
++ * What we want is __attribute__((weak,alias("sys_ni_syscall"))),
++ * but it doesn't work on all toolchains, so we just do it by hand
++ */
++#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
++
+ #endif /* __ASM_ARM_UNISTD_H */
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/linux-err.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/linux-err.patch
new file mode 100644
index 0000000000..39a8e8a2f5
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.18+2.6.19-rc1/linux-err.patch
@@ -0,0 +1,23 @@
+# Add linux/err.h for MAX_ERRNO definition, needed by util-linux mount
+
+Index: linux-2.6.19-rc1/usr/include/linux/err.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.19-rc1/usr/include/linux/err.h 2006-10-05 10:55:17.000000000 +0200
+@@ -0,0 +1,16 @@
++#ifndef _LINUX_ERR_H
++#define _LINUX_ERR_H
++
++#include <asm/errno.h>
++
++/*
++ * Kernel pointers have redundant information, so we can use a
++ * scheme where we can return either an error code or a dentry
++ * pointer with the same return value.
++ *
++ * This should be a per-architecture thing, to allow different
++ * error and pointer decisions.
++ */
++#define MAX_ERRNO 4095
++
++#endif /* _LINUX_ERR_H */
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.18/arm-syscall-define.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.18/arm-syscall-define.patch
new file mode 100644
index 0000000000..ec5a87d2a3
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.18/arm-syscall-define.patch
@@ -0,0 +1,22 @@
+# define the _syscall macros, needed to build util-linux
+
+Index: linux-2.6.18/include/asm-arm/unistd.h
+===================================================================
+--- linux-2.6.18.orig/include/asm-arm/unistd.h 2006-10-02 18:05:31.000000000 +0200
++++ linux-2.6.18/include/asm-arm/unistd.h 2006-10-02 18:05:47.000000000 +0200
+@@ -376,9 +376,6 @@
+ #undef __NR_ipc
+ #endif
+
+-#ifdef __KERNEL__
+-#include <linux/linkage.h>
+-
+ #define __sys2(x) #x
+ #define __sys1(x) __sys2(x)
+
+@@ -580,5 +577,4 @@
+ */
+ #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
+
+-#endif /* __KERNEL__ */
+ #endif /* __ASM_ARM_UNISTD_H */
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.20/procinfo.h b/recipes/linux-libc-headers/linux-libc-headers-2.6.20/procinfo.h
new file mode 100644
index 0000000000..8cdf828af8
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.20/procinfo.h
@@ -0,0 +1,24 @@
+/*
+ * linux/include/asm-arm/procinfo.h
+ *
+ * Copyright (C) 1996-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __ASM_PROCINFO_H
+#define __ASM_PROCINFO_H
+
+#define HWCAP_SWP 1
+#define HWCAP_HALF 2
+#define HWCAP_THUMB 4
+#define HWCAP_26BIT 8 /* Play it safe */
+#define HWCAP_FAST_MULT 16
+#define HWCAP_FPA 32
+#define HWCAP_VFP 64
+#define HWCAP_EDSP 128
+#define HWCAP_JAVA 256
+#define HWCAP_IWMMXT 512
+#define HWCAP_CRUNCH 1024
+#endif
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.22/procinfo.h b/recipes/linux-libc-headers/linux-libc-headers-2.6.22/procinfo.h
new file mode 100644
index 0000000000..8cdf828af8
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.22/procinfo.h
@@ -0,0 +1,24 @@
+/*
+ * linux/include/asm-arm/procinfo.h
+ *
+ * Copyright (C) 1996-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __ASM_PROCINFO_H
+#define __ASM_PROCINFO_H
+
+#define HWCAP_SWP 1
+#define HWCAP_HALF 2
+#define HWCAP_THUMB 4
+#define HWCAP_26BIT 8 /* Play it safe */
+#define HWCAP_FAST_MULT 16
+#define HWCAP_FPA 32
+#define HWCAP_VFP 64
+#define HWCAP_EDSP 128
+#define HWCAP_JAVA 256
+#define HWCAP_IWMMXT 512
+#define HWCAP_CRUNCH 1024
+#endif
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.23/procinfo.h b/recipes/linux-libc-headers/linux-libc-headers-2.6.23/procinfo.h
new file mode 100644
index 0000000000..8cdf828af8
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.23/procinfo.h
@@ -0,0 +1,24 @@
+/*
+ * linux/include/asm-arm/procinfo.h
+ *
+ * Copyright (C) 1996-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __ASM_PROCINFO_H
+#define __ASM_PROCINFO_H
+
+#define HWCAP_SWP 1
+#define HWCAP_HALF 2
+#define HWCAP_THUMB 4
+#define HWCAP_26BIT 8 /* Play it safe */
+#define HWCAP_FAST_MULT 16
+#define HWCAP_FPA 32
+#define HWCAP_VFP 64
+#define HWCAP_EDSP 128
+#define HWCAP_JAVA 256
+#define HWCAP_IWMMXT 512
+#define HWCAP_CRUNCH 1024
+#endif
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.25/fix-kernel-conditionalize-a.out.h.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/fix-kernel-conditionalize-a.out.h.patch
new file mode 100644
index 0000000000..30dee5d520
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/fix-kernel-conditionalize-a.out.h.patch
@@ -0,0 +1,15 @@
+diff --git a/include/linux/a.out.h b/include/linux/a.out.h
+index 208f4e8..d149699 100644
+--- a/include/linux/a.out.h
++++ b/include/linux/a.out.h
+@@ -1,6 +1,10 @@
+ #ifndef __A_OUT_GNU_H__
+ #define __A_OUT_GNU_H__
+
++#ifndef __KERNEL__
++#define CONFIG_ARCH_SUPPORTS_AOUT
++#endif
++
+ #ifdef CONFIG_ARCH_SUPPORTS_AOUT
+
+ #define __GNU_EXEC_MACROS__
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.25/netfilter-include-types_h-in-userspace.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/netfilter-include-types_h-in-userspace.patch
new file mode 100644
index 0000000000..79eb170c2c
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/netfilter-include-types_h-in-userspace.patch
@@ -0,0 +1,88 @@
+commit c8942f1f0a7e2160ebf2e51ba89e50ee5895a1e7
+Author: Patrick McHardy <kaber@trash.net>
+Date: Wed May 21 14:08:38 2008 -0700
+
+ netfilter: Move linux/types.h inclusions outside of #ifdef __KERNEL__
+
+ Greg Steuck <greg@nest.cx> points out that some of the netfilter
+ headers can't be used in userspace without including linux/types.h
+ first. The headers include their own linux/types.h include statements,
+ these are stripped by make headers-install because they are inside
+ #ifdef __KERNEL__ however. Move them out to fix this.
+
+ Reported and Tested by Greg Steuck.
+
+ Signed-off-by: Patrick McHardy <kaber@trash.net>
+ Signed-off-by: David S. Miller <davem@davemloft.net>
+
+diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
+index e4c6659..0c5eb7e 100644
+--- a/include/linux/netfilter.h
++++ b/include/linux/netfilter.h
+@@ -3,7 +3,6 @@
+
+ #ifdef __KERNEL__
+ #include <linux/init.h>
+-#include <linux/types.h>
+ #include <linux/skbuff.h>
+ #include <linux/net.h>
+ #include <linux/netdevice.h>
+@@ -14,6 +13,7 @@
+ #include <linux/list.h>
+ #include <net/net_namespace.h>
+ #endif
++#include <linux/types.h>
+ #include <linux/compiler.h>
+
+ /* Responses from hook functions. */
+diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h
+index dd9c97f..590ac3d 100644
+--- a/include/linux/netfilter_arp/arp_tables.h
++++ b/include/linux/netfilter_arp/arp_tables.h
+@@ -11,11 +11,11 @@
+
+ #ifdef __KERNEL__
+ #include <linux/if.h>
+-#include <linux/types.h>
+ #include <linux/in.h>
+ #include <linux/if_arp.h>
+ #include <linux/skbuff.h>
+ #endif
++#include <linux/types.h>
+ #include <linux/compiler.h>
+ #include <linux/netfilter_arp.h>
+
+diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h
+index bfc889f..092bd50 100644
+--- a/include/linux/netfilter_ipv4/ip_tables.h
++++ b/include/linux/netfilter_ipv4/ip_tables.h
+@@ -17,11 +17,11 @@
+
+ #ifdef __KERNEL__
+ #include <linux/if.h>
+-#include <linux/types.h>
+ #include <linux/in.h>
+ #include <linux/ip.h>
+ #include <linux/skbuff.h>
+ #endif
++#include <linux/types.h>
+ #include <linux/compiler.h>
+ #include <linux/netfilter_ipv4.h>
+
+diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h
+index f2507dc..1089e33 100644
+--- a/include/linux/netfilter_ipv6/ip6_tables.h
++++ b/include/linux/netfilter_ipv6/ip6_tables.h
+@@ -17,11 +17,11 @@
+
+ #ifdef __KERNEL__
+ #include <linux/if.h>
+-#include <linux/types.h>
+ #include <linux/in6.h>
+ #include <linux/ipv6.h>
+ #include <linux/skbuff.h>
+ #endif
++#include <linux/types.h>
+ #include <linux/compiler.h>
+ #include <linux/netfilter_ipv6.h>
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.25/procinfo.h b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/procinfo.h
new file mode 100644
index 0000000000..8cdf828af8
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/procinfo.h
@@ -0,0 +1,24 @@
+/*
+ * linux/include/asm-arm/procinfo.h
+ *
+ * Copyright (C) 1996-1999 Russell King
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#ifndef __ASM_PROCINFO_H
+#define __ASM_PROCINFO_H
+
+#define HWCAP_SWP 1
+#define HWCAP_HALF 2
+#define HWCAP_THUMB 4
+#define HWCAP_26BIT 8 /* Play it safe */
+#define HWCAP_FAST_MULT 16
+#define HWCAP_FPA 32
+#define HWCAP_VFP 64
+#define HWCAP_EDSP 128
+#define HWCAP_JAVA 256
+#define HWCAP_IWMMXT 512
+#define HWCAP_CRUNCH 1024
+#endif
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.25/reinstate-a.out.h.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/reinstate-a.out.h.patch
new file mode 100644
index 0000000000..9032f4e716
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.25/reinstate-a.out.h.patch
@@ -0,0 +1,14 @@
+diff --git a/include/linux/Kbuild b/include/linux/Kbuild
+index 93b9885..b6fbb25 100644
+--- a/include/linux/Kbuild
++++ b/include/linux/Kbuild
+@@ -166,6 +166,9 @@ unifdef-y += acct.h
+ unifdef-y += adb.h
+ unifdef-y += adfs_fs.h
+ unifdef-y += agpgart.h
++ifeq ($(wildcard include/asm-$(SRCARCH)/a.out.h),include/asm-$(SRCARCH)/a.out.h)
++unifdef-y += a.out.h
++endif
+ unifdef-y += apm_bios.h
+ unifdef-y += atalk.h
+ unifdef-y += atmdev.h
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.7.0/sh-missing.patch b/recipes/linux-libc-headers/linux-libc-headers-2.6.7.0/sh-missing.patch
new file mode 100644
index 0000000000..e97650a9de
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.7.0/sh-missing.patch
@@ -0,0 +1,72 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ linux-libc-headers-2.6.7.0/include/asm-sh/cpu-sh4/sigcontext.h 2004-08-27 17:56:59.000000000 -0500
+@@ -0,0 +1,24 @@
++#ifndef __ASM_CPU_SH4_SIGCONTEXT_H
++#define __ASM_CPU_SH4_SIGCONTEXT_H
++
++struct sigcontext {
++ unsigned long oldmask;
++
++ /* CPU registers */
++ unsigned long sc_regs[16];
++ unsigned long sc_pc;
++ unsigned long sc_pr;
++ unsigned long sc_sr;
++ unsigned long sc_gbr;
++ unsigned long sc_mach;
++ unsigned long sc_macl;
++
++ /* FPU registers */
++ unsigned long sc_fpregs[16];
++ unsigned long sc_xfpregs[16];
++ unsigned int sc_fpscr;
++ unsigned int sc_fpul;
++ unsigned int sc_ownedfp;
++};
++
++#endif /* __ASM_CPU_SH4_SIGCONTEXT_H */
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ linux-libc-headers-2.6.7.0/include/asm-sh/cpu-sh2/sigcontext.h 2004-08-27 17:57:54.000000000 -0500
+@@ -0,0 +1,17 @@
++#ifndef __ASM_CPU_SH2_SIGCONTEXT_H
++#define __ASM_CPU_SH2_SIGCONTEXT_H
++
++struct sigcontext {
++ unsigned long oldmask;
++
++ /* CPU registers */
++ unsigned long sc_regs[16];
++ unsigned long sc_pc;
++ unsigned long sc_pr;
++ unsigned long sc_sr;
++ unsigned long sc_gbr;
++ unsigned long sc_mach;
++ unsigned long sc_macl;
++};
++
++#endif /* __ASM_CPU_SH2_SIGCONTEXT_H */
+--- /dev/null 2004-06-02 16:28:12.000000000 -0500
++++ linux-libc-headers-2.6.7.0/include/asm-sh/cpu-sh3/sigcontext.h 2004-08-27 17:57:58.000000000 -0500
+@@ -0,0 +1,17 @@
++#ifndef __ASM_CPU_SH3_SIGCONTEXT_H
++#define __ASM_CPU_SH3_SIGCONTEXT_H
++
++struct sigcontext {
++ unsigned long oldmask;
++
++ /* CPU registers */
++ unsigned long sc_regs[16];
++ unsigned long sc_pc;
++ unsigned long sc_pr;
++ unsigned long sc_sr;
++ unsigned long sc_gbr;
++ unsigned long sc_mach;
++ unsigned long sc_macl;
++};
++
++#endif /* __ASM_CPU_SH3_SIGCONTEXT_H */
diff --git a/recipes/linux-libc-headers/linux-libc-headers-2.6.8.1/mips-asm-atomic-system.diff b/recipes/linux-libc-headers/linux-libc-headers-2.6.8.1/mips-asm-atomic-system.diff
new file mode 100644
index 0000000000..a06b5affd9
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers-2.6.8.1/mips-asm-atomic-system.diff
@@ -0,0 +1,11 @@
+--- include/asm-mips/atomic.h.orig 2004-10-01 10:10:05.487734944 +0200
++++ include/asm-mips/atomic.h 2004-10-01 10:10:15.837161592 +0200
+@@ -15,8 +15,6 @@
+ #define _ASM_ATOMIC_H
+
+
+-#include <asm/system.h>
+-
+ typedef struct { volatile int counter; } atomic_t;
+ typedef struct { volatile __s64 counter; } atomic64_t;
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers.inc b/recipes/linux-libc-headers/linux-libc-headers.inc
new file mode 100644
index 0000000000..dc0267697f
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers.inc
@@ -0,0 +1,10 @@
+DESCRIPTION = "Sanitized set of 2.6 kernel headers for the C library's use."
+SECTION = "devel"
+LICENSE = "GPL"
+
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPV})"
+
+do_install_append() {
+ rm -rf ${D}${includedir}/scsi
+}
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.11.1.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.11.1.bb
new file mode 100644
index 0000000000..e316a2c6c1
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.11.1.bb
@@ -0,0 +1,58 @@
+require linux-libc-headers.inc
+
+HOMEPAGE = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/"
+# license note from the package:
+# Linux-libc-headers are derived from linux kernel headers. For license of a
+# particular header, check it's content, and if copyright notice isn't present,
+# standard linux kernel license applies.
+# since we assume GPL for linux i think we can also assume it here
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r3"
+
+SRC_URI = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${PV}.tar.bz2 \
+ file://keyboard.patch;patch=1"
+
+S = "${WORKDIR}/linux-libc-headers-${PV}"
+
+do_configure () {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=ppc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+ if test ! -e include/asm-$ARCH; then
+ oefatal unable to create asm symlink in kernel headers
+ fi
+ cp -pPR "include/asm-$ARCH" "include/asm"
+ if test "$ARCH" = "arm"; then
+ cp -pPR include/asm/arch-ebsa285 include/asm/arch
+ elif test "$ARCH" = "sh"; then
+ cp -pPR include/asm/cpu-${TARGET_ARCH} include/asm/cpu || die "unable to create include/asm/cpu"
+ cp -pPR include/asm/cpu/* include/asm
+ fi
+}
+
+do_stage () {
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm
+ cp -pfLR include/linux ${STAGING_INCDIR}/
+ cp -pfLR include/asm ${STAGING_INCDIR}/
+}
+
+do_install() {
+ install -d ${D}${includedir}
+ cp -pfLR include/linux ${D}${includedir}/
+ cp -pfLR include/asm ${D}${includedir}/
+}
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.15.99.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.15.99.bb
new file mode 100644
index 0000000000..0c61d2acc4
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.15.99.bb
@@ -0,0 +1,72 @@
+require linux-libc-headers.inc
+
+# This package is derived from the original linux-libc-headers at
+# http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
+# More specifically, llh-2.6.12.0 was patched up to 2.6.16-rc6 with
+# the official linux patches (where applicable) and then fixed up just
+# enough to build glibc-2.4. BEWARE!
+#
+# license note from the linux-libc-headers package:
+# Linux-libc-headers are derived from linux kernel headers. For license of a
+# particular header, check it's content, and if copyright notice isn't present,
+# standard linux kernel license applies.
+# since we assume GPL for linux i think we can also assume it here
+DEFAULT_PREFERENCE = "-1"
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r5"
+
+SRC_URI = "http://ewi546.ewi.utwente.nl/OE/eabi/linux-libc-headers-${PV}.tar.bz2 \
+ file://keyboard.patch;patch=1 \
+ file://asm-arch-irqs.patch;patch=1 \
+ file://linux-netdevice.patch;patch=1 \
+ file://linux-netfilter_ipv4.patch;patch=1 \
+ file://linux-rtc.patch;patch=1 \
+ file://linux-videodev2.patch;patch=1 \
+ file://3477-1.patch;patch=1"
+
+S = "${WORKDIR}/linux-libc-headers-${PV}"
+
+do_configure () {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=ppc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+ if test ! -e include/asm-$ARCH; then
+ oefatal unable to create asm symlink in kernel headers
+ fi
+ rm "include/asm"
+ cp -pPR "include/asm-$ARCH" "include/asm"
+ if test "$ARCH" = "arm"; then
+ cp -pPR include/asm/arch-ebsa285 include/asm/arch
+ elif test "$ARCH" = "sh"; then
+ cp -pPR include/asm/cpu-${TARGET_ARCH} include/asm/cpu || die "unable to create include/asm/cpu"
+ fi
+}
+
+do_stage () {
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR include/linux ${STAGING_INCDIR}/
+ cp -pfLR include/asm ${STAGING_INCDIR}/
+ cp -pfLR include/asm-generic ${STAGING_INCDIR}/
+}
+
+do_install() {
+ install -d ${D}${includedir}
+ cp -pfLR include/linux ${D}${includedir}/
+ cp -pfLR include/asm ${D}${includedir}/
+ cp -pfLR include/asm-generic ${D}${includedir}/
+}
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.18+2.6.19-rc1.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.18+2.6.19-rc1.bb
new file mode 100644
index 0000000000..73e9b07d7f
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.18+2.6.19-rc1.bb
@@ -0,0 +1,57 @@
+require linux-libc-headers.inc
+
+DEFAULT_PREFERENCE = "-1"
+INHIBIT_DEFAULT_DEPS = "1"
+
+SRC_URI = " \
+ ${KERNELORG_MIRROR}/pub/linux/kernel/people/dwmw2/kernel-headers/snapshot/linux-kernel-headers-2.6.19-rc1.tar.bz2 \
+ file://arm-procinfo-hwcap.patch;patch=1 \
+ file://arm-unistd-syscall.patch;patch=1 \
+ file://linux-err.patch;patch=1 \
+"
+
+S = "${WORKDIR}/linux-2.6.19-rc1"
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=powerpc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+}
+
+do_install() {
+ set_arch
+ install -d ${D}${includedir}
+ cp -pfLR ${S}${includedir}/linux ${D}${includedir}/
+ cp -pfLR ${S}${includedir}/asm-${ARCH} ${D}${includedir}/asm
+ cp -pfLR ${S}${includedir}/asm-generic ${D}${includedir}/
+}
+
+do_stage () {
+ set_arch
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR ${S}${includedir}/linux ${STAGING_INCDIR}/
+ cp -pfLR ${S}${includedir}/asm-${ARCH} ${STAGING_INCDIR}/asm
+ cp -pfLR ${S}${includedir}/asm-generic ${STAGING_INCDIR}/
+}
+
+do_stage_append_nylon () {
+ cp -pPR include/asm-${ARCH}/* ${STAGING_INCDIR}/asm/
+ cp -pPR include/asm-${ARCH}/* ${CROSS_DIR}/${TARGET_SYS}/include/asm/
+ cp -pPR include/linux/* ${STAGING_INCDIR}/linux/
+ cp -pPR include/linux/* ${CROSS_DIR}/${TARGET_SYS}/include/linux/
+}
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.18.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.18.bb
new file mode 100644
index 0000000000..d71b68a930
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.18.bb
@@ -0,0 +1,77 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r3"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 \
+ file://arm-syscall-define.patch;patch=1"
+
+S = "${WORKDIR}/linux-2.6.18"
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=powerpc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+}
+
+do_configure() {
+ set_arch
+ oe_runmake allnoconfig ARCH=${ARCH}
+}
+
+do_compile () {
+}
+
+do_install() {
+ set_arch
+ oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=${ARCH}
+}
+
+do_install_append_arm() {
+ cp include/asm-arm/procinfo.h ${D}${includedir}/asm
+}
+
+STAGE_TEMP="${WORKDIR}/temp-staging"
+
+do_stage () {
+ set_arch
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake headers_install INSTALL_HDR_PATH=${STAGE_TEMP}${exec_prefix} ARCH=${ARCH}
+ if [ "${ARCH}" == "arm" ]; then
+ cp include/asm-arm/procinfo.h ${STAGE_TEMP}${includedir}/asm
+ fi
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR ${STAGE_TEMP}${includedir}/linux ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm-generic ${STAGING_INCDIR}/
+ # Add UTS_RELEASE to version.h. UTS_RELEASE was moved from version.h to
+ # utsrelease.h in order to avoid recompiling a kernel every time a localversion
+ # changed. Since the our headers are static and we're not compiling an
+ # actual kernel, re-adding UTS_RELEASE does't hurt, and it allows uclibc to
+ # compile with kernel headers that work with EABI on ARM
+ echo '#define UTS_RELEASE "2.6.18"' >> ${STAGING_INCDIR}/linux/version.h
+}
+
+do_stage_append_nylon () {
+ cp -pPR include/asm-${ARCH}/* ${STAGING_INCDIR}/asm/
+ cp -pPR include/asm-${ARCH}/* ${CROSS_DIR}/${TARGET_SYS}/include/asm/
+ cp -pPR include/linux/* ${STAGING_INCDIR}/linux/
+ cp -pPR include/linux/* ${CROSS_DIR}/${TARGET_SYS}/include/linux/
+}
+
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.20.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.20.bb
new file mode 100644
index 0000000000..587d21e1e4
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.20.bb
@@ -0,0 +1,66 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r9"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+ file://procinfo.h"
+
+S = "${WORKDIR}/linux-${PV}"
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=powerpc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ avr32*) ARCH=avr32 ;;
+ bfin*) ARCH=blackfin ;;
+ esac
+}
+
+do_configure() {
+ set_arch
+ oe_runmake allnoconfig ARCH=$ARCH
+}
+
+do_compile () {
+}
+
+do_install() {
+ set_arch
+ oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+}
+
+do_install_append_arm() {
+ cp ${WORKDIR}/procinfo.h ${D}${includedir}/asm/
+}
+
+STAGE_TEMP="${WORKDIR}/temp-staging"
+
+do_stage () {
+ set_arch
+ echo $ARCH
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake headers_install INSTALL_HDR_PATH=${STAGE_TEMP}${exec_prefix} ARCH=$ARCH
+ if [ "$ARCH" = "arm" ]; then
+ cp ${WORKDIR}/procinfo.h ${STAGE_TEMP}${includedir}/asm/
+ fi
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR ${STAGE_TEMP}${includedir}/linux ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm-generic ${STAGING_INCDIR}/
+}
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.22.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.22.bb
new file mode 100644
index 0000000000..0e5debcfa3
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.22.bb
@@ -0,0 +1,66 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r2"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+ file://procinfo.h"
+
+S = "${WORKDIR}/linux-${PV}"
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=powerpc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ avr32*) ARCH=avr32 ;;
+ bfin*) ARCH=blackfin ;;
+ esac
+}
+
+do_configure() {
+ set_arch
+ oe_runmake allnoconfig ARCH=$ARCH
+}
+
+do_compile () {
+}
+
+do_install() {
+ set_arch
+ oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+}
+
+do_install_append_arm() {
+ cp ${WORKDIR}/procinfo.h ${D}${includedir}/asm/
+}
+
+STAGE_TEMP="${WORKDIR}/temp-staging"
+
+do_stage () {
+ set_arch
+ echo $ARCH
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake headers_install INSTALL_HDR_PATH=${STAGE_TEMP}${exec_prefix} ARCH=$ARCH
+ if [ "$ARCH" = "arm" ]; then
+ cp ${WORKDIR}/procinfo.h ${STAGE_TEMP}${includedir}/asm/
+ fi
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR ${STAGE_TEMP}${includedir}/linux ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm-generic ${STAGING_INCDIR}/
+}
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.23.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.23.bb
new file mode 100644
index 0000000000..13579f9349
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.23.bb
@@ -0,0 +1,66 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r3"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+ file://procinfo.h"
+
+S = "${WORKDIR}/linux-${PV}"
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=powerpc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ avr32*) ARCH=avr32 ;;
+ bfin*) ARCH=blackfin ;;
+ esac
+}
+
+do_configure() {
+ set_arch
+ oe_runmake allnoconfig ARCH=$ARCH
+}
+
+do_compile () {
+}
+
+do_install() {
+ set_arch
+ oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+}
+
+do_install_append_arm() {
+ cp ${WORKDIR}/procinfo.h ${D}${includedir}/asm/
+}
+
+STAGE_TEMP="${WORKDIR}/temp-staging"
+
+do_stage () {
+ set_arch
+ echo $ARCH
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake headers_install INSTALL_HDR_PATH=${STAGE_TEMP}${exec_prefix} ARCH=$ARCH
+ if [ "$ARCH" = "arm" ]; then
+ cp ${WORKDIR}/procinfo.h ${STAGE_TEMP}${includedir}/asm/
+ fi
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR ${STAGE_TEMP}${includedir}/linux ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm-generic ${STAGING_INCDIR}/
+}
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb
new file mode 100644
index 0000000000..0d4163693c
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.25.bb
@@ -0,0 +1,69 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS += "unifdef-native"
+PR = "r2"
+
+SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
+ file://reinstate-a.out.h.patch;patch=1 \
+ file://fix-kernel-conditionalize-a.out.h.patch;patch=1 \
+ file://netfilter-include-types_h-in-userspace.patch;patch=1 \
+ file://procinfo.h"
+
+S = "${WORKDIR}/linux-${PV}"
+
+set_arch() {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=powerpc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ avr32*) ARCH=avr32 ;;
+ bfin*) ARCH=blackfin ;;
+ esac
+}
+
+do_configure() {
+ set_arch
+ oe_runmake allnoconfig ARCH=$ARCH
+}
+
+do_compile () {
+}
+
+do_install() {
+ set_arch
+ oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix} ARCH=$ARCH
+}
+
+do_install_append_arm() {
+ cp ${WORKDIR}/procinfo.h ${D}${includedir}/asm/
+}
+
+STAGE_TEMP="${WORKDIR}/temp-staging"
+
+do_stage () {
+ set_arch
+ echo $ARCH
+ rm -rf ${STAGE_TEMP}
+ mkdir -p ${STAGE_TEMP}
+ oe_runmake headers_install INSTALL_HDR_PATH=${STAGE_TEMP}${exec_prefix} ARCH=$ARCH
+ if [ "$ARCH" = "arm" ]; then
+ cp ${WORKDIR}/procinfo.h ${STAGE_TEMP}${includedir}/asm/
+ fi
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm ${STAGING_INCDIR}/asm-generic
+ cp -pfLR ${STAGE_TEMP}${includedir}/linux ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm ${STAGING_INCDIR}/
+ cp -pfLR ${STAGE_TEMP}${includedir}/asm-generic ${STAGING_INCDIR}/
+}
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.7.0.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.7.0.bb
new file mode 100644
index 0000000000..1c7a5885d2
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.7.0.bb
@@ -0,0 +1,47 @@
+require linux-libc-headers.inc
+
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r4"
+# NOTE: no need to package these headers, since the c library includes them.
+PACKAGES = ""
+
+SRC_URI = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${PV}.tar.bz2 \
+ file://sh-missing.patch;patch=1 \
+ file://keyboard.patch;patch=1"
+S = "${WORKDIR}/linux-libc-headers-${PV}"
+
+do_configure () {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=ppc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+ if test ! -e include/asm-$ARCH; then
+ oefatal unable to create asm symlink in kernel headers
+ fi
+ cp -pPR "include/asm-$ARCH" "include/asm"
+ if test "$ARCH" = "arm"; then
+ cp -pPR include/asm/arch-ebsa285 include/asm/arch
+ elif test "$ARCH" = "sh"; then
+ cp -pPR include/asm/cpu-${TARGET_ARCH} include/asm/cpu || die "unable to create include/asm/cpu"
+ fi
+}
+
+do_stage () {
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm
+ cp -pfLR include/linux ${STAGING_INCDIR}/
+ cp -pfLR include/asm ${STAGING_INCDIR}/
+ ln -sf ${STAGING_KERNEL_DIR}/include/linux/wireless.h ${STAGING_INCDIR}/linux/wireless.h
+}
diff --git a/recipes/linux-libc-headers/linux-libc-headers_2.6.8.1.bb b/recipes/linux-libc-headers/linux-libc-headers_2.6.8.1.bb
new file mode 100644
index 0000000000..5e1c71ef1f
--- /dev/null
+++ b/recipes/linux-libc-headers/linux-libc-headers_2.6.8.1.bb
@@ -0,0 +1,54 @@
+require linux-libc-headers.inc
+
+HOMEPAGE = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/"
+# license note from the package:
+# Linux-libc-headers are derived from linux kernel headers. For license of a
+# particular header, check it's content, and if copyright notice isn't present,
+# standard linux kernel license applies.
+# since we assume GPL for linux i think we can also assume it here
+INHIBIT_DEFAULT_DEPS = "1"
+PR = "r8"
+
+# NOTE: no need to package these headers, since the c library includes them.
+PACKAGES = ""
+
+SRC_URI = "http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${PV}.tar.bz2 \
+ file://mips-asm-atomic-system.diff;patch=1;pnum=0 \
+ file://keyboard.patch;patch=1"
+
+S = "${WORKDIR}/linux-libc-headers-${PV}"
+
+do_configure () {
+ case ${TARGET_ARCH} in
+ alpha*) ARCH=alpha ;;
+ arm*) ARCH=arm ;;
+ cris*) ARCH=cris ;;
+ hppa*) ARCH=parisc ;;
+ i*86*) ARCH=i386 ;;
+ ia64*) ARCH=ia64 ;;
+ mips*) ARCH=mips ;;
+ m68k*) ARCH=m68k ;;
+ powerpc*) ARCH=ppc ;;
+ s390*) ARCH=s390 ;;
+ sh*) ARCH=sh ;;
+ sparc64*) ARCH=sparc64 ;;
+ sparc*) ARCH=sparc ;;
+ x86_64*) ARCH=x86_64 ;;
+ esac
+ if test ! -e include/asm-$ARCH; then
+ oefatal unable to create asm symlink in kernel headers
+ fi
+ cp -pPR "include/asm-$ARCH" "include/asm"
+ if test "$ARCH" = "arm"; then
+ cp -pPR include/asm/arch-ebsa285 include/asm/arch
+ elif test "$ARCH" = "sh"; then
+ cp -pPR include/asm/cpu-${TARGET_ARCH} include/asm/cpu || die "unable to create include/asm/cpu"
+ fi
+}
+
+do_stage () {
+ install -d ${STAGING_INCDIR}
+ rm -rf ${STAGING_INCDIR}/linux ${STAGING_INCDIR}/asm
+ cp -pfLR include/linux ${STAGING_INCDIR}/
+ cp -pfLR include/asm ${STAGING_INCDIR}/
+}