summaryrefslogtreecommitdiff
path: root/patches/uClibc
diff options
context:
space:
mode:
Diffstat (limited to 'patches/uClibc')
-rw-r--r--patches/uClibc/0.9.28.1/000-string-functions.patch14
-rw-r--r--patches/uClibc/0.9.28.1/001-install_dev.patch22
-rw-r--r--patches/uClibc/0.9.28.1/002-no_LFS-no_readahead.patch14
-rw-r--r--patches/uClibc/0.9.28.1/003-time-locale.patch15
-rw-r--r--patches/uClibc/0.9.28.1/004-uClibc_ctype.patch17
-rw-r--r--patches/uClibc/0.9.28.1/200-custom-ISA.patch31
-rw-r--r--patches/uClibc/0.9.28.1/201-mips-asm.h.patch41
-rw-r--r--patches/uClibc/0.9.28.2/000-string-functions.patch14
-rw-r--r--patches/uClibc/0.9.28.2/001-install_dev.patch22
-rw-r--r--patches/uClibc/0.9.28.2/002-no_LFS-no_readahead.patch14
-rw-r--r--patches/uClibc/0.9.28.2/004-uClibc_ctype.patch17
-rw-r--r--patches/uClibc/0.9.28.2/200-custom-ISA.patch31
-rw-r--r--patches/uClibc/0.9.28.2/201-mips-asm.h.patch41
-rw-r--r--patches/uClibc/0.9.28/000-string-functions.patch11
-rw-r--r--patches/uClibc/0.9.28/001-install_dev.patch39
-rw-r--r--patches/uClibc/0.9.28/002-no_LFS-no_readahead.patch14
-rw-r--r--patches/uClibc/0.9.28/004-uClibc_ctype.patch17
-rw-r--r--patches/uClibc/0.9.28/005-fix_includes.sh.patch316
-rw-r--r--patches/uClibc/0.9.28/200-custom-ISA.patch31
-rw-r--r--patches/uClibc/0.9.28/201-mips-asm.h.patch41
20 files changed, 762 insertions, 0 deletions
diff --git a/patches/uClibc/0.9.28.1/000-string-functions.patch b/patches/uClibc/0.9.28.1/000-string-functions.patch
new file mode 100644
index 0000000..ab6c255
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/000-string-functions.patch
@@ -0,0 +1,14 @@
+Give preference to target-optimised functions over glibc's ones,
+which in turn ahave precedence over generic ones.
+
+--- uClibc.orig/libc/Makefile 2005-07-20 08:10:44.000000000 +0200
++++ uclibc/libc/Makefile 2005-07-28 13:33:40.000000000 +0200
+@@ -59,7 +59,7 @@
+ $(AR) dN 2 $(LIBNAME) $$objs && \
+ $(AR) dN 2 $(LIBNAME) $$objs
+ @for objfile in obj.signal \
+- obj.string.generic obj.string.$(TARGET_ARCH) obj.string \
++ obj.string obj.string.generic obj.string.$(TARGET_ARCH) \
+ obj.sysdeps.common obj.sysdeps.$(TARGET_ARCH) ; do \
+ if [ -e $$objfile ] ; then \
+ echo $(AR) $(ARFLAGS) $(LIBNAME) $$objfile ; \
diff --git a/patches/uClibc/0.9.28.1/001-install_dev.patch b/patches/uClibc/0.9.28.1/001-install_dev.patch
new file mode 100644
index 0000000..2fefe83
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/001-install_dev.patch
@@ -0,0 +1,22 @@
+We know that the kernel headers are in place. Don't try to install them.
+
+diff -dur uClibc-0.9.28.1.orig/Makefile uClibc-0.9.28.1/Makefile
+--- uClibc-0.9.28.1.orig/Makefile 2007-01-28 06:38:00.000000000 +0100
++++ uClibc-0.9.28.1/Makefile 2007-01-28 18:55:46.000000000 +0100
+@@ -158,12 +158,10 @@
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
+ -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
+- if [ "$(KERNEL_SOURCE)" = "$(DEVEL_PREFIX)" ] ; then \
+- extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
+- else \
+- extra_exclude="" ; \
+- fi ; \
+- tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
++ extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
++ tar -chf - include --exclude .svn --exclude CVS \
++ --exclude include/linux \
++ --exclude include/asm'*' \
+ | tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
+ ifneq ($(strip $(UCLIBC_HAS_FLOATS)),y)
+ # Remove floating point related headers since float support is disabled.
diff --git a/patches/uClibc/0.9.28.1/002-no_LFS-no_readahead.patch b/patches/uClibc/0.9.28.1/002-no_LFS-no_readahead.patch
new file mode 100644
index 0000000..ca0568c
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/002-no_LFS-no_readahead.patch
@@ -0,0 +1,14 @@
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile 2007-01-26 00:54:19.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile 2007-02-01 08:44:37.000000000 +0100
+@@ -25,6 +25,10 @@
+ SRCS := $(filter-out sbrk.c,$(SRCS))
+ endif
+
++ifneq ($(strip $(UCLIBC_HAS_LFS)),y)
++SRCS := $(filter-out readahead.c,$(SRCS))
++endif
++
+ ifneq ($(strip $(UCLIBC_HAS_SSP)),y)
+ SRCS := $(filter-out ssp.c,$(SRCS))
+ endif
diff --git a/patches/uClibc/0.9.28.1/003-time-locale.patch b/patches/uClibc/0.9.28.1/003-time-locale.patch
new file mode 100644
index 0000000..f449ad6
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/003-time-locale.patch
@@ -0,0 +1,15 @@
+Index: libc/misc/time/time.c
+===================================================================
+--- a/libc/misc/time/time.c (revision 17534)
++++ b/libc/misc/time/time.c (revision 17647)
+@@ -158,7 +158,9 @@
+ #endif
+
+ #if defined (L_tzset) || defined (L_localtime_r) || defined(L_strftime) || \
+- defined(L__time_mktime) || defined(L__time_mktime_tzi)
++ defined(L__time_mktime) || defined(L__time_mktime_tzi) || \
++ ((defined(L_strftime) || defined(L_strftime_l)) && \
++ defined(__UCLIBC_HAS_XLOCALE__))
+
+ void _time_tzset (int);
+
diff --git a/patches/uClibc/0.9.28.1/004-uClibc_ctype.patch b/patches/uClibc/0.9.28.1/004-uClibc_ctype.patch
new file mode 100644
index 0000000..b07ccdb
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/004-uClibc_ctype.patch
@@ -0,0 +1,17 @@
+diff -urN uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h
+--- uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h Fri Jun 3 13:30:25 2005
++++ uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h Fri Jun 3 13:30:39 2005
+@@ -34,11 +34,11 @@
+
+ /* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
+
+-typedef __uint16_t __ctype_mask_t;
++typedef __uint32_t __ctype_mask_t;
+
+ #ifdef __UCLIBC_HAS_CTYPE_SIGNED__
+
+-typedef __int16_t __ctype_touplow_t;
++typedef __int32_t __ctype_touplow_t;
+ #define __UCLIBC_CTYPE_B_TBL_OFFSET 128
+ #define __UCLIBC_CTYPE_TO_TBL_OFFSET 128
+
diff --git a/patches/uClibc/0.9.28.1/200-custom-ISA.patch b/patches/uClibc/0.9.28.1/200-custom-ISA.patch
new file mode 100644
index 0000000..2cc9bcb
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/200-custom-ISA.patch
@@ -0,0 +1,31 @@
+diff -dur uClibc-0.9.28.orig/Rules.mak uClibc-0.9.28/Rules.mak
+--- uClibc-0.9.28.orig/Rules.mak 2005-08-18 00:49:49.000000000 +0200
++++ uClibc-0.9.28/Rules.mak 2007-01-30 10:53:34.000000000 +0100
+@@ -168,6 +168,7 @@
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
++ CPU_CFLAGS-$(CONFIG_MIPS_ISA_CUSTOM)+=-march=$(CONFIG_MIPS_CPU_CFLAGS_CUSTOM)
+ endif
+
+ ifeq ($(strip $(TARGET_ARCH)),sh)
+diff -dur uClibc-0.9.28.orig/extra/Configs/Config.mips uClibc-0.9.28/extra/Configs/Config.mips
+--- uClibc-0.9.28.orig/extra/Configs/Config.mips 2005-08-18 00:49:41.000000000 +0200
++++ uClibc-0.9.28/extra/Configs/Config.mips 2007-01-30 10:52:12.000000000 +0100
+@@ -63,4 +63,16 @@
+ config CONFIG_MIPS_ISA_MIPS64
+ bool "MIPS64"
+
++config CONFIG_MIPS_ISA_CUSTOM
++ bool "Custom"
++
+ endchoice
++
++config CONFIG_MIPS_CPU_CFLAGS_CUSTOM
++ string
++ prompt "Custon ISA"
++ depends on CONFIG_MIPS_ISA_CUSTOM
++ default ""
++ help
++ Enter your custom ISA here (eg: lx4189!).
++
diff --git a/patches/uClibc/0.9.28.1/201-mips-asm.h.patch b/patches/uClibc/0.9.28.1/201-mips-asm.h.patch
new file mode 100644
index 0000000..285feed
--- /dev/null
+++ b/patches/uClibc/0.9.28.1/201-mips-asm.h.patch
@@ -0,0 +1,41 @@
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S 2007-02-07 10:41:34.000000000 +0100
+@@ -24,7 +24,7 @@
+ #include <sys/regdef.h>
+ #define _ERRNO_H 1
+ #include <bits/errno.h>
+-#include <asm/asm.h>
++#include <sys/asm.h>
+
+ /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */
+
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S 2007-02-07 11:16:52.000000000 +0100
+@@ -3,9 +3,9 @@
+ /*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */
+
+ #include <features.h>
+-#include <asm/asm.h>
++#include <sys/asm.h>
+ #include <asm/unistd.h>
+-#include <asm/regdef.h>
++#include <sys/regdef.h>
+
+ .globl pipe
+ .ent pipe, 0
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S 2007-02-07 11:17:03.000000000 +0100
+@@ -17,8 +17,8 @@
+ 02111-1307 USA. */
+
+ #include <features.h>
+-#include <asm/asm.h>
+-#include <asm/regdef.h>
++#include <sys/asm.h>
++#include <sys/regdef.h>
+
+ #ifdef __PIC__
+ .option pic2
diff --git a/patches/uClibc/0.9.28.2/000-string-functions.patch b/patches/uClibc/0.9.28.2/000-string-functions.patch
new file mode 100644
index 0000000..ab6c255
--- /dev/null
+++ b/patches/uClibc/0.9.28.2/000-string-functions.patch
@@ -0,0 +1,14 @@
+Give preference to target-optimised functions over glibc's ones,
+which in turn ahave precedence over generic ones.
+
+--- uClibc.orig/libc/Makefile 2005-07-20 08:10:44.000000000 +0200
++++ uclibc/libc/Makefile 2005-07-28 13:33:40.000000000 +0200
+@@ -59,7 +59,7 @@
+ $(AR) dN 2 $(LIBNAME) $$objs && \
+ $(AR) dN 2 $(LIBNAME) $$objs
+ @for objfile in obj.signal \
+- obj.string.generic obj.string.$(TARGET_ARCH) obj.string \
++ obj.string obj.string.generic obj.string.$(TARGET_ARCH) \
+ obj.sysdeps.common obj.sysdeps.$(TARGET_ARCH) ; do \
+ if [ -e $$objfile ] ; then \
+ echo $(AR) $(ARFLAGS) $(LIBNAME) $$objfile ; \
diff --git a/patches/uClibc/0.9.28.2/001-install_dev.patch b/patches/uClibc/0.9.28.2/001-install_dev.patch
new file mode 100644
index 0000000..4b42467
--- /dev/null
+++ b/patches/uClibc/0.9.28.2/001-install_dev.patch
@@ -0,0 +1,22 @@
+We know that the kernel headers are in place. Don't try to install them.
+
+diff -dur uClibc-0.9.28.1.orig/Makefile uClibc-0.9.28.1/Makefile
+--- uClibc-0.9.28.1.orig/Makefile 2007-01-28 06:38:00.000000000 +0100
++++ uClibc-0.9.28.1/Makefile 2007-01-28 18:55:46.000000000 +0100
+@@ -158,12 +158,10 @@
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
+ -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
+- if [ "$(KERNEL_SOURCE)" = "$(DEVEL_PREFIX)" ] ; then \
+- extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
+- else \
+- extra_exclude="" ; \
+- fi ; \
+- tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
++ extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
++ tar -chf - include --exclude .svn --exclude CVS \
++ --exclude include/linux \
++ --exclude include/asm'*' \
+ | tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
+ echo '/* Dont use _syscall#() macros; use the syscall() function */' > \
+ $(PREFIX)$(DEVEL_PREFIX)include/bits/syscalls.h
diff --git a/patches/uClibc/0.9.28.2/002-no_LFS-no_readahead.patch b/patches/uClibc/0.9.28.2/002-no_LFS-no_readahead.patch
new file mode 100644
index 0000000..ca0568c
--- /dev/null
+++ b/patches/uClibc/0.9.28.2/002-no_LFS-no_readahead.patch
@@ -0,0 +1,14 @@
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile 2007-01-26 00:54:19.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile 2007-02-01 08:44:37.000000000 +0100
+@@ -25,6 +25,10 @@
+ SRCS := $(filter-out sbrk.c,$(SRCS))
+ endif
+
++ifneq ($(strip $(UCLIBC_HAS_LFS)),y)
++SRCS := $(filter-out readahead.c,$(SRCS))
++endif
++
+ ifneq ($(strip $(UCLIBC_HAS_SSP)),y)
+ SRCS := $(filter-out ssp.c,$(SRCS))
+ endif
diff --git a/patches/uClibc/0.9.28.2/004-uClibc_ctype.patch b/patches/uClibc/0.9.28.2/004-uClibc_ctype.patch
new file mode 100644
index 0000000..b07ccdb
--- /dev/null
+++ b/patches/uClibc/0.9.28.2/004-uClibc_ctype.patch
@@ -0,0 +1,17 @@
+diff -urN uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h
+--- uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h Fri Jun 3 13:30:25 2005
++++ uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h Fri Jun 3 13:30:39 2005
+@@ -34,11 +34,11 @@
+
+ /* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
+
+-typedef __uint16_t __ctype_mask_t;
++typedef __uint32_t __ctype_mask_t;
+
+ #ifdef __UCLIBC_HAS_CTYPE_SIGNED__
+
+-typedef __int16_t __ctype_touplow_t;
++typedef __int32_t __ctype_touplow_t;
+ #define __UCLIBC_CTYPE_B_TBL_OFFSET 128
+ #define __UCLIBC_CTYPE_TO_TBL_OFFSET 128
+
diff --git a/patches/uClibc/0.9.28.2/200-custom-ISA.patch b/patches/uClibc/0.9.28.2/200-custom-ISA.patch
new file mode 100644
index 0000000..2cc9bcb
--- /dev/null
+++ b/patches/uClibc/0.9.28.2/200-custom-ISA.patch
@@ -0,0 +1,31 @@
+diff -dur uClibc-0.9.28.orig/Rules.mak uClibc-0.9.28/Rules.mak
+--- uClibc-0.9.28.orig/Rules.mak 2005-08-18 00:49:49.000000000 +0200
++++ uClibc-0.9.28/Rules.mak 2007-01-30 10:53:34.000000000 +0100
+@@ -168,6 +168,7 @@
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
++ CPU_CFLAGS-$(CONFIG_MIPS_ISA_CUSTOM)+=-march=$(CONFIG_MIPS_CPU_CFLAGS_CUSTOM)
+ endif
+
+ ifeq ($(strip $(TARGET_ARCH)),sh)
+diff -dur uClibc-0.9.28.orig/extra/Configs/Config.mips uClibc-0.9.28/extra/Configs/Config.mips
+--- uClibc-0.9.28.orig/extra/Configs/Config.mips 2005-08-18 00:49:41.000000000 +0200
++++ uClibc-0.9.28/extra/Configs/Config.mips 2007-01-30 10:52:12.000000000 +0100
+@@ -63,4 +63,16 @@
+ config CONFIG_MIPS_ISA_MIPS64
+ bool "MIPS64"
+
++config CONFIG_MIPS_ISA_CUSTOM
++ bool "Custom"
++
+ endchoice
++
++config CONFIG_MIPS_CPU_CFLAGS_CUSTOM
++ string
++ prompt "Custon ISA"
++ depends on CONFIG_MIPS_ISA_CUSTOM
++ default ""
++ help
++ Enter your custom ISA here (eg: lx4189!).
++
diff --git a/patches/uClibc/0.9.28.2/201-mips-asm.h.patch b/patches/uClibc/0.9.28.2/201-mips-asm.h.patch
new file mode 100644
index 0000000..285feed
--- /dev/null
+++ b/patches/uClibc/0.9.28.2/201-mips-asm.h.patch
@@ -0,0 +1,41 @@
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S 2007-02-07 10:41:34.000000000 +0100
+@@ -24,7 +24,7 @@
+ #include <sys/regdef.h>
+ #define _ERRNO_H 1
+ #include <bits/errno.h>
+-#include <asm/asm.h>
++#include <sys/asm.h>
+
+ /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */
+
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S 2007-02-07 11:16:52.000000000 +0100
+@@ -3,9 +3,9 @@
+ /*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */
+
+ #include <features.h>
+-#include <asm/asm.h>
++#include <sys/asm.h>
+ #include <asm/unistd.h>
+-#include <asm/regdef.h>
++#include <sys/regdef.h>
+
+ .globl pipe
+ .ent pipe, 0
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S 2007-02-07 11:17:03.000000000 +0100
+@@ -17,8 +17,8 @@
+ 02111-1307 USA. */
+
+ #include <features.h>
+-#include <asm/asm.h>
+-#include <asm/regdef.h>
++#include <sys/asm.h>
++#include <sys/regdef.h>
+
+ #ifdef __PIC__
+ .option pic2
diff --git a/patches/uClibc/0.9.28/000-string-functions.patch b/patches/uClibc/0.9.28/000-string-functions.patch
new file mode 100644
index 0000000..4436bfe
--- /dev/null
+++ b/patches/uClibc/0.9.28/000-string-functions.patch
@@ -0,0 +1,11 @@
+--- uClibc.orig/libc/Makefile 2005-07-20 08:10:44.000000000 +0200
++++ uclibc/libc/Makefile 2005-07-28 13:33:40.000000000 +0200
+@@ -59,7 +59,7 @@
+ $(AR) dN 2 $(LIBNAME) $$objs && \
+ $(AR) dN 2 $(LIBNAME) $$objs
+ @for objfile in obj.signal \
+- obj.string.generic obj.string.$(TARGET_ARCH) obj.string \
++ obj.string obj.string.generic obj.string.$(TARGET_ARCH) \
+ obj.sysdeps.common obj.sysdeps.$(TARGET_ARCH) ; do \
+ if [ -e $$objfile ] ; then \
+ echo $(AR) $(ARFLAGS) $(LIBNAME) $$objfile ; \
diff --git a/patches/uClibc/0.9.28/001-install_dev.patch b/patches/uClibc/0.9.28/001-install_dev.patch
new file mode 100644
index 0000000..476525b
--- /dev/null
+++ b/patches/uClibc/0.9.28/001-install_dev.patch
@@ -0,0 +1,39 @@
+There are at least three weird glitches in the Makefile:
+ - the test operator is a dual-equal sign (==) when it should be a single one (=);
+ - the exclude options are not accepted as is by GNU tar;
+ - how on earth could KERNEL_SOURCE possibly be equal to DEVEL_PREFIX ???
+
+We (Cedric DUVAL and I, Yann E. MORIN) are not quite sure why it is that way.
+We're not quite sure either on how to solve this.
+
+What we need is to built a toolchain; in no way we need to install the linux headers.
+ ==> systematically exclude them from the [s]tar command.
+
+This patch is inspired by the svn repository of uClibc as of 20060209.
+diff -dur /home/ymorin/dev/uClibc-0.9.28/Makefile uClibc-0.9.28/Makefile
+--- /home/ymorin/dev/uClibc-0.9.28/Makefile 2005-08-18 00:49:49.000000000 +0200
++++ uClibc-0.9.28/Makefile 2006-02-09 17:06:58.000000000 +0100
+@@ -158,12 +158,17 @@
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
+ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
+ -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
+- if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \
+- extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
+- else \
+- extra_exclude="" ; \
+- fi ; \
+- tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
++# if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \
++# extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
++# else \
++# extra_exclude="" ; \
++# fi ; \
++# tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
++# | tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
++ printf ".svn\n.cvsignore\nCVS\n" > tar_exclude ; \
++ ls -1d include/linux include/asm* >> tar_exclude ; \
++ tar -chf - -X tar_exclude include \
+ | tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
++ rm -f tar_exclude
+ ifneq ($(strip $(UCLIBC_HAS_FLOATS)),y)
+ # Remove floating point related headers since float support is disabled.
diff --git a/patches/uClibc/0.9.28/002-no_LFS-no_readahead.patch b/patches/uClibc/0.9.28/002-no_LFS-no_readahead.patch
new file mode 100644
index 0000000..ca0568c
--- /dev/null
+++ b/patches/uClibc/0.9.28/002-no_LFS-no_readahead.patch
@@ -0,0 +1,14 @@
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/common/Makefile 2007-01-26 00:54:19.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/common/Makefile 2007-02-01 08:44:37.000000000 +0100
+@@ -25,6 +25,10 @@
+ SRCS := $(filter-out sbrk.c,$(SRCS))
+ endif
+
++ifneq ($(strip $(UCLIBC_HAS_LFS)),y)
++SRCS := $(filter-out readahead.c,$(SRCS))
++endif
++
+ ifneq ($(strip $(UCLIBC_HAS_SSP)),y)
+ SRCS := $(filter-out ssp.c,$(SRCS))
+ endif
diff --git a/patches/uClibc/0.9.28/004-uClibc_ctype.patch b/patches/uClibc/0.9.28/004-uClibc_ctype.patch
new file mode 100644
index 0000000..b07ccdb
--- /dev/null
+++ b/patches/uClibc/0.9.28/004-uClibc_ctype.patch
@@ -0,0 +1,17 @@
+diff -urN uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h
+--- uClibc-dist/libc/sysdeps/linux/common/bits/uClibc_touplow.h Fri Jun 3 13:30:25 2005
++++ uClibc/libc/sysdeps/linux/common/bits/uClibc_touplow.h Fri Jun 3 13:30:39 2005
+@@ -34,11 +34,11 @@
+
+ /* glibc uses the equivalent of - typedef __int32_t __ctype_touplow_t; */
+
+-typedef __uint16_t __ctype_mask_t;
++typedef __uint32_t __ctype_mask_t;
+
+ #ifdef __UCLIBC_HAS_CTYPE_SIGNED__
+
+-typedef __int16_t __ctype_touplow_t;
++typedef __int32_t __ctype_touplow_t;
+ #define __UCLIBC_CTYPE_B_TBL_OFFSET 128
+ #define __UCLIBC_CTYPE_TO_TBL_OFFSET 128
+
diff --git a/patches/uClibc/0.9.28/005-fix_includes.sh.patch b/patches/uClibc/0.9.28/005-fix_includes.sh.patch
new file mode 100644
index 0000000..0311c83
--- /dev/null
+++ b/patches/uClibc/0.9.28/005-fix_includes.sh.patch
@@ -0,0 +1,316 @@
+--- uClibc-0.9.28/extra/scripts/fix_includes.sh.orig 2006-12-13 05:44:21.000000000 -0700
++++ uClibc-0.9.28/extra/scripts/fix_includes.sh 2006-12-13 05:44:35.000000000 -0700
+@@ -1,183 +1,155 @@
+ #!/bin/sh
+-# Copyright (C) 2003 Erik Andersen <andersen@uclibc.org>
+ #
+-# This program is free software; you can redistribute it and/or
+-# modify it under the terms of the GNU Library 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 Library General Public License for more details.
+-#
+-# You should have received a copy of the GNU Library General
+-# Public License along with this program; if not, write to the
+-# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+-# Boston, MA 02111-1307 USA
+-
+-usage () {
+- echo ""
+- echo "usage: "`basename $0`" -k KERNEL_SOURCE_DIRECTORY -t TARGET_ARCH"
+- echo ""
+- echo "This utility scans the KERNEL_SOURCE_DIRECTORY directory and"
+- echo "checks that it contains well formed kernel headers suitable"
+- echo "for inclusion as the include/linux/ directory provided by"
+- echo "uClibc."
+- echo ""
+- echo "If the specified kernel headers are present and already"
+- echo "configured for the architecture specified by TARGET_ARCH,"
+- echo "they will be used as-is."
+- echo ""
+- echo "If the specified kernel headers are missing entirely, this"
+- echo "script will return an error."
+- echo ""
+- echo "If the specified kernel headers are present, but are either"
+- echo "not yet configured or are configured for an architecture"
+- echo "different than that specified by TARGET_ARCH, this script"
+- echo "will attempt to 'fix' the kernel headers and make them"
+- echo "suitable for use by uClibc. This fixing process may fail."
+- echo "It is therefore best to always provide kernel headers that"
+- echo "are already configured for the selected architecture."
+- echo ""
+- echo "Most Linux distributions provide 'kernel-headers' packages"
+- echo "that are suitable for use by uClibc."
+- echo ""
+- echo ""
+- exit 1;
++# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
++#
++# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
++#
++
++usage() {
++ echo ""
++ echo "usage: "`basename $0`" -k KERNEL_SOURCE_DIRECTORY -t TARGET_ARCH"
++ echo ""
++ echo "This utility scans the KERNEL_SOURCE_DIRECTORY directory and"
++ echo "checks that it contains well formed kernel headers suitable"
++ echo "for inclusion as the include/linux/ directory provided by"
++ echo "uClibc."
++ echo ""
++ echo "If the specified kernel headers are present and already"
++ echo "configured for the architecture specified by TARGET_ARCH,"
++ echo "they will be used as-is."
++ echo ""
++ echo "If the specified kernel headers are missing entirely, this"
++ echo "script will return an error."
++ echo ""
++ echo "If the specified kernel headers are present, but are either"
++ echo "not yet configured or are configured for an architecture"
++ echo "different than that specified by TARGET_ARCH, this script"
++ echo "will attempt to 'fix' the kernel headers and make them"
++ echo "suitable for use by uClibc. This fixing process may fail."
++ echo "It is therefore best to always provide kernel headers that"
++ echo "are already configured for the selected architecture."
++ echo ""
++ echo "Most Linux distributions provide 'kernel-headers' packages"
++ echo "that are suitable for use by uClibc."
++ echo ""
++ echo ""
++ exit 1
+ }
+
+-HAS_MMU="y";
++
++#
++# Parse our arguments
++#
++HAS_MMU="y"
+ while [ -n "$1" ]; do
+- case $1 in
+- -k ) shift; if [ -n "$1" ]; then KERNEL_SOURCE=$1; shift; else usage; fi; ;;
+- -t ) shift; if [ -n "$1" ]; then TARGET_ARCH=$1; shift; else usage; fi; ;;
+- -n ) shift; HAS_MMU="n"; ;;
+- -* ) usage; ;;
+- * ) usage; ;;
+- esac;
+-done;
++ case $1 in
++ -k ) shift; if [ -n "$1" ]; then KERNEL_SOURCE=$1; shift; else usage; fi; ;;
++ -t ) shift; if [ -n "$1" ]; then TARGET_ARCH=$1; shift; else usage; fi; ;;
++ -n ) shift; HAS_MMU="n"; ;;
++ -* ) usage; ;;
++ * ) usage; ;;
++ esac
++done
+
+-if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
+- echo "";
+- echo "";
+- echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!";
+- echo "Perhaps your kernel source is broken?"
+- echo "";
+- echo "";
+- exit 1;
+-fi;
+
+-if [ ! -d "$KERNEL_SOURCE" ]; then
+- echo "";
+- echo "";
+- echo "$KERNEL_SOURCE is not a directory";
+- echo "";
+- echo "";
+- exit 1;
+-fi;
+-
+-if [ -f "$KERNEL_SOURCE/Makefile" ] ; then
+-# set current VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION
+-eval `sed -n -e 's/^\([A-Z]*\) = \([0-9]*\)$/\1=\2/p' -e 's/^\([A-Z]*\) = \(-[-a-z0-9]*\)$/\1=\2/p' $KERNEL_SOURCE/Makefile`
+-else
+-ver=`grep UTS_RELEASE $KERNEL_SOURCE/include/linux/version.h | cut -d '"' -f 2`
+-VERSION=`echo "$ver" | cut -d '.' -f 1`
+-PATCHLEVEL=`echo "$ver" | cut -d '.' -f 2`
+-if echo "$ver" | grep -q '-' ; then
+-SUBLEVEL=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.//" | cut -d '-' -f 1`
+-EXTRAVERSION=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-//"`
+-else
+-SUBLEVEL=`echo "$ver" | cut -d '.' -f 3`
+-#EXTRAVERSION=
+-fi
++#
++# Perform some sanity checks on our kernel sources
++#
++if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
++ echo ""
++ echo ""
++ echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!"
++ echo "Perhaps your kernel source is broken?"
++ echo ""
++ echo ""
++ exit 1
+ fi
+-if [ -z "$VERSION" -o -z "$PATCHLEVEL" -o -z "$SUBLEVEL" ]
+-then
+- echo "Unable to determine version for kernel headers"
+- echo -e "\tprovided in directory $KERNEL_SOURCE"
+- exit 1
++if [ ! -d "$KERNEL_SOURCE" ]; then
++ echo ""
++ echo ""
++ echo "$KERNEL_SOURCE is not a directory"
++ echo ""
++ echo ""
++ exit 1
+ fi
+
+-if [ "$MAKE_IS_SILENT" != "y" ]; then
+-echo "Current kernel version is $VERSION.$PATCHLEVEL.$SUBLEVEL${EXTRAVERSION}"
+-echo -e "\n"
+-echo "Using kernel headers from $VERSION.$PATCHLEVEL.$SUBLEVEL${EXTRAVERSION} for architecture '$TARGET_ARCH'"
+-echo -e "\tprovided in directory $KERNEL_SOURCE"
+-echo -e "\n"
+-fi
+
++#
+ # Create a symlink to include/asm
+-
++#
+ rm -f include/asm*
+ if [ ! -d "$KERNEL_SOURCE/include/asm" ]; then
+- echo "";
+- echo "";
+- echo "The symlink $KERNEL_SOURCE/include/asm is missing\!";
+- echo "Perhaps you forgot to configure your kernel source?";
+- echo "You really should configure your kernel source tree so I";
+- echo "do not have to try and guess about this sort of thing.";
+- echo ""
+- echo "Attempting to guess a usable value....";
+- echo ""
+- echo "";
+- sleep 1;
+-
+- if [ "$TARGET_ARCH" = "powerpc" ];then
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-ppc include/asm;
+- set +x;
+- elif [ "$TARGET_ARCH" = "mips" ];then
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-mips include/asm;
+- set +x;
+- elif [ "$TARGET_ARCH" = "arm" ];then
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-arm include/asm;
+- set +x;
+- if [ ! -L $KERNEL_SOURCE/include/asm-arm/proc ] ; then
+- if [ ! -L proc ] ; then
+- (cd include/asm;
+- ln -fs proc-armv proc;
+- ln -fs arch-ebsa285 arch);
+- fi
++ echo ""
++ echo ""
++ echo "The symlink $KERNEL_SOURCE/include/asm is missing\!"
++ echo "Perhaps you forgot to configure your kernel source?"
++ echo "You really should configure your kernel source tree so I"
++ echo "do not have to try and guess about this sort of thing."
++ echo ""
++ echo "Attempting to guess a usable value...."
++ echo ""
++ echo ""
++ sleep 1
++
++ if [ "$TARGET_ARCH" = "powerpc" ]; then
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-ppc include/asm
++ set +x
++ elif [ "$TARGET_ARCH" = "mips" ]; then
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-mips include/asm
++ set +x
++ elif [ "$TARGET_ARCH" = "arm" ]; then
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-arm include/asm
++ set +x
++ if [ ! -L $KERNEL_SOURCE/include/asm-arm/proc ]; then
++ if [ ! -L proc ]; then
++ (
++ cd include/asm
++ ln -fs proc-armv proc
++ ln -fs arch-ebsa285 arch
++ )
++ fi
++ fi
++ elif [ "$TARGET_ARCH" = "cris" ]; then
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-cris include/asm
++ set +x
++ elif [ "$HAS_MMU" != "y" ]; then
++ if [ -d $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu ]; then
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu include/asm
++ set +x
++ else
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm
++ set +x
++ fi
++ else
++ set -x
++ ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm
++ set +x
+ fi;
+- elif [ "$TARGET_ARCH" = "cris" ]; then
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-cris include/asm;
+- set +x;
+- elif [ "$HAS_MMU" != "y" ]; then
+- if [ -d $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu ] ; then
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu include/asm;
+- set +x;
+- else
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm;
+- set +x;
+- fi;
+- else
+- set -x;
+- ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm;
+- set +x;
+- fi;
+ else
+-# No guessing required.....
+-ln -fs $KERNEL_SOURCE/include/asm include/asm
+-if [ -e $KERNEL_SOURCE/include/asm-$TARGET_ARCH ] ; then
+-ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm-$TARGET_ARCH
++ # No guessing required.....
++ for x in $KERNEL_SOURCE/include/asm* ; do
++ ln -fs ${x} include/
++ done
+ fi
+-fi;
+
+
++#
+ # Annoyingly, 2.6.x kernel headers also need an include/asm-generic/ directory
+-if [ $VERSION -eq 2 ] && [ $PATCHLEVEL -ge 6 ] ; then
+- ln -fs $KERNEL_SOURCE/include/asm-generic include/asm-generic
+-fi;
++#
++if [ -e $KERNEL_SOURCE/include/asm-generic ]; then
++ rm -f include/asm-generic
++ ln -fs $KERNEL_SOURCE/include/asm-generic include/asm-generic
++fi
+
+
++#
+ # Create the include/linux symlink.
++#
+ rm -f include/linux
+ ln -fs $KERNEL_SOURCE/include/linux include/linux
+-
diff --git a/patches/uClibc/0.9.28/200-custom-ISA.patch b/patches/uClibc/0.9.28/200-custom-ISA.patch
new file mode 100644
index 0000000..2cc9bcb
--- /dev/null
+++ b/patches/uClibc/0.9.28/200-custom-ISA.patch
@@ -0,0 +1,31 @@
+diff -dur uClibc-0.9.28.orig/Rules.mak uClibc-0.9.28/Rules.mak
+--- uClibc-0.9.28.orig/Rules.mak 2005-08-18 00:49:49.000000000 +0200
++++ uClibc-0.9.28/Rules.mak 2007-01-30 10:53:34.000000000 +0100
+@@ -168,6 +168,7 @@
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_4)+=-mips4 -mtune=mips4
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
+ CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
++ CPU_CFLAGS-$(CONFIG_MIPS_ISA_CUSTOM)+=-march=$(CONFIG_MIPS_CPU_CFLAGS_CUSTOM)
+ endif
+
+ ifeq ($(strip $(TARGET_ARCH)),sh)
+diff -dur uClibc-0.9.28.orig/extra/Configs/Config.mips uClibc-0.9.28/extra/Configs/Config.mips
+--- uClibc-0.9.28.orig/extra/Configs/Config.mips 2005-08-18 00:49:41.000000000 +0200
++++ uClibc-0.9.28/extra/Configs/Config.mips 2007-01-30 10:52:12.000000000 +0100
+@@ -63,4 +63,16 @@
+ config CONFIG_MIPS_ISA_MIPS64
+ bool "MIPS64"
+
++config CONFIG_MIPS_ISA_CUSTOM
++ bool "Custom"
++
+ endchoice
++
++config CONFIG_MIPS_CPU_CFLAGS_CUSTOM
++ string
++ prompt "Custon ISA"
++ depends on CONFIG_MIPS_ISA_CUSTOM
++ default ""
++ help
++ Enter your custom ISA here (eg: lx4189!).
++
diff --git a/patches/uClibc/0.9.28/201-mips-asm.h.patch b/patches/uClibc/0.9.28/201-mips-asm.h.patch
new file mode 100644
index 0000000..285feed
--- /dev/null
+++ b/patches/uClibc/0.9.28/201-mips-asm.h.patch
@@ -0,0 +1,41 @@
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/clone.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/clone.S 2007-02-07 10:41:34.000000000 +0100
+@@ -24,7 +24,7 @@
+ #include <sys/regdef.h>
+ #define _ERRNO_H 1
+ #include <bits/errno.h>
+-#include <asm/asm.h>
++#include <sys/asm.h>
+
+ /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg) */
+
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/pipe.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/pipe.S 2007-02-07 11:16:52.000000000 +0100
+@@ -3,9 +3,9 @@
+ /*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */
+
+ #include <features.h>
+-#include <asm/asm.h>
++#include <sys/asm.h>
+ #include <asm/unistd.h>
+-#include <asm/regdef.h>
++#include <sys/regdef.h>
+
+ .globl pipe
+ .ent pipe, 0
+diff -dur uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S
+--- uClibc-0.9.28.1.orig/libc/sysdeps/linux/mips/syscall.S 2007-02-07 11:18:12.000000000 +0100
++++ uClibc-0.9.28.1/libc/sysdeps/linux/mips/syscall.S 2007-02-07 11:17:03.000000000 +0100
+@@ -17,8 +17,8 @@
+ 02111-1307 USA. */
+
+ #include <features.h>
+-#include <asm/asm.h>
+-#include <asm/regdef.h>
++#include <sys/asm.h>
++#include <sys/regdef.h>
+
+ #ifdef __PIC__
+ .option pic2