diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2007-02-24 11:00:05 +0000 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2007-02-24 11:00:05 +0000 |
commit | 1906cf93f86d8d66f45f90380a8d3da25c087ee5 (patch) | |
tree | 90916c99abe1f1ec26709ee420e6c349eda4670a /patches/uClibc | |
parent | 2609573aede4ce198b3462976725b25eb1637d2e (diff) | |
download | crosstool-ng-1906cf93f86d8d66f45f90380a8d3da25c087ee5.tar.gz crosstool-ng-1906cf93f86d8d66f45f90380a8d3da25c087ee5.tar.bz2 crosstool-ng-1906cf93f86d8d66f45f90380a8d3da25c087ee5.zip |
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
Diffstat (limited to 'patches/uClibc')
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 00000000..ab6c2553 --- /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 00000000..2fefe83e --- /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 00000000..ca0568ca --- /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 00000000..f449ad6a --- /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 00000000..b07ccdb9 --- /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 00000000..2cc9bcb5 --- /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 00000000..285feed7 --- /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 00000000..ab6c2553 --- /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 00000000..4b424678 --- /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 00000000..ca0568ca --- /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 00000000..b07ccdb9 --- /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 00000000..2cc9bcb5 --- /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 00000000..285feed7 --- /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 00000000..4436bfe1 --- /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 00000000..476525be --- /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 00000000..ca0568ca --- /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 00000000..b07ccdb9 --- /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 00000000..0311c83a --- /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 00000000..2cc9bcb5 --- /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 00000000..285feed7 --- /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 |