diff options
17 files changed, 1153 insertions, 144 deletions
| diff --git a/toolchain/binutils/2.14.90.0.6/002-max-pagesize.patch b/toolchain/binutils/2.14.90.0.6/002-max-pagesize.patch deleted file mode 100644 index a8ae110e8..000000000 --- a/toolchain/binutils/2.14.90.0.6/002-max-pagesize.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN binutils-2.14.90.0.8.test/bfd/elf32-mips.c binutils-2.14.90.0.8/bfd/elf32-mips.c ---- binutils-2.14.90.0.8.test/bfd/elf32-mips.c	2004-01-14 22:07:43.000000000 +0100 -+++ binutils-2.14.90.0.8/bfd/elf32-mips.c	2005-03-03 23:44:00.000000000 +0100 -@@ -1611,7 +1611,7 @@ -  - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses -    page sizes of up to that limit, so we need to respect it.  */ --#define ELF_MAXPAGESIZE			0x10000 -+#define ELF_MAXPAGESIZE			0x1000 - #define elf32_bed			elf32_tradbed -  - /* Include the target file again for this target.  */ diff --git a/toolchain/binutils/2.14.90.0.6/210-cflags.patch b/toolchain/binutils/2.14.90.0.6/210-cflags.patch deleted file mode 100644 index dc67d3c4e..000000000 --- a/toolchain/binutils/2.14.90.0.6/210-cflags.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am ---- binutils-2.14.90.0.6/bfd/doc/Makefile.am	2003-07-23 10:08:09.000000000 -0500 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am	2004-03-01 16:05:16.000000000 -0600 -@@ -55,10 +55,10 @@ - MKDOC = chew$(EXEEXT_FOR_BUILD) -  - $(MKDOC): chew.o --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) -  - chew.o: chew.c --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c -  - protos: libbfd.h libcoff.h bfd.h -  -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in ---- binutils-2.14.90.0.6/bfd/doc/Makefile.in	2003-07-23 10:08:09.000000000 -0500 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in	2004-03-01 16:05:03.000000000 -0600 -@@ -469,10 +469,10 @@ -  -  - $(MKDOC): chew.o --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) -  - chew.o: chew.c --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c -  - protos: libbfd.h libcoff.h bfd.h -  diff --git a/toolchain/binutils/2.14.90.0.7/002-max-pagesize.patch b/toolchain/binutils/2.14.90.0.7/002-max-pagesize.patch deleted file mode 100644 index a8ae110e8..000000000 --- a/toolchain/binutils/2.14.90.0.7/002-max-pagesize.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN binutils-2.14.90.0.8.test/bfd/elf32-mips.c binutils-2.14.90.0.8/bfd/elf32-mips.c ---- binutils-2.14.90.0.8.test/bfd/elf32-mips.c	2004-01-14 22:07:43.000000000 +0100 -+++ binutils-2.14.90.0.8/bfd/elf32-mips.c	2005-03-03 23:44:00.000000000 +0100 -@@ -1611,7 +1611,7 @@ -  - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses -    page sizes of up to that limit, so we need to respect it.  */ --#define ELF_MAXPAGESIZE			0x10000 -+#define ELF_MAXPAGESIZE			0x1000 - #define elf32_bed			elf32_tradbed -  - /* Include the target file again for this target.  */ diff --git a/toolchain/binutils/2.14.90.0.7/210-cflags.patch b/toolchain/binutils/2.14.90.0.7/210-cflags.patch deleted file mode 100644 index dc67d3c4e..000000000 --- a/toolchain/binutils/2.14.90.0.7/210-cflags.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am ---- binutils-2.14.90.0.6/bfd/doc/Makefile.am	2003-07-23 10:08:09.000000000 -0500 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am	2004-03-01 16:05:16.000000000 -0600 -@@ -55,10 +55,10 @@ - MKDOC = chew$(EXEEXT_FOR_BUILD) -  - $(MKDOC): chew.o --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) -  - chew.o: chew.c --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c -  - protos: libbfd.h libcoff.h bfd.h -  -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in ---- binutils-2.14.90.0.6/bfd/doc/Makefile.in	2003-07-23 10:08:09.000000000 -0500 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in	2004-03-01 16:05:03.000000000 -0600 -@@ -469,10 +469,10 @@ -  -  - $(MKDOC): chew.o --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) -  - chew.o: chew.c --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c -  - protos: libbfd.h libcoff.h bfd.h -  diff --git a/toolchain/binutils/2.14.90.0.8/002-max-pagesize.patch b/toolchain/binutils/2.14.90.0.8/002-max-pagesize.patch deleted file mode 100644 index a8ae110e8..000000000 --- a/toolchain/binutils/2.14.90.0.8/002-max-pagesize.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN binutils-2.14.90.0.8.test/bfd/elf32-mips.c binutils-2.14.90.0.8/bfd/elf32-mips.c ---- binutils-2.14.90.0.8.test/bfd/elf32-mips.c	2004-01-14 22:07:43.000000000 +0100 -+++ binutils-2.14.90.0.8/bfd/elf32-mips.c	2005-03-03 23:44:00.000000000 +0100 -@@ -1611,7 +1611,7 @@ -  - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses -    page sizes of up to that limit, so we need to respect it.  */ --#define ELF_MAXPAGESIZE			0x10000 -+#define ELF_MAXPAGESIZE			0x1000 - #define elf32_bed			elf32_tradbed -  - /* Include the target file again for this target.  */ diff --git a/toolchain/binutils/2.15.90.0.3/210-cflags.patch b/toolchain/binutils/2.15.90.0.3/210-cflags.patch deleted file mode 100644 index 29bb5c18d..000000000 --- a/toolchain/binutils/2.15.90.0.3/210-cflags.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am ---- binutils-2.14.90.0.6/bfd/doc/Makefile.am	2003-07-23 10:08:09.000000000 -0500 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am	2004-03-01 16:05:16.000000000 -0600 -@@ -55,10 +55,10 @@ - MKDOC = chew$(EXEEXT_FOR_BUILD) -  - $(MKDOC): chew.o --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) -  - chew.o: chew.c --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c -  - protos: libbfd.h libcoff.h bfd.h -  -diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in ---- binutils-2.14.90.0.6/bfd/doc/Makefile.in	2003-07-23 10:08:09.000000000 -0500 -+++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in	2004-03-01 16:05:03.000000000 -0600 -@@ -472,10 +472,10 @@ -  -  - $(MKDOC): chew.o --	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) -+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) -  - chew.o: chew.c --	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c -+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c -  - protos: libbfd.h libcoff.h bfd.h -  diff --git a/toolchain/binutils/2.15.94.0.2.2/100-uclibc-conf.patch b/toolchain/binutils/2.15.94.0.2.2/100-uclibc-conf.patch new file mode 100644 index 000000000..dc21386f4 --- /dev/null +++ b/toolchain/binutils/2.15.94.0.2.2/100-uclibc-conf.patch @@ -0,0 +1,749 @@ +diff -ur binutils-2.15.94.0.2.orig/bfd/config.bfd binutils-2.15.94.0.2/bfd/config.bfd +--- binutils-2.15.94.0.2.orig/bfd/config.bfd	2004-12-22 15:00:57.219024360 -0500 ++++ binutils-2.15.94.0.2/bfd/config.bfd	2004-12-22 15:01:18.982715776 -0500 +@@ -140,7 +140,7 @@ +     targ_defvec=ecoffalpha_little_vec +     targ_selvecs=bfd_elf64_alpha_vec +     ;; +-  alpha*-*-linux-gnu* | alpha*-*-elf*) ++  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*) +     targ_defvec=bfd_elf64_alpha_vec +     targ_selvecs=ecoffalpha_little_vec +     ;; +@@ -150,7 +150,7 @@ +   alpha*-*-*) +     targ_defvec=ecoffalpha_little_vec +     ;; +-  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) ++  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-linux-uclibc* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) +     targ_defvec=bfd_elf64_ia64_little_vec +     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" +     ;; +@@ -227,7 +227,7 @@ +     targ_defvec=bfd_elf32_littlearm_vec +     targ_selvecs=bfd_elf32_bigarm_vec +     ;; +-  armeb-*-elf | arm*b-*-linux-gnu*) ++  armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*) +     targ_defvec=bfd_elf32_bigarm_vec +     targ_selvecs=bfd_elf32_littlearm_vec +     ;; +@@ -235,8 +235,8 @@ +     targ_defvec=bfd_elf32_littlearm_vec +     targ_selvecs=bfd_elf32_bigarm_vec +     ;; +-  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \ +-  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \ ++  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \ ++  arm*-*-conix* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \ +   arm*-*-eabi* ) +     targ_defvec=bfd_elf32_littlearm_vec +     targ_selvecs=bfd_elf32_bigarm_vec +@@ -381,7 +381,7 @@ +     ;; +  + #ifdef BFD64 +-  hppa*64*-*-linux-gnu*) ++  hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) +     targ_defvec=bfd_elf64_hppa_linux_vec +     targ_selvecs=bfd_elf64_hppa_vec +     ;; +@@ -392,7 +392,7 @@ +     ;; + #endif +  +-  hppa*-*-linux-gnu*) ++  hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) +     targ_defvec=bfd_elf32_hppa_linux_vec +     targ_selvecs=bfd_elf32_hppa_vec +     ;; +@@ -525,7 +525,7 @@ +     targ_selvecs=bfd_elf32_i386_vec +     targ_underscore=yes +     ;; +-  i[3-7]86-*-linux-gnu*) ++  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) +     targ_defvec=bfd_elf32_i386_vec +     targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" +     targ64_selvecs=bfd_elf64_x86_64_vec +@@ -539,7 +539,7 @@ +     targ_defvec=bfd_elf64_x86_64_vec +     targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" +     ;; +-  x86_64-*-linux-gnu*) ++  x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) +     targ_defvec=bfd_elf64_x86_64_vec +     targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" +     ;; +@@ -715,7 +715,7 @@ +     targ_selvecs=bfd_elf32_m68k_vec +     targ_underscore=yes +     ;; +-  m68*-*-linux-gnu*) ++  m68*-*-linux-gnu* | m68*-*-linux-uclibc*) +     targ_defvec=bfd_elf32_m68k_vec +     targ_selvecs=m68klinux_vec +     ;; +@@ -1001,7 +1001,8 @@ +     ;; + #endif +   powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ +-  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ ++  powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \ ++  powerpc-*-rtems* | \ +   powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) +     targ_defvec=bfd_elf32_powerpc_vec +     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" +@@ -1038,8 +1039,8 @@ +     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" +     ;; +   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ +-  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ +-  powerpcle-*-rtems*) ++  powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\ ++  powerpcle-*-vxworks* | powerpcle-*-rtems*) +     targ_defvec=bfd_elf32_powerpcle_vec +     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" +     targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec" +@@ -1209,7 +1210,7 @@ +     targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" +     targ_underscore=yes +     ;; +-  sparc-*-linux-gnu*) ++  sparc-*-linux-gnu* | sparc-*-linux-uclibc*) +     targ_defvec=bfd_elf32_sparc_vec +     targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" +     ;; +@@ -1256,7 +1257,7 @@ +     targ_defvec=sunos_big_vec +     targ_underscore=yes +     ;; +-  sparc64-*-linux-gnu*) ++  sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) +     targ_defvec=bfd_elf64_sparc_vec +     targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" +     ;; +@@ -1325,7 +1326,7 @@ +     targ_underscore=yes +     ;; +  +-  vax-*-linux-gnu*) ++  vax-*-linux-gnu* | vax-*-linux-uclibc*) +     targ_defvec=bfd_elf32_vax_vec +     ;; +  +diff -ur binutils-2.15.94.0.2.orig/bfd/configure binutils-2.15.94.0.2/bfd/configure +--- binutils-2.15.94.0.2.orig/bfd/configure	2004-12-22 15:00:57.221024056 -0500 ++++ binutils-2.15.94.0.2/bfd/configure	2004-12-22 15:01:18.996713648 -0500 +@@ -3583,6 +3583,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -9914,7 +9919,7 @@ +   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) + 	COREFILE='' + 	;; +-  alpha*-*-linux-gnu*) ++  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/alphalinux.h"' + 	;; +@@ -9978,7 +9983,7 @@ + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/i386mach3.h"' + 	;; +-  i[3-7]86-*-linux-gnu*) ++  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/i386linux.h"' + 	;; +@@ -10016,7 +10021,7 @@ + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/hp300bsd.h"' + 	;; +-  m68*-*-linux-gnu*) ++  m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/m68klinux.h"' + 	;; +@@ -10150,7 +10155,7 @@ + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/vaxult2.h"' + 	;; +-  vax-*-linux-gnu*) ++  vax-*-linux-gnu* | vax-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/vaxlinux.h"' + 	;; +diff -ur binutils-2.15.94.0.2.orig/bfd/configure.in binutils-2.15.94.0.2/bfd/configure.in +--- binutils-2.15.94.0.2.orig/bfd/configure.in	2004-12-22 15:00:57.223023752 -0500 ++++ binutils-2.15.94.0.2/bfd/configure.in	2004-12-22 15:01:18.998713344 -0500 +@@ -163,7 +163,7 @@ +   alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) + 	COREFILE='' + 	;; +-  alpha*-*-linux-gnu*) ++  alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/alphalinux.h"' + 	;; +@@ -248,7 +248,7 @@ + 	TRAD_HEADER='"hosts/i386mach3.h"' + 	;; + changequote(,)dnl +-  i[3-7]86-*-linux-gnu*) ++  i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + changequote([,])dnl + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/i386linux.h"' +@@ -289,7 +289,7 @@ + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/hp300bsd.h"' + 	;; +-  m68*-*-linux-gnu*) ++  m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/m68klinux.h"' + 	;; +@@ -375,7 +375,7 @@ + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/vaxult2.h"' + 	;; +-  vax-*-linux-gnu*) ++  vax-*-linux-gnu* | vax-*-linux-uclibc*) + 	COREFILE=trad-core.lo + 	TRAD_HEADER='"hosts/vaxlinux.h"' + 	;; +diff -ur binutils-2.15.94.0.2.orig/binutils/configure binutils-2.15.94.0.2/binutils/configure +--- binutils-2.15.94.0.2.orig/binutils/configure	2004-12-22 15:00:57.351004296 -0500 ++++ binutils-2.15.94.0.2/binutils/configure	2004-12-22 15:01:19.002712736 -0500 +@@ -1575,6 +1575,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -ur binutils-2.15.94.0.2.orig/configure binutils-2.15.94.0.2/configure +--- binutils-2.15.94.0.2.orig/configure	2004-12-22 15:00:57.321008856 -0500 ++++ binutils-2.15.94.0.2/configure	2004-12-22 15:01:19.007711976 -0500 +@@ -1352,6 +1352,18 @@ +   i[3456789]86-*-coff | i[3456789]86-*-elf) +     noconfigdirs="$noconfigdirs ${libgcj}" +     ;; ++  i[3456789]86-*-linux-uclibc*) ++    # This section makes it possible to build newlib natively on linux. ++    # If we are using a cross compiler then don't configure newlib. ++    if test x${is_cross_compiler} != xno ; then ++      noconfigdirs="$noconfigdirs target-newlib" ++    fi ++    noconfigdirs="$noconfigdirs target-libgloss" ++    # If we are not using a cross compiler, do configure newlib. ++    # Note however, that newlib will only be configured in this situation ++    # if the --with-newlib option has been given, because otherwise ++    # 'target-newlib' will appear in skipdirs. ++    ;; +   i[3456789]86-*-linux*) +     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's +     # not build java stuff by default. +diff -ur binutils-2.15.94.0.2.orig/configure.in binutils-2.15.94.0.2/configure.in +--- binutils-2.15.94.0.2.orig/configure.in	2004-12-22 15:00:57.321008856 -0500 ++++ binutils-2.15.94.0.2/configure.in	2004-12-22 15:01:19.010711520 -0500 +@@ -561,6 +561,18 @@ +   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf) +     noconfigdirs="$noconfigdirs ${libgcj}" +     ;; ++  i[[3456789]]86-*-linux-uclibc*) ++    # This section makes it possible to build newlib natively on linux. ++    # If we are using a cross compiler then don't configure newlib. ++    if test x${is_cross_compiler} != xno ; then ++      noconfigdirs="$noconfigdirs target-newlib" ++    fi ++    noconfigdirs="$noconfigdirs target-libgloss" ++    # If we are not using a cross compiler, do configure newlib. ++    # Note however, that newlib will only be configured in this situation ++    # if the --with-newlib option has been given, because otherwise ++    # 'target-newlib' will appear in skipdirs. ++    ;; +   i[[3456789]]86-*-linux*) +     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's +     # not build java stuff by default. +diff -ur binutils-2.15.94.0.2.orig/gas/configure binutils-2.15.94.0.2/gas/configure +--- binutils-2.15.94.0.2.orig/gas/configure	2004-12-22 15:00:57.461987424 -0500 ++++ binutils-2.15.94.0.2/gas/configure	2004-12-22 15:01:19.019710152 -0500 +@@ -3420,6 +3420,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -4256,6 +4261,7 @@ +       alpha*-*-osf*)			fmt=ecoff ;; +       alpha*-*-linuxecoff*)		fmt=ecoff ;; +       alpha*-*-linux-gnu*)		fmt=elf em=linux ;; ++      alpha*-*-linux-uclibc*)		fmt=elf em=linux ;; +       alpha*-*-netbsd*)			fmt=elf em=nbsd ;; +       alpha*-*-openbsd*)		fmt=elf em=obsd ;; +  +@@ -4272,6 +4278,7 @@ +       arm-*-linux*aout*)		fmt=aout em=linux ;; +       arm*-*-linux-gnueabi*)		fmt=elf  em=armlinuxeabi ;; +       arm*-*-linux-gnu*)		fmt=elf  em=linux ;; ++      arm*-*-linux-uclibc*)		fmt=elf  em=linux ;; +       arm*-*-uclinux*)			fmt=elf  em=linux ;; +       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;; +       arm-*-*n*bsd*)			fmt=aout em=nbsd ;; +@@ -4285,6 +4292,7 @@ +  +       cris-*-linux-gnu* | crisv32-*-linux-gnu*) + 					fmt=multi bfd_gas=yes em=linux ;; ++      cris-*-linux-uclibc*)		fmt=multi bfd_gas=yes em=linux ;; +       cris-*-* | crisv32-*-*)		fmt=multi bfd_gas=yes ;; +  +       crx-*-elf*)	    		fmt=elf ;; +@@ -4344,7 +4352,9 @@ +       i386-*-linux*oldld)		fmt=aout em=linux ;; +       i386-*-linux*coff*)		fmt=coff em=linux ;; +       i386-*-linux-gnu*)		fmt=elf em=linux ;; ++      i386-*-linux-uclibc*)		fmt=elf em=linux ;; +       x86_64-*-linux-gnu*)		fmt=elf em=linux ;; ++      x86_64-*-linux-uclibc*)		fmt=elf em=linux ;; +       i386-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;; +       i386-*-sysv[45]*)			fmt=elf ;; +       i386-*-solaris*)			fmt=elf ;; +@@ -4404,6 +4414,7 @@ +       ia64-*-elf*)			fmt=elf ;; +       ia64-*-aix*)			fmt=elf em=ia64aix ;; +       ia64-*-linux-gnu*)		fmt=elf em=linux ;; ++      ia64-*-linux-uclibc*)		fmt=elf em=linux ;; +       ia64-*-hpux*)			fmt=elf em=hpux ;; +       ia64-*-netbsd*)			fmt=elf em=nbsd ;; +  +@@ -4431,6 +4442,7 @@ +       m68k-*-hpux*)			fmt=hp300 em=hp300 ;; +       m68k-*-linux*aout*)		fmt=aout em=linux ;; +       m68k-*-linux-gnu*)		fmt=elf em=linux ;; ++      m68k-*-linux-uclibc*)		fmt=elf em=linux ;; +       m68k-*-uclinux*)			fmt=elf ;; +       m68k-*-gnu*)			fmt=elf ;; +       m68k-*-lynxos*)			fmt=coff em=lynx ;; +@@ -4505,6 +4517,7 @@ +       ppc-*-beos*)			fmt=coff ;; +       ppc-*-*n*bsd* | ppc-*-elf*)	fmt=elf ;; +       ppc-*-eabi* | ppc-*-sysv4*)	fmt=elf ;; ++      ppc-*-linux-uclibc* | \ +       ppc-*-linux-gnu*)			fmt=elf em=linux + 	    case "$endian" in + 		big)  ;; +@@ -4532,7 +4545,9 @@ +       ppc-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;; +  +       s390x-*-linux-gnu*)		fmt=elf em=linux ;; ++      s390x-*-linux-uclibc*)		fmt=elf em=linux ;; +       s390-*-linux-gnu*)		fmt=elf em=linux ;; ++      s390-*-linux-uclibc*)		fmt=elf em=linux ;; +       s390-*-tpf*)			fmt=elf ;; +  +       sh*-*-linux*)			fmt=elf em=linux +@@ -4568,6 +4583,7 @@ +       sparc-*-coff)			fmt=coff ;; +       sparc-*-linux*aout*)		fmt=aout em=linux ;; +       sparc-*-linux-gnu*)		fmt=elf em=linux ;; ++      sparc-*-linux-uclibc*)		fmt=elf em=linux ;; +       sparc-*-lynxos*)			fmt=coff em=lynx ;; +       sparc-fujitsu-none)		fmt=aout ;; +       sparc-*-elf)			fmt=elf ;; +diff -ur binutils-2.15.94.0.2.orig/gas/configure.in binutils-2.15.94.0.2/gas/configure.in +--- binutils-2.15.94.0.2.orig/gas/configure.in	2004-12-22 15:00:57.461987424 -0500 ++++ binutils-2.15.94.0.2/gas/configure.in	2004-12-22 15:01:19.022709696 -0500 +@@ -202,6 +202,7 @@ +       alpha*-*-osf*)			fmt=ecoff ;; +       alpha*-*-linuxecoff*)		fmt=ecoff ;; +       alpha*-*-linux-gnu*)		fmt=elf em=linux ;; ++      alpha*-*-linux-uclibc*)		fmt=elf em=linux ;; +       alpha*-*-netbsd*)			fmt=elf em=nbsd ;; +       alpha*-*-openbsd*)		fmt=elf em=obsd ;; +  +@@ -218,6 +219,7 @@ +       arm-*-linux*aout*)		fmt=aout em=linux ;; +       arm*-*-linux-gnueabi*)		fmt=elf  em=armlinuxeabi ;;	  +       arm*-*-linux-gnu*)		fmt=elf  em=linux ;; ++      arm*-*-linux-uclibc*)		fmt=elf  em=linux ;; +       arm*-*-uclinux*)			fmt=elf  em=linux ;; +       arm-*-netbsdelf*)                 fmt=elf  em=nbsd ;; +       arm-*-*n*bsd*)			fmt=aout em=nbsd ;; +@@ -231,6 +233,7 @@ +  +       cris-*-linux-gnu* | crisv32-*-linux-gnu*) + 					fmt=multi bfd_gas=yes em=linux ;; ++      cris-*-linux-uclibc*)		fmt=multi bfd_gas=yes em=linux ;; +       cris-*-* | crisv32-*-*)		fmt=multi bfd_gas=yes ;; +  +       crx-*-elf*)	    		fmt=elf ;; +@@ -290,7 +293,9 @@ +       i386-*-linux*oldld)		fmt=aout em=linux ;; +       i386-*-linux*coff*)		fmt=coff em=linux ;; +       i386-*-linux-gnu*)		fmt=elf em=linux ;; ++      i386-*-linux-uclibc*)		fmt=elf em=linux ;; +       x86_64-*-linux-gnu*)		fmt=elf em=linux ;; ++      x86_64-*-linux-uclibc*)		fmt=elf em=linux ;; +       i386-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;; + changequote(,)dnl +       i386-*-sysv[45]*)			fmt=elf ;; +@@ -343,6 +348,7 @@ +       ia64-*-elf*)			fmt=elf ;; +       ia64-*-aix*)			fmt=elf em=ia64aix ;; +       ia64-*-linux-gnu*)		fmt=elf em=linux ;; ++      ia64-*-linux-uclibc*)		fmt=elf em=linux ;; +       ia64-*-hpux*)			fmt=elf em=hpux ;; +       ia64-*-netbsd*)			fmt=elf em=nbsd ;; +  +@@ -370,6 +376,7 @@ +       m68k-*-hpux*)			fmt=hp300 em=hp300 ;; +       m68k-*-linux*aout*)		fmt=aout em=linux ;; +       m68k-*-linux-gnu*)		fmt=elf em=linux ;; ++      m68k-*-linux-uclibc*)		fmt=elf em=linux ;; +       m68k-*-uclinux*)			fmt=elf ;; +       m68k-*-gnu*)			fmt=elf ;; +       m68k-*-lynxos*)			fmt=coff em=lynx ;; +@@ -441,6 +448,7 @@ +       ppc-*-beos*)			fmt=coff ;; +       ppc-*-*n*bsd* | ppc-*-elf*)	fmt=elf ;; +       ppc-*-eabi* | ppc-*-sysv4*)	fmt=elf ;; ++      ppc-*-linux-uclibc* | \ +       ppc-*-linux-gnu*)			fmt=elf em=linux + 	    case "$endian" in + 		big)  ;; +@@ -461,7 +469,9 @@ +       ppc-*-lynxos*)			fmt=elf em=lynx bfd_gas=yes ;; +  +       s390x-*-linux-gnu*)		fmt=elf em=linux ;; ++      s390x-*-linux-uclibc*)		fmt=elf em=linux ;; +       s390-*-linux-gnu*)		fmt=elf em=linux ;; ++      s390-*-linux-uclibc*)		fmt=elf em=linux ;; +       s390-*-tpf*)			fmt=elf ;; +  +       sh*-*-linux*)			fmt=elf em=linux +@@ -493,6 +503,7 @@ +       sparc-*-coff)			fmt=coff ;; +       sparc-*-linux*aout*)		fmt=aout em=linux ;; +       sparc-*-linux-gnu*)		fmt=elf em=linux ;; ++      sparc-*-linux-uclibc*)		fmt=elf em=linux ;; +       sparc-*-lynxos*)			fmt=coff em=lynx ;; +       sparc-fujitsu-none)		fmt=aout ;; +       sparc-*-elf)			fmt=elf ;; +diff -ur binutils-2.15.94.0.2.orig/gprof/configure binutils-2.15.94.0.2/gprof/configure +--- binutils-2.15.94.0.2.orig/gprof/configure	2004-12-22 15:00:57.949913248 -0500 ++++ binutils-2.15.94.0.2/gprof/configure	2004-12-22 15:01:19.030708480 -0500 +@@ -3418,6 +3418,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -ur binutils-2.15.94.0.2.orig/ld/configure binutils-2.15.94.0.2/ld/configure +--- binutils-2.15.94.0.2.orig/ld/configure	2004-12-22 15:00:58.032900632 -0500 ++++ binutils-2.15.94.0.2/ld/configure	2004-12-22 15:01:19.035707720 -0500 +@@ -1579,6 +1579,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -ur binutils-2.15.94.0.2.orig/ld/configure.tgt binutils-2.15.94.0.2/ld/configure.tgt +--- binutils-2.15.94.0.2.orig/ld/configure.tgt	2004-12-22 15:00:58.033900480 -0500 ++++ binutils-2.15.94.0.2/ld/configure.tgt	2004-12-22 15:01:19.036707568 -0500 +@@ -32,6 +32,7 @@ + 			targ_extra_libpath=$targ_extra_emuls ;; + cris-*-linux-gnu* | cris-*-linux-gnu*) + 			targ_emul=crislinux ;; ++cris-*-linux-uclibc*)	targ_emul=crislinux ;; + cris-*-* | crisv32-*-*)	targ_emul=criself + 			targ_extra_emuls="crisaout crislinux" + 			targ_extra_libpath=$targ_extra_emuls ;; +@@ -62,14 +63,16 @@ + 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'` + 			tdir_sun4=sparc-sun-sunos4 + 			;; +-sparc64-*-linux-gnu*)	targ_emul=elf64_sparc ++sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*)	 \ ++			targ_emul=elf64_sparc + 			targ_extra_emuls="elf32_sparc sparclinux sun4" + 			targ_extra_libpath=elf32_sparc + 			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` + 			tdir_sparclinux=${tdir_elf32_sparc}aout + 			tdir_sun4=sparc-sun-sunos4 + 			;; +-sparc*-*-linux-gnu*)	targ_emul=elf32_sparc ++sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \ ++			targ_emul=elf32_sparc + 			targ_extra_emuls="sparclinux elf64_sparc sun4" + 			targ_extra_libpath=elf64_sparc + 			tdir_sparclinux=${targ_alias}aout +@@ -121,7 +124,9 @@ + m32r*le-*-elf*)         targ_emul=m32rlelf ;; + m32r*-*-elf*)           targ_emul=m32relf ;; + m32r*le-*-linux-gnu*)   targ_emul=m32rlelf_linux ;; ++m32r*le-*-linux-uclibc*) targ_emul=m32rlelf_linux ;; + m32r*-*-linux-gnu*)     targ_emul=m32relf_linux ;; ++m32r*-*-linux-uclibc*)  targ_emul=m32relf_linux ;; + m68hc11-*-*|m6811-*-*)	targ_emul=m68hc11elf  + 			targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;; + m68hc12-*-*|m6812-*-*)	targ_emul=m68hc12elf  +@@ -132,7 +137,7 @@ + m68*-apple-aux*)	targ_emul=m68kaux ;; + maxq-*-coff)            targ_emul=maxqcoff;; + *-tandem-none)		targ_emul=st2000 ;; +-i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;; ++i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;; + i[3-7]86-*-nto-qnx*)	targ_emul=i386nto ;; + i[3-7]86-*-vsta)	targ_emul=vsta ;; + i[3-7]86-go32-rtems*)	targ_emul=i386go32 ;; +@@ -156,14 +161,16 @@ + 			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` + 			;; + i[3-7]86-*-linux*oldld)	targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; +-i[3-7]86-*-linux-gnu*)	targ_emul=elf_i386 ++i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \ ++			targ_emul=elf_i386 + 			targ_extra_emuls=i386linux + 			if test x${want64} = xtrue; then + 			  targ_extra_emuls="$targ_extra_emuls elf_x86_64" + 			fi + 			tdir_i386linux=${targ_alias}aout + 			;; +-x86_64-*-linux-gnu*)	targ_emul=elf_x86_64 ++x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \ ++			targ_emul=elf_x86_64 + 			targ_extra_emuls="elf_i386 i386linux" + 			targ_extra_libpath=elf_i386 + 			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'` +@@ -263,11 +270,14 @@ + arm-*-kaos*)		targ_emul=armelf ;; + arm9e-*-elf)		targ_emul=armelf ;; + arm*b-*-linux-gnu*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; ++arm*b-*-linux-uclibc*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; + arm*-*-linux-gnueabi)	targ_emul=armelf_linux_eabi ;; + arm*-*-linux-gnu*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;; ++arm*-*-linux-uclibc*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + arm*-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + arm*-*-conix*)		targ_emul=armelf ;; +-thumb-*-linux-gnu* | thumb-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;; ++thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \ ++			targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + strongarm-*-coff)	targ_emul=armcoff ;; + strongarm-*-elf)	targ_emul=armelf ;; + strongarm-*-kaos*)	targ_emul=armelf ;; +@@ -371,7 +381,8 @@ + 			targ_extra_emuls=m68kelf + 			tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` + 			;; +-m68k-*-linux-gnu*)	targ_emul=m68kelf ++m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \ ++			targ_emul=m68kelf + 			targ_extra_emuls=m68klinux + 			tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` + 			;; +@@ -388,9 +399,9 @@ + m68*-*-psos*)		targ_emul=m68kpsos ;; + m68*-*-rtemscoff*)	targ_emul=m68kcoff ;; + m68*-*-rtems*)		targ_emul=m68kelf ;; +-hppa*64*-*-linux-gnu*)	targ_emul=hppa64linux ;; ++hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*)  targ_emul=hppa64linux ;; + hppa*64*-*)		targ_emul=elf64hppa ;; +-hppa*-*-linux-gnu*)	targ_emul=hppalinux ;; ++hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*)	targ_emul=hppalinux ;; + hppa*-*-*elf*)		targ_emul=hppaelf ;; + hppa*-*-lites*)		targ_emul=hppaelf ;; + hppa*-*-netbsd*)	targ_emul=hppanbsd ;; +@@ -403,6 +414,7 @@ + 			targ_emul=vaxnbsd + 			targ_extra_emuls=elf32vax ;; + vax-*-linux-gnu*)	targ_emul=elf32vax ;; ++vax-*-linux-uclibc*)	targ_emul=elf32vax ;; + mips*-*-pe)		targ_emul=mipspe ; + 			targ_extra_ofiles="deffilep.o pe-dll.o" ;; + mips*-dec-ultrix*)	targ_emul=mipslit ;; +@@ -436,16 +448,16 @@ + mips*-*-vxworks*)	targ_emul=elf32ebmip + 		        targ_extra_emuls="elf32elmip" ;; + mips*-*-windiss)	targ_emul=elf32mipswindiss ;; +-mips64*el-*-linux-gnu*)	targ_emul=elf32ltsmipn32 ++mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*)	targ_emul=elf32ltsmipn32 + 			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" + 			;; +-mips64*-*-linux-gnu*)	targ_emul=elf32btsmipn32 ++mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*)	targ_emul=elf32btsmipn32 + 			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" + 			;; +-mips*el-*-linux-gnu*)	targ_emul=elf32ltsmip ++mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*)	targ_emul=elf32ltsmip + 			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" + 			;; +-mips*-*-linux-gnu*)	targ_emul=elf32btsmip ++mips*-*-linux-gnu* | mips*-*-linux-uclibc*)	targ_emul=elf32btsmip + 			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" + 			;; + mips*-*-lnews*)		targ_emul=mipslnews ;; +@@ -468,6 +480,10 @@ + alpha*-*-linux-gnu*)	targ_emul=elf64alpha targ_extra_emuls=alpha + 			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` + 			;; ++alpha*-*-linux-uclibc*)	targ_emul=elf64alpha targ_extra_emuls=alpha ++			# The following needs to be checked... ++			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` ++			;; + alpha*-*-osf*)		targ_emul=alpha ;; + alpha*-*-gnu*)		targ_emul=elf64alpha ;; + alpha*-*-netware*)	targ_emul=alpha ;; +diff -ur binutils-2.15.94.0.2.orig/ld/emultempl/elf32.em binutils-2.15.94.0.2/ld/emultempl/elf32.em +--- binutils-2.15.94.0.2.orig/ld/emultempl/elf32.em	2004-12-22 15:00:58.044898808 -0500 ++++ binutils-2.15.94.0.2/ld/emultempl/elf32.em	2004-12-22 15:01:19.038707264 -0500 +@@ -65,7 +65,7 @@ +  + if [ "x${USE_LIBPATH}" = xyes ] ; then +   case ${target} in +-    *-*-linux-gnu*) ++    *-*-linux-gnu* | *-*-linux-uclibc*) +   cat >>e${EMULATION_NAME}.c <<EOF + #include <glob.h> + EOF +@@ -337,7 +337,7 @@ +  + EOF + case ${target} in +-  *-*-linux-gnu*) ++  *-*-linux-gnu* | *-*-linux-uclibc*) +     cat >>e${EMULATION_NAME}.c <<EOF + 	  { + 	    struct bfd_link_needed_list *l; +@@ -510,7 +510,7 @@ +  + EOF +   case ${target} in +-    *-*-linux-gnu*) ++    *-*-linux-gnu* | *-*-linux-uclibc*) +       cat >>e${EMULATION_NAME}.c <<EOF + /* For a native linker, check the file /etc/ld.so.conf for directories +    in which we may find shared libraries.  /etc/ld.so.conf is really +@@ -894,7 +894,7 @@ + EOF + if [ "x${USE_LIBPATH}" = xyes ] ; then +   case ${target} in +-    *-*-linux-gnu*) ++    *-*-linux-gnu* | *-*-linux-uclibc*) +       cat >>e${EMULATION_NAME}.c <<EOF + 	  if (gld${EMULATION_NAME}_check_ld_so_conf (l->name, force)) + 	    break; +diff -ur binutils-2.15.94.0.2.orig/libiberty/configure binutils-2.15.94.0.2/libiberty/configure +--- binutils-2.15.94.0.2.orig/libiberty/configure	2004-12-22 15:00:59.263713520 -0500 ++++ binutils-2.15.94.0.2/libiberty/configure	2004-12-22 15:03:55.744884304 -0500 +@@ -3682,6 +3682,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -ur binutils-2.15.94.0.2.orig/libtool.m4 binutils-2.15.94.0.2/libtool.m4 +--- binutils-2.15.94.0.2.orig/libtool.m4	2004-12-22 15:00:57.329007640 -0500 ++++ binutils-2.15.94.0.2/libtool.m4	2004-12-22 15:01:19.039707112 -0500 +@@ -645,6 +645,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] +diff -ur binutils-2.15.94.0.2.orig/ltconfig binutils-2.15.94.0.2/ltconfig +--- binutils-2.15.94.0.2.orig/ltconfig	2004-12-22 15:00:57.330007488 -0500 ++++ binutils-2.15.94.0.2/ltconfig	2004-12-22 15:01:19.041706808 -0500 +@@ -603,6 +603,7 @@ + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in + linux-gnu*) ;; ++linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac +  +@@ -1270,6 +1271,24 @@ +   dynamic_linker='GNU/Linux ld.so' +   ;; +  ++linux-uclibc*) ++  version_type=linux ++  need_lib_prefix=no ++  need_version=no ++  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++  soname_spec='${libname}${release}.so$major' ++  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++  shlibpath_var=LD_LIBRARY_PATH ++  shlibpath_overrides_runpath=no ++  # This implies no fast_install, which is unacceptable. ++  # Some rework will be needed to allow for fast_install ++  # before this can be enabled. ++  # Note: copied from linux-gnu, and may not be appropriate. ++  hardcode_into_libs=yes ++  # Assume using the uClibc dynamic linker. ++  dynamic_linker="uClibc ld.so" ++  ;; ++ + netbsd*) +   need_lib_prefix=no +   need_version=no +diff -ur binutils-2.15.94.0.2.orig/opcodes/configure binutils-2.15.94.0.2/opcodes/configure +--- binutils-2.15.94.0.2.orig/opcodes/configure	2004-12-22 15:00:59.334702728 -0500 ++++ binutils-2.15.94.0.2/opcodes/configure	2004-12-22 15:01:19.053704984 -0500 +@@ -3587,6 +3587,11 @@ +   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` +   ;; +  ++linux-uclibc*) ++  lt_cv_deplibs_check_method=pass_all ++  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++  ;; ++ + netbsd* | knetbsd*-gnu) +   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then +     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff --git a/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch b/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch new file mode 100644 index 000000000..b25d5b7e2 --- /dev/null +++ b/toolchain/binutils/2.15.94.0.2.2/300-001_ld_makefile_patch.patch @@ -0,0 +1,52 @@ +#!/bin/sh -e +## 001_ld_makefile_patch.dpatch +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Description: correct where ld scripts are installed +## DP: Author: Chris Chimelis <chris@debian.org> +## DP: Upstream status: N/A +## DP: Date: ?? + +if [ $# -ne 1 ]; then +    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" +    exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in +       -patch) patch $patch_opts -p1 < $0;; +       -unpatch) patch $patch_opts -p1 -R < $0;; +        *) +                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" +                exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am binutils-2.14.90.0.6/ld/Makefile.am +--- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.am	2003-08-21 16:28:48.000000000 +0100 ++++ binutils-2.14.90.0.6/ld/Makefile.am	2003-09-10 23:12:09.000000000 +0100 +@@ -19,7 +19,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) +  + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ +diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in binutils-2.14.90.0.6/ld/Makefile.in +--- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/ld/Makefile.in	2003-08-21 16:28:48.000000000 +0100 ++++ binutils-2.14.90.0.6/ld/Makefile.in	2003-09-10 23:12:09.000000000 +0100 +@@ -128,7 +128,7 @@ + # We put the scripts in the directory $(scriptdir)/ldscripts. + # We can't put the scripts in $(datadir) because the SEARCH_DIR + # directives need to be different for native and cross linkers. +-scriptdir = $(tooldir)/lib ++scriptdir = $(libdir) +  + EMUL = @EMUL@ + EMULATION_OFILES = @EMULATION_OFILES@ diff --git a/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch b/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch new file mode 100644 index 000000000..f337611ed --- /dev/null +++ b/toolchain/binutils/2.15.94.0.2.2/300-006_better_file_error.patch @@ -0,0 +1,43 @@ +#!/bin/sh -e +## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Specify which filename is causing an error if the filename is a +## DP: directory. (#45832) + +if [ $# -ne 1 ]; then +    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" +    exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in +       -patch) patch $patch_opts -p1 < $0;; +       -unpatch) patch $patch_opts -p1 -R < $0;; +        *) +                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" +                exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c +--- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c	2003-07-23 16:08:09.000000000 +0100 ++++ binutils-2.14.90.0.6/bfd/opncls.c	2003-09-10 22:35:00.000000000 +0100 +@@ -150,6 +150,13 @@ + { +   bfd *nbfd; +   const bfd_target *target_vec; ++  struct stat s; ++ ++  if (stat (filename, &s) == 0) ++    if (S_ISDIR(s.st_mode)) { ++      bfd_set_error (bfd_error_file_not_recognized); ++      return NULL; ++    } +  +   nbfd = _bfd_new_bfd (); +   if (nbfd == NULL) diff --git a/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch b/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch new file mode 100644 index 000000000..498651a90 --- /dev/null +++ b/toolchain/binutils/2.15.94.0.2.2/300-012_check_ldrunpath_length.patch @@ -0,0 +1,47 @@ +#!/bin/sh -e +## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for +## DP: cases where -rpath isn't specified. (#151024) + +if [ $# -ne 1 ]; then +    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" +    exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in +       -patch) patch $patch_opts -p1 < $0;; +       -unpatch) patch $patch_opts -p1 -R < $0;; +        *) +                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" +                exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em +--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:58.000000000 +0100 ++++ binutils-2.15/ld/emultempl/elf32.em	2004-05-21 23:12:59.000000000 +0100 +@@ -692,6 +692,8 @@ + 	      && command_line.rpath == NULL) + 	    { + 	      lib_path = (const char *) getenv ("LD_RUN_PATH"); ++	      if ((lib_path) && (strlen (lib_path) == 0)) ++		  lib_path = NULL; + 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n, + 						      force)) + 		break; +@@ -871,6 +873,8 @@ +   rpath = command_line.rpath; +   if (rpath == NULL) +     rpath = (const char *) getenv ("LD_RUN_PATH"); ++  if ((rpath) && (strlen (rpath) == 0)) ++      rpath = NULL; +   if (! (bfd_elf_size_dynamic_sections + 	 (output_bfd, command_line.soname, rpath, + 	  command_line.filter_shlib, diff --git a/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch b/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch new file mode 100644 index 000000000..ae2033d06 --- /dev/null +++ b/toolchain/binutils/2.15.94.0.2.2/300-120_mips_xgot_multigot_workaround.patch @@ -0,0 +1,39 @@ +#! /bin/sh -e +## 120_mips_xgot_multigot_workaround.dpatch +## +## DP: Description: Make multigot/xgot handling mutually exclusive. +## DP: Author: Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> +## DP: Upstream status: Not submitted +## DP: Date: 2004-09-17 + +if [ $# -lt 1 ]; then +    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 +    exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" + +case "$1" in +    -patch) patch -p1 ${patch_opts} < $0;; +    -unpatch) patch -R -p1 ${patch_opts} < $0;; +    *) +        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 +        exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/james/debian/packages/binutils/binutils-2.15/bfd/elfxx-mips.c binutils-2.15/bfd/elfxx-mips.c +--- /home/james/debian/packages/binutils/binutils-2.15/bfd/elfxx-mips.c	2004-09-23 22:41:37.156466673 +0100 ++++ binutils-2.15/bfd/elfxx-mips.c	2004-09-23 22:42:15.998362861 +0100 +@@ -5883,6 +5883,8 @@ +   s->size += i * MIPS_ELF_GOT_SIZE (output_bfd); +  +   if (s->size > MIPS_ELF_GOT_MAX_SIZE (output_bfd) ++      && g->global_gotno <= (MIPS_ELF_GOT_MAX_SIZE (output_bfd) ++                            / MIPS_ELF_GOT_SIZE (output_bfd)) +       && ! mips_elf_multi_got (output_bfd, info, g, s, local_gotno)) +     return FALSE; +  diff --git a/toolchain/binutils/2.15.94.0.2.2/702-binutils-skip-comments.patch b/toolchain/binutils/2.15.94.0.2.2/702-binutils-skip-comments.patch new file mode 100644 index 000000000..804a17e00 --- /dev/null +++ b/toolchain/binutils/2.15.94.0.2.2/702-binutils-skip-comments.patch @@ -0,0 +1,101 @@ +Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html +Fixes +localealias.s:544: Error: junk at end of line, first unrecognized character is `,'  +when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3 + +Paths adjusted to match crosstool's patcher. + +Message-Id: m3n052qw2g.fsf@whitebox.m5r.de +From: Andreas Schwab <schwab at suse dot de> +To: Nathan Sidwell <nathan at codesourcery dot com> +Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com +Date: Fri, 23 Apr 2004 22:27:19 +0200 +Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line + +Nathan Sidwell <nathan@codesourcery.com> writes: + +> Index: read.c +> =================================================================== +> RCS file: /cvs/src/src/gas/read.c,v +> retrieving revision 1.76 +> diff -c -3 -p -r1.76 read.c +> *** read.c	12 Mar 2004 17:48:12 -0000	1.76 +> --- read.c	18 Mar 2004 09:56:05 -0000 +> *************** read_a_source_file (char *name) +> *** 1053,1059 **** +>   #endif +>   	  input_line_pointer--; +>   	  /* Report unknown char as ignored.  */ +> ! 	  ignore_rest_of_line (); +>   	} +>    +>   #ifdef md_after_pass_hook +> --- 1053,1059 ---- +>   #endif +>   	  input_line_pointer--; +>   	  /* Report unknown char as ignored.  */ +> ! 	  demand_empty_rest_of_line (); +>   	} +>    +>   #ifdef md_after_pass_hook + +This means that the unknown character is no longer ignored, despite the +comment.  As a side effect a line starting with a line comment character +not followed by APP in NO_APP mode now triggers an error instead of just a +warning, breaking builds of glibc on m68k-linux.  Earlier in +read_a_source_file where #APP is handled there is another comment that +claims that unknown comments are ignored, when in fact they aren't (only +the initial line comment character is skipped). + +Note that the presence of #APP will mess up the line counters, but +that appears to be difficult to fix. + +Andreas. + +2004-04-23  Andreas Schwab  <schwab@suse.de> + +	* read.c (read_a_source_file): Ignore unknown text after line +	comment character.  Fix misleading comment. + +--- binutils/gas/read.c.~1.78.~	2004-04-23 08:58:23.000000000 +0200 ++++ binutils/gas/read.c	2004-04-23 21:49:01.000000000 +0200 +@@ -1,6 +1,6 @@ + /* read.c - read a source file - +    Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, +-   1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++   1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +  + This file is part of GAS, the GNU Assembler. +  +@@ -950,10 +950,14 @@ read_a_source_file (char *name) + 	      unsigned int new_length; + 	      char *tmp_buf = 0; +  +-	      bump_line_counters (); + 	      s = input_line_pointer; + 	      if (strncmp (s, "APP\n", 4)) +-		continue;	/* We ignore it */ ++		{ ++		  /* We ignore it */ ++		  ignore_rest_of_line (); ++		  continue; ++		} ++	      bump_line_counters (); + 	      s += 4; +  + 	      sb_new (&sbuf); +@@ -1052,7 +1056,7 @@ read_a_source_file (char *name) + 	    continue; + #endif + 	  input_line_pointer--; +-	  /* Report unknown char as ignored.  */ ++	  /* Report unknown char as error.  */ + 	  demand_empty_rest_of_line (); + 	} +  + +--  +Andreas Schwab, SuSE Labs, schwab@suse.de +SuSE Linux AG, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany +Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5 +"And now for something completely different." diff --git a/toolchain/binutils/2.15/002-max-pagesize.patch b/toolchain/binutils/2.15/002-max-pagesize.patch deleted file mode 100644 index a8ae110e8..000000000 --- a/toolchain/binutils/2.15/002-max-pagesize.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN binutils-2.14.90.0.8.test/bfd/elf32-mips.c binutils-2.14.90.0.8/bfd/elf32-mips.c ---- binutils-2.14.90.0.8.test/bfd/elf32-mips.c	2004-01-14 22:07:43.000000000 +0100 -+++ binutils-2.14.90.0.8/bfd/elf32-mips.c	2005-03-03 23:44:00.000000000 +0100 -@@ -1611,7 +1611,7 @@ -  - /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses -    page sizes of up to that limit, so we need to respect it.  */ --#define ELF_MAXPAGESIZE			0x10000 -+#define ELF_MAXPAGESIZE			0x1000 - #define elf32_bed			elf32_tradbed -  - /* Include the target file again for this target.  */ diff --git a/toolchain/binutils/Config.in b/toolchain/binutils/Config.in index 856308061..4b06f1aa9 100644 --- a/toolchain/binutils/Config.in +++ b/toolchain/binutils/Config.in @@ -47,6 +47,9 @@ choice  	config BR2_BINUTILS_VERSION_2_15_94_0_2  		bool "binutils 2.15.94.0.2" +	config BR2_BINUTILS_VERSION_2_15_94_0_2_2 +		bool "binutils 2.15.94.0.2.2" +  endchoice  config BR2_BINUTILS_VERSION diff --git a/toolchain/binutils/binutils.mk b/toolchain/binutils/binutils.mk index c0d504d6d..8fccbac37 100644 --- a/toolchain/binutils/binutils.mk +++ b/toolchain/binutils/binutils.mk @@ -34,6 +34,7 @@ $(BINUTILS_DIR)/.unpacked: $(DL_DIR)/$(BINUTILS_SOURCE)  $(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked  	# Apply appropriate binutils patches.  	$(SCRIPT_DIR)/patch-kernel.sh $(BINUTILS_DIR) ./$(BINUTILS_VERSION) \*.patch +	$(SCRIPT_DIR)/patch-kernel.sh $(BINUTILS_DIR) ./all \*.patch  	touch $(BINUTILS_DIR)/.patched  $(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched diff --git a/toolchain/gcc/3.3.5/820-no-mips-empic-relocs.patch b/toolchain/gcc/3.3.5/820-no-mips-empic-relocs.patch new file mode 100644 index 000000000..d5c4c9cb5 --- /dev/null +++ b/toolchain/gcc/3.3.5/820-no-mips-empic-relocs.patch @@ -0,0 +1,59 @@ +From: cgd at broadcom dot com +To: gcc-patches at gcc dot gnu dot org +Cc: mark at codesourcery dot com +Date: 13 Jun 2004 22:51:30 -0700 +Subject: [trunk + 3.4-branch RFA] don't use empic relocs for mips-linuxeh + +This patch changes mips-linux to avoid using embedded-pic relocs for +its eh data.  (Support for generating these for new code is removed in +current binutils srcs.) + +Relating to this, previously, mips-linux and mips64-linux would use +different representations for their EH data (even for mips64-linux o32 +abi), due to the mips64-linux n32/64 BFDs not supporting the +embedded-pic relocs.  This was a bug. + +For more explanation, see the thread of the URL quoted in the comment +in linux.h. + + +Tested the same w/ sources of about a week ago for c/c++ for +mips-linux (native) before/after.  Also verified .o compatibility +before/after just to be sure. + +I'd like this approved for the branch as well, so 3.4.1 will work +nicely w/ the next major binutils release. + + +thanks, + +chris + +2004-06-13  Chris Demetriou  <cgd@broadcom.com> + +	* config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Redefine +	to return DW_EH_PE_absptr. + +Index: config/mips/linux.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mips/linux.h,v +retrieving revision 1.77 +diff -u -p -r1.77 linux.h +--- gcc/gcc/config/mips/linux.h	19 Feb 2004 22:07:51 -0000	1.77 ++++ gcc/gcc/config/mips/linux.h	14 Jun 2004 05:49:51 -0000 +@@ -170,10 +170,11 @@ Boston, MA 02111-1307, USA.  */ + #undef FUNCTION_NAME_ALREADY_DECLARED + #define FUNCTION_NAME_ALREADY_DECLARED 1 +  +-#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)       		\ +-  (flag_pic								\ +-    ? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4\ +-   : DW_EH_PE_absptr) ++/* If possible, we should attempt to use GP-relative relocs for this ++   (see <a  href="http://sources.redhat.com/ml/binutils/2004-05/msg00227.html">http://sources.redhat.com/ml/binutils/2004-05/msg00227.html</a>). ++   However, until that is implement, this just uses standard, absolute ++   references.  */ ++#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)	DW_EH_PE_absptr +  + /* The glibc _mcount stub will save $v0 for us.  Don't mess with saving +    it, since ASM_OUTPUT_REG_PUSH/ASM_OUTPUT_REG_POP do not work in the diff --git a/toolchain/gcc/3.4.0/820-no-mips-empic-relocs.patch b/toolchain/gcc/3.4.0/820-no-mips-empic-relocs.patch new file mode 100644 index 000000000..d5c4c9cb5 --- /dev/null +++ b/toolchain/gcc/3.4.0/820-no-mips-empic-relocs.patch @@ -0,0 +1,59 @@ +From: cgd at broadcom dot com +To: gcc-patches at gcc dot gnu dot org +Cc: mark at codesourcery dot com +Date: 13 Jun 2004 22:51:30 -0700 +Subject: [trunk + 3.4-branch RFA] don't use empic relocs for mips-linuxeh + +This patch changes mips-linux to avoid using embedded-pic relocs for +its eh data.  (Support for generating these for new code is removed in +current binutils srcs.) + +Relating to this, previously, mips-linux and mips64-linux would use +different representations for their EH data (even for mips64-linux o32 +abi), due to the mips64-linux n32/64 BFDs not supporting the +embedded-pic relocs.  This was a bug. + +For more explanation, see the thread of the URL quoted in the comment +in linux.h. + + +Tested the same w/ sources of about a week ago for c/c++ for +mips-linux (native) before/after.  Also verified .o compatibility +before/after just to be sure. + +I'd like this approved for the branch as well, so 3.4.1 will work +nicely w/ the next major binutils release. + + +thanks, + +chris + +2004-06-13  Chris Demetriou  <cgd@broadcom.com> + +	* config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Redefine +	to return DW_EH_PE_absptr. + +Index: config/mips/linux.h +=================================================================== +RCS file: /cvs/gcc/gcc/gcc/config/mips/linux.h,v +retrieving revision 1.77 +diff -u -p -r1.77 linux.h +--- gcc/gcc/config/mips/linux.h	19 Feb 2004 22:07:51 -0000	1.77 ++++ gcc/gcc/config/mips/linux.h	14 Jun 2004 05:49:51 -0000 +@@ -170,10 +170,11 @@ Boston, MA 02111-1307, USA.  */ + #undef FUNCTION_NAME_ALREADY_DECLARED + #define FUNCTION_NAME_ALREADY_DECLARED 1 +  +-#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)       		\ +-  (flag_pic								\ +-    ? ((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4\ +-   : DW_EH_PE_absptr) ++/* If possible, we should attempt to use GP-relative relocs for this ++   (see <a  href="http://sources.redhat.com/ml/binutils/2004-05/msg00227.html">http://sources.redhat.com/ml/binutils/2004-05/msg00227.html</a>). ++   However, until that is implement, this just uses standard, absolute ++   references.  */ ++#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL)	DW_EH_PE_absptr +  + /* The glibc _mcount stub will save $v0 for us.  Don't mess with saving +    it, since ASM_OUTPUT_REG_PUSH/ASM_OUTPUT_REG_POP do not work in the | 
