mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	Nuke lots of obsolete compiler versions Make gcc4 depend on !LINUX_2_4 - I'm getting sick of seeing people complain about compile errors when trying to build brcm-2.4 with it.
SVN-Revision: 6744
This commit is contained in:
		
							parent
							
								
									e172d1c9ea
								
							
						
					
					
						commit
						92f558c4be
					
				@ -7,35 +7,15 @@ choice
 | 
			
		||||
	help
 | 
			
		||||
	  Select the version of gcc you wish to use.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_3_4_4
 | 
			
		||||
		bool "gcc 3.4.4"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_3_4_5
 | 
			
		||||
		bool "gcc 3.4.5"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_3_4_6
 | 
			
		||||
		bool "gcc 3.4.6"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_3_4_6_nonmips
 | 
			
		||||
		bool "gcc 3.4.6-nonmips"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_4_0_2
 | 
			
		||||
		bool "gcc 4.0.2"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_4_0_3
 | 
			
		||||
		bool "gcc 4.0.3"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_4_1_0
 | 
			
		||||
		bool "gcc 4.1.0"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_4_1_1
 | 
			
		||||
		bool "gcc 4.1.1"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_4_1_2
 | 
			
		||||
		depends !LINUX_2_4
 | 
			
		||||
		bool "gcc 4.1.2"
 | 
			
		||||
 | 
			
		||||
	config GCC_VERSION_4_2
 | 
			
		||||
		depends !LINUX_2_4
 | 
			
		||||
		bool "gcc 4.2 (20060709)"
 | 
			
		||||
 | 
			
		||||
endchoice
 | 
			
		||||
 | 
			
		||||
@ -1,442 +0,0 @@
 | 
			
		||||
diff -urN gcc-3.4.1-dist/boehm-gc/configure gcc-3.4.1/boehm-gc/configure
 | 
			
		||||
--- gcc-3.4.1-dist/boehm-gc/configure	2004-07-01 14:14:03.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/boehm-gc/configure	2004-08-12 16:22:57.000000000 -0500
 | 
			
		||||
@@ -1947,6 +1947,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*)
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 | 
			
		||||
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 | 
			
		||||
diff -urN gcc-3.4.1-dist/boehm-gc/ltconfig gcc-3.4.1/boehm-gc/ltconfig
 | 
			
		||||
--- gcc-3.4.1-dist/boehm-gc/ltconfig	2002-11-20 09:59:06.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/boehm-gc/ltconfig	2004-08-12 15:54:42.000000000 -0500
 | 
			
		||||
@@ -1981,6 +1981,23 @@
 | 
			
		||||
   fi
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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
 | 
			
		||||
+  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
 | 
			
		||||
+  file_magic_cmd=/usr/bin/file
 | 
			
		||||
+  file_magic_test_file=`echo /lib/libuClibc-*.so`
 | 
			
		||||
+
 | 
			
		||||
+  # Assume using the uClibc dynamic linker.
 | 
			
		||||
+  dynamic_linker="uClibc ld.so"
 | 
			
		||||
+  ;;
 | 
			
		||||
+
 | 
			
		||||
 netbsd*)
 | 
			
		||||
   version_type=sunos
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-01-31 00:18:11.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-12 15:54:42.000000000 -0500
 | 
			
		||||
@@ -81,6 +81,18 @@
 | 
			
		||||
   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
 | 
			
		||||
 
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
+   %{b} %{Wl,*:%*} \
 | 
			
		||||
+   %{static:-Bstatic} \
 | 
			
		||||
+   %{shared:-shared} \
 | 
			
		||||
+   %{symbolic:-Bsymbolic} \
 | 
			
		||||
+   %{rdynamic:-export-dynamic} \
 | 
			
		||||
+   %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
 | 
			
		||||
+   -X \
 | 
			
		||||
+   %{mbig-endian:-EB}" \
 | 
			
		||||
+   SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} %{Wl,*:%*} \
 | 
			
		||||
    %{static:-Bstatic} \
 | 
			
		||||
@@ -91,6 +103,7 @@
 | 
			
		||||
    -X \
 | 
			
		||||
    %{mbig-endian:-EB}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/cris/linux.h gcc-3.4.1/gcc/config/cris/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/cris/linux.h	2003-11-28 21:08:09.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/cris/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -79,6 +79,25 @@
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +112,8 @@
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/cris/t-linux-uclibc gcc-3.4.1/gcc/config/cris/t-linux-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/cris/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/cris/t-linux-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS += -fPIC
 | 
			
		||||
+CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS)
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/i386/linux.h gcc-3.4.1/gcc/config/i386/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/i386/linux.h	2003-11-28 21:08:10.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/i386/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -118,6 +118,15 @@
 | 
			
		||||
 	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
 | 
			
		||||
 	%{static:-static}}}"
 | 
			
		||||
 #else
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!ibcs: \
 | 
			
		||||
+      %{!static: \
 | 
			
		||||
+	%{rdynamic:-export-dynamic} \
 | 
			
		||||
+	%{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+	%{static:-static}}}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
@@ -126,6 +135,7 @@
 | 
			
		||||
 	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
 	%{static:-static}}}"
 | 
			
		||||
 #endif
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* A C statement (sans semicolon) to output to the stdio stream
 | 
			
		||||
    FILE the assembler definition of uninitialized global DECL named
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/mips/linux.h gcc-3.4.1/gcc/config/mips/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/mips/linux.h	2004-06-15 20:42:24.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/mips/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -109,6 +109,17 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC \
 | 
			
		||||
+ "%(endian_spec) \
 | 
			
		||||
+  %{shared:-shared} \
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!ibcs: \
 | 
			
		||||
+      %{!static: \
 | 
			
		||||
+        %{rdynamic:-export-dynamic} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+        %{static:-static}}}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
@@ -118,6 +129,7 @@
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
         %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
 #define SUBTARGET_ASM_SPEC "\
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/rs6000/linux.h gcc-3.4.1/gcc/config/rs6000/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/rs6000/linux.h	2004-02-25 09:11:19.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/rs6000/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -61,7 +61,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h gcc-3.4.1/gcc/config/rs6000/sysv4.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h	2004-06-10 01:39:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/rs6000/sysv4.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -947,6 +947,7 @@
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1124,6 +1125,10 @@
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1290,6 +1295,7 @@
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/sh/linux.h gcc-3.4.1/gcc/config/sh/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/linux.h	2004-01-11 20:29:13.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -73,12 +73,21 @@
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define SUBTARGET_LINK_SPEC \
 | 
			
		||||
+  "%{shared:-shared} \
 | 
			
		||||
+   %{!static: \
 | 
			
		||||
+     %{rdynamic:-export-dynamic} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+   %{static:-static}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #undef LIB_SPEC
 | 
			
		||||
 #define LIB_SPEC \
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/sh/t-linux-uclibc gcc-3.4.1/gcc/config/sh/t-linux-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/t-linux-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES
 | 
			
		||||
+LIB1ASMFUNCS_CACHE = _ic_invalidate
 | 
			
		||||
+
 | 
			
		||||
+LIB2FUNCS_EXTRA=
 | 
			
		||||
+
 | 
			
		||||
+MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4
 | 
			
		||||
+MULTILIB_DIRNAMES= 
 | 
			
		||||
+MULTILIB_MATCHES = 
 | 
			
		||||
+MULTILIB_EXCEPTIONS=
 | 
			
		||||
+
 | 
			
		||||
+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/sh/t-sh64-uclibc gcc-3.4.1/gcc/config/sh/t-sh64-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/t-sh64-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/t-sh64-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
+EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o crtbegin.o crtend.o
 | 
			
		||||
+
 | 
			
		||||
+LIB1ASMFUNCS = \
 | 
			
		||||
+  _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
 | 
			
		||||
+  _shcompact_call_trampoline _shcompact_return_trampoline \
 | 
			
		||||
+  _shcompact_incoming_args _ic_invalidate _nested_trampoline \
 | 
			
		||||
+  _push_pop_shmedia_regs \
 | 
			
		||||
+  _udivdi3 _divdi3 _umoddi3 _moddi3
 | 
			
		||||
+
 | 
			
		||||
+MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu
 | 
			
		||||
+MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64
 | 
			
		||||
+MULTILIB_MATCHES=
 | 
			
		||||
+MULTILIB_EXCEPTIONS=
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/t-linux-uclibc gcc-3.4.1/gcc/config/t-linux-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/t-linux-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+# Compile crtbeginS.o and crtendS.o with pic.
 | 
			
		||||
+CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
 | 
			
		||||
+# Compile libgcc2.a with pic.
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS = -fPIC
 | 
			
		||||
+
 | 
			
		||||
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
 | 
			
		||||
+# the symbol versions that glibc used.
 | 
			
		||||
+#SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
 | 
			
		||||
+
 | 
			
		||||
+# Use unwind-dw2-fde
 | 
			
		||||
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
 | 
			
		||||
+  $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
 | 
			
		||||
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-04-21 10:12:35.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-12 15:59:46.000000000 -0500
 | 
			
		||||
@@ -664,6 +664,12 @@
 | 
			
		||||
 	extra_parts=""
 | 
			
		||||
 	use_collect2=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+arm*-*-linux-uclibc*)		# ARM GNU/Linux with ELF - uClibc
 | 
			
		||||
+	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux"
 | 
			
		||||
+	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
+	gnu_ld=yes
 | 
			
		||||
+	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
 | 
			
		||||
@@ -725,6 +731,10 @@
 | 
			
		||||
 	tmake_file="cris/t-cris cris/t-elfmulti"
 | 
			
		||||
 	gas=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+cris-*-linux-uclibc*)
 | 
			
		||||
+	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
 | 
			
		||||
+	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc"
 | 
			
		||||
+	;;
 | 
			
		||||
 cris-*-linux*)
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
 | 
			
		||||
 	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux"
 | 
			
		||||
@@ -988,6 +998,11 @@
 | 
			
		||||
 		thread_file='single'
 | 
			
		||||
 	fi
 | 
			
		||||
 	;;
 | 
			
		||||
+i[34567]86-*-linux*uclibc*)	# Intel 80386's running GNU/Linux
 | 
			
		||||
+				# with ELF format using uClibc
 | 
			
		||||
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h"
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc i386/t-crtstuff"
 | 
			
		||||
+	;;
 | 
			
		||||
 i[34567]86-*-linux*)	# Intel 80386's running GNU/Linux
 | 
			
		||||
 			# with ELF format using glibc 2
 | 
			
		||||
 			# aka GNU/Linux C library 6
 | 
			
		||||
@@ -1547,6 +1562,16 @@
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
 	gas=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+mips*-*-linux-uclibc*)			# Linux MIPS, either endian. uClibc
 | 
			
		||||
+        tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
 | 
			
		||||
+	case ${target} in
 | 
			
		||||
+        mipsisa32*-*)
 | 
			
		||||
+                target_cpu_default="MASK_SOFT_FLOAT"
 | 
			
		||||
+		tm_defines="MIPS_ISA_DEFAULT=32"
 | 
			
		||||
+                ;;
 | 
			
		||||
+        esac
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc"
 | 
			
		||||
+	;;
 | 
			
		||||
 mips*-*-linux*)				# Linux MIPS, either endian.
 | 
			
		||||
         tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
@@ -1764,6 +1789,10 @@
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
 | 
			
		||||
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
 | 
			
		||||
 	;;
 | 
			
		||||
+powerpc-*-linux-uclibc*)
 | 
			
		||||
+	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
 | 
			
		||||
+	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm"
 | 
			
		||||
+	;;
 | 
			
		||||
 powerpc-*-linux*)
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
 | 
			
		||||
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
 | 
			
		||||
@@ -1916,7 +1945,7 @@
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h"
 | 
			
		||||
 	;;
 | 
			
		||||
 sh-*-linux* | sh[2346lbe]*-*-linux*)
 | 
			
		||||
-	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux"
 | 
			
		||||
+	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
 	sh*be-*-* | sh*eb-*-*) ;;
 | 
			
		||||
 	*)
 | 
			
		||||
@@ -1924,9 +1953,17 @@
 | 
			
		||||
 		tmake_file="${tmake_file} sh/t-le"
 | 
			
		||||
 		;;
 | 
			
		||||
 	esac
 | 
			
		||||
-	tmake_file="${tmake_file} sh/t-linux"
 | 
			
		||||
+	case ${target} in
 | 
			
		||||
+	*-*-linux-uclibc*) tmake_file="${tmake_file} t-linux-uclibc sh/t-linux-uclibc" ;;
 | 
			
		||||
+	*) tmake_file="${tmake_file} t-linux sh/t-linux" ;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
+	sh64*-*-linux-uclibc*)
 | 
			
		||||
+		tmake_file="${tmake_file} sh/t-sh64-uclibc"
 | 
			
		||||
+		tm_file="${tm_file} sh/sh64.h"
 | 
			
		||||
+		extra_headers="shmedia.h ushmedia.h sshmedia.h"
 | 
			
		||||
+		;;
 | 
			
		||||
 	sh64*)
 | 
			
		||||
 		tmake_file="${tmake_file} sh/t-sh64"
 | 
			
		||||
 		tm_file="${tm_file} sh/sh64.h"
 | 
			
		||||
diff -urN gcc-3.4.1-dist/libtool.m4 gcc-3.4.1/libtool.m4
 | 
			
		||||
--- gcc-3.4.1-dist/libtool.m4	2004-05-18 04:08:37.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/libtool.m4	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -689,6 +689,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*)
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 | 
			
		||||
     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 | 
			
		||||
diff -urN gcc-3.4.1-dist/ltconfig gcc-3.4.1/ltconfig
 | 
			
		||||
--- gcc-3.4.1-dist/ltconfig	2004-03-05 15:05:41.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/ltconfig	2004-08-12 15:55:48.000000000 -0500
 | 
			
		||||
@@ -602,6 +602,7 @@
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1262,6 +1263,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
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,47 +0,0 @@
 | 
			
		||||
# DP: Build and install libstdc++_pic.a library.
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.am~	2003-02-28 09:21:05.000000000 +0100
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.am	2003-02-28 09:28:50.000000000 +0100
 | 
			
		||||
@@ -224,6 +224,10 @@
 | 
			
		||||
 	  @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Added bits to build debug library.
 | 
			
		||||
 if GLIBCPP_BUILD_DEBUG
 | 
			
		||||
 all-local: build_debug
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.in~	2004-02-21 09:55:48.000000000 +0100
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.in	2004-02-21 09:59:34.000000000 +0100
 | 
			
		||||
@@ -585,7 +585,7 @@
 | 
			
		||||
 
 | 
			
		||||
 install-data-am: install-data-local
 | 
			
		||||
 
 | 
			
		||||
-install-exec-am: install-toolexeclibLTLIBRARIES
 | 
			
		||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 install-info: install-info-am
 | 
			
		||||
 
 | 
			
		||||
@@ -618,6 +618,7 @@
 | 
			
		||||
 	distclean-tags distdir dvi dvi-am info info-am install \
 | 
			
		||||
 	install-am install-data install-data-am install-data-local \
 | 
			
		||||
 	install-exec install-exec-am install-info install-info-am \
 | 
			
		||||
+	install-exec-local \
 | 
			
		||||
 	install-man install-strip install-toolexeclibLTLIBRARIES \
 | 
			
		||||
 	installcheck installcheck-am installdirs maintainer-clean \
 | 
			
		||||
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 | 
			
		||||
@@ -707,6 +708,11 @@
 | 
			
		||||
 install_debug:
 | 
			
		||||
 	(cd ${debugdir} && $(MAKE) \
 | 
			
		||||
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
 | 
			
		||||
+
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
 # Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
 .NOEXPORT:
 | 
			
		||||
@ -1,119 +0,0 @@
 | 
			
		||||
--- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm	2004-02-27 09:51:05.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.0/gcc/config/arm/arm.c	2004-04-24 18:16:25.000000000 -0400
 | 
			
		||||
@@ -8520,6 +8520,26 @@
 | 
			
		||||
   return_used_this_function = 0;  
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+/* Return the number (counting from 0) of
 | 
			
		||||
+   the least significant set bit in MASK.  */
 | 
			
		||||
+
 | 
			
		||||
+#ifdef __GNUC__
 | 
			
		||||
+inline
 | 
			
		||||
+#endif
 | 
			
		||||
+static int
 | 
			
		||||
+number_of_first_bit_set (mask)
 | 
			
		||||
+     int mask;
 | 
			
		||||
+{
 | 
			
		||||
+  int bit;
 | 
			
		||||
+
 | 
			
		||||
+  for (bit = 0;
 | 
			
		||||
+       (mask & (1 << bit)) == 0;
 | 
			
		||||
+       ++bit)
 | 
			
		||||
+    continue;
 | 
			
		||||
+
 | 
			
		||||
+  return bit;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 const char *
 | 
			
		||||
 arm_output_epilogue (rtx sibling)
 | 
			
		||||
 {
 | 
			
		||||
@@ -8753,27 +8773,47 @@
 | 
			
		||||
 	  saved_regs_mask |=   (1 << PC_REGNUM);
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-      /* Load the registers off the stack.  If we only have one register
 | 
			
		||||
-	 to load use the LDR instruction - it is faster.  */
 | 
			
		||||
-      if (saved_regs_mask == (1 << LR_REGNUM))
 | 
			
		||||
-	{
 | 
			
		||||
-	  /* The exception handler ignores the LR, so we do
 | 
			
		||||
-	     not really need to load it off the stack.  */
 | 
			
		||||
-	  if (eh_ofs)
 | 
			
		||||
-	    asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
-	  else
 | 
			
		||||
-	    asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
 | 
			
		||||
-	}
 | 
			
		||||
-      else if (saved_regs_mask)
 | 
			
		||||
+      if (saved_regs_mask)
 | 
			
		||||
 	{
 | 
			
		||||
-	  if (saved_regs_mask & (1 << SP_REGNUM))
 | 
			
		||||
-	    /* Note - write back to the stack register is not enabled
 | 
			
		||||
-	       (ie "ldmfd sp!...").  We know that the stack pointer is
 | 
			
		||||
-	       in the list of registers and if we add writeback the
 | 
			
		||||
-	       instruction becomes UNPREDICTABLE.  */
 | 
			
		||||
-	    print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	  /* Load the registers off the stack.  If we only have one register
 | 
			
		||||
+	     to load use the LDR instruction - it is faster.  */
 | 
			
		||||
+	  if (bit_count (saved_regs_mask) == 1)
 | 
			
		||||
+	    {
 | 
			
		||||
+	      int reg = number_of_first_bit_set (saved_regs_mask);
 | 
			
		||||
+
 | 
			
		||||
+	      switch (reg)
 | 
			
		||||
+		{
 | 
			
		||||
+		case SP_REGNUM:
 | 
			
		||||
+		  /* Mustn't use base writeback when loading SP.  */
 | 
			
		||||
+		  asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
+		  break;
 | 
			
		||||
+		  
 | 
			
		||||
+		case LR_REGNUM:
 | 
			
		||||
+		  if (eh_ofs)
 | 
			
		||||
+		    {
 | 
			
		||||
+		      /* The exception handler ignores the LR, so we do
 | 
			
		||||
+			 not really need to load it off the stack.  */
 | 
			
		||||
+		      asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
+		      break;
 | 
			
		||||
+		    }
 | 
			
		||||
+		  /* else fall through */
 | 
			
		||||
+		  
 | 
			
		||||
+		default:
 | 
			
		||||
+		  asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM);
 | 
			
		||||
+		  break;
 | 
			
		||||
+		}
 | 
			
		||||
+	    }
 | 
			
		||||
 	  else
 | 
			
		||||
-	    print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	    {
 | 
			
		||||
+	      if (saved_regs_mask & (1 << SP_REGNUM))
 | 
			
		||||
+		/* Note - write back to the stack register is not enabled
 | 
			
		||||
+		   (ie "ldmfd sp!...").  We know that the stack pointer is
 | 
			
		||||
+		   in the list of registers and if we add writeback the
 | 
			
		||||
+		   instruction becomes UNPREDICTABLE.  */
 | 
			
		||||
+		print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	      else
 | 
			
		||||
+		print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	    }
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
       if (current_function_pretend_args_size)
 | 
			
		||||
@@ -11401,22 +11441,6 @@
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-/* Return the number (counting from 0) of
 | 
			
		||||
-   the least significant set bit in MASK.  */
 | 
			
		||||
-
 | 
			
		||||
-inline static int
 | 
			
		||||
-number_of_first_bit_set (int mask)
 | 
			
		||||
-{
 | 
			
		||||
-  int bit;
 | 
			
		||||
-
 | 
			
		||||
-  for (bit = 0;
 | 
			
		||||
-       (mask & (1 << bit)) == 0;
 | 
			
		||||
-       ++bit)
 | 
			
		||||
-    continue;
 | 
			
		||||
-
 | 
			
		||||
-  return bit;
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
 /* Generate code to return from a thumb function.
 | 
			
		||||
    If 'reg_containing_return_addr' is -1, then the return address is
 | 
			
		||||
    actually on the stack, at the stack pointer.  */
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
--- gcc-3.4.1/libstdc++-v3/libmath/Makefile.am~	2003-08-27 22:29:42.000000000 +0100
 | 
			
		||||
+++ gcc-3.4.1/libstdc++-v3/libmath/Makefile.am	2004-07-22 16:41:45.152130128 +0100
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
 
 | 
			
		||||
 libmath_la_SOURCES = stubs.c
 | 
			
		||||
 
 | 
			
		||||
-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 # Only compiling "C" sources in this directory.
 | 
			
		||||
 LIBTOOL = @LIBTOOL@ --tag CC
 | 
			
		||||
--- gcc-3.4.1/libstdc++-v3/fragment.am.old	2004-07-22 18:24:58.024083656 +0100
 | 
			
		||||
+++ gcc-3.4.1/libstdc++-v3/fragment.am	2004-07-22 18:24:59.019932264 +0100
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
 | 
			
		||||
 
 | 
			
		||||
 # -I/-D flags to pass when compiling.
 | 
			
		||||
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@ -1,44 +0,0 @@
 | 
			
		||||
See http://gcc.gnu.org/PR15068
 | 
			
		||||
 | 
			
		||||
Fixes error
 | 
			
		||||
 | 
			
		||||
../sysdeps/generic/s_fmax.c: In function `__fmax':
 | 
			
		||||
../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
 | 
			
		||||
Please submit a full bug report,
 | 
			
		||||
with preprocessed source if appropriate.
 | 
			
		||||
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
 | 
			
		||||
make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
 | 
			
		||||
make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
 | 
			
		||||
make[1]: *** [math/others] Error 2
 | 
			
		||||
make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
 | 
			
		||||
make: *** [all] Error 2
 | 
			
		||||
 | 
			
		||||
[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
 | 
			
		||||
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
 | 
			
		||||
 | 
			
		||||
--- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
 | 
			
		||||
+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
 | 
			
		||||
@@ -1878,6 +1878,7 @@
 | 
			
		||||
 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
 | 
			
		||||
 	  rtx cond_true = XEXP (set_src, 0);
 | 
			
		||||
 	  rtx reg = XEXP (cond_true, 0);
 | 
			
		||||
+ 	  enum rtx_code inv_cond;
 | 
			
		||||
 
 | 
			
		||||
 	  if (GET_CODE (reg) == SUBREG)
 | 
			
		||||
 	    reg = SUBREG_REG (reg);
 | 
			
		||||
@@ -1886,11 +1887,13 @@
 | 
			
		||||
 	     in the form of a comparison of a register against zero.  
 | 
			
		||||
 	     If the condition is more complex than that, then it is safe
 | 
			
		||||
 	     not to record any information.  */
 | 
			
		||||
-	  if (GET_CODE (reg) == REG
 | 
			
		||||
+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
 | 
			
		||||
+ 	  if (inv_cond != UNKNOWN
 | 
			
		||||
+	      && GET_CODE (reg) == REG
 | 
			
		||||
 	      && XEXP (cond_true, 1) == const0_rtx)
 | 
			
		||||
 	    {
 | 
			
		||||
 	      rtx cond_false
 | 
			
		||||
-		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
 | 
			
		||||
+		= gen_rtx_fmt_ee (inv_cond,
 | 
			
		||||
 				  GET_MODE (cond_true), XEXP (cond_true, 0),
 | 
			
		||||
 				  XEXP (cond_true, 1));
 | 
			
		||||
 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
 | 
			
		||||
@ -1,70 +0,0 @@
 | 
			
		||||
By Lennert Buytenhek <buytenh@wantstofly.org>
 | 
			
		||||
Adds support for arm*b-linux* big-endian ARM targets
 | 
			
		||||
 | 
			
		||||
See http://gcc.gnu.org/PR16350
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-08-16 16:01:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-16 15:43:40.000000000 -0500
 | 
			
		||||
@@ -30,17 +30,34 @@
 | 
			
		||||
 /* Do not assume anything about header files.  */
 | 
			
		||||
 #define NO_IMPLICIT_EXTERN_C
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
 | 
			
		||||
+ * (big endian) configurations.
 | 
			
		||||
+ */
 | 
			
		||||
+#if TARGET_BIG_ENDIAN_DEFAULT
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
 | 
			
		||||
+#else
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT 0
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 /* Default is to use APCS-32 mode.  */
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT \
 | 
			
		||||
+		( ARM_FLAG_APCS_32 | \
 | 
			
		||||
+		  ARM_FLAG_MMU_TRAPS | \
 | 
			
		||||
+		  TARGET_ENDIAN_DEFAULT )
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
 | 
			
		||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
 | 
			
		||||
 
 | 
			
		||||
@@ -101,7 +118,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-08-16 16:01:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-16 16:01:25.000000000 -0500
 | 
			
		||||
@@ -672,6 +672,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
 | 
			
		||||
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-08-16 16:08:18.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-16 16:06:24.000000000 -0500
 | 
			
		||||
@@ -107,7 +107,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 #else
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-08-16 16:08:18.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-16 16:03:25.000000000 -0500
 | 
			
		||||
@@ -666,6 +666,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux-uclibc*)		# ARM GNU/Linux with ELF - uClibc
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux"
 | 
			
		||||
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
@ -1,16 +0,0 @@
 | 
			
		||||
Index: gcc/gcse.c
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /cvs/gcc/gcc/gcc/gcse.c,v
 | 
			
		||||
retrieving revision 1.288.2.9
 | 
			
		||||
diff -u -p -F^\([(a-zA-Z0-9_]\|#define\) -r1.288.2.9 gcse.c
 | 
			
		||||
--- gcc/gcc/gcse.c	30 Oct 2004 18:02:53 -0000	1.288.2.9
 | 
			
		||||
+++ gcc/gcc/gcse.c	14 Jul 2005 13:19:57 -0000
 | 
			
		||||
@@ -6445,7 +6445,7 @@ hoist_code (void)
 | 
			
		||||
 	  insn_inserted_p = 0;
 | 
			
		||||
 
 | 
			
		||||
 	  /* These tests should be the same as the tests above.  */
 | 
			
		||||
-	  if (TEST_BIT (hoist_vbeout[bb->index], i))
 | 
			
		||||
+	  if (TEST_BIT (hoist_exprs[bb->index], i))
 | 
			
		||||
 	    {
 | 
			
		||||
 	      /* We've found a potentially hoistable expression, now
 | 
			
		||||
 		 we look at every block BB dominates to see if it
 | 
			
		||||
@ -1,270 +0,0 @@
 | 
			
		||||
Note... modified my mjn3 to not conflict with the big endian arm patch.
 | 
			
		||||
Warning!!!  Only the linux target is aware of TARGET_ENDIAN_DEFAULT.
 | 
			
		||||
Also changed
 | 
			
		||||
  #define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
  %{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
  %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
to
 | 
			
		||||
  #define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
  %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
in gcc/config/arm/linux-elf.h.
 | 
			
		||||
#
 | 
			
		||||
# Submitted:
 | 
			
		||||
#
 | 
			
		||||
# Dimitry Andric <dimitry@andric.com>, 2004-05-01
 | 
			
		||||
#
 | 
			
		||||
# Description:
 | 
			
		||||
#
 | 
			
		||||
# Nicholas Pitre released this patch for gcc soft-float support here: 
 | 
			
		||||
# http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-October/006436.html
 | 
			
		||||
#
 | 
			
		||||
# This version has been adapted to work with gcc 3.4.0.
 | 
			
		||||
#
 | 
			
		||||
# The original patch doesn't distinguish between softfpa and softvfp modes
 | 
			
		||||
# in the way Nicholas Pitre probably meant.  His description is:
 | 
			
		||||
#
 | 
			
		||||
# "Default is to use APCS-32 mode with soft-vfp.  The old Linux default for
 | 
			
		||||
# floats can be achieved with -mhard-float or with the configure
 | 
			
		||||
# --with-float=hard option.  If -msoft-float or --with-float=soft is used then
 | 
			
		||||
# software float support will be used just like the default but with the legacy
 | 
			
		||||
# big endian word ordering for double float representation instead."
 | 
			
		||||
#
 | 
			
		||||
# Which means the following:
 | 
			
		||||
#
 | 
			
		||||
# * If you compile without -mhard-float or -msoft-float, you should get
 | 
			
		||||
#   software floating point, using the VFP format.  The produced object file
 | 
			
		||||
#   should have these flags in its header:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 600: [APCS-32] [VFP float format] [software FP]
 | 
			
		||||
#
 | 
			
		||||
# * If you compile with -mhard-float, you should get hardware floating point,
 | 
			
		||||
#   which always uses the FPA format.  Object file header flags should be:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 0: [APCS-32] [FPA float format]
 | 
			
		||||
#
 | 
			
		||||
# * If you compile with -msoft-float, you should get software floating point,
 | 
			
		||||
#   using the FPA format.  This is done for compatibility reasons with many
 | 
			
		||||
#   existing distributions.  Object file header flags should be:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 200: [APCS-32] [FPA float format] [software FP]
 | 
			
		||||
#
 | 
			
		||||
# The original patch from Nicholas Pitre contained the following constructs:
 | 
			
		||||
#
 | 
			
		||||
#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
#     %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
#     %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
 | 
			
		||||
#
 | 
			
		||||
# However, gcc doesn't accept this ";:" notation, used in the 3rd line.  This
 | 
			
		||||
# is probably the reason Robert Schwebel modified it to:
 | 
			
		||||
#
 | 
			
		||||
#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
#     %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
#     %{!mhard-float: %{msoft-float:-mfpu=softfpa -mfpu=softvfp}}"
 | 
			
		||||
#
 | 
			
		||||
# But this causes the following behaviour:
 | 
			
		||||
#
 | 
			
		||||
# * If you compile without -mhard-float or -msoft-float, the compiler generates
 | 
			
		||||
#   software floating point instructions, but *nothing* is passed to the
 | 
			
		||||
#   assembler, which results in an object file which has flags:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 0: [APCS-32] [FPA float format]
 | 
			
		||||
#
 | 
			
		||||
#   This is not correct!
 | 
			
		||||
#
 | 
			
		||||
# * If you compile with -mhard-float, the compiler generates hardware floating
 | 
			
		||||
#   point instructions, and passes "-mfpu=fpa" to the assembler, which results
 | 
			
		||||
#   in an object file which has the same flags as in the previous item, but now
 | 
			
		||||
#   those *are* correct.
 | 
			
		||||
#    
 | 
			
		||||
# * If you compile with -msoft-float, the compiler generates software floating
 | 
			
		||||
#   point instructions, and passes "-mfpu=softfpa -mfpu=softvfp" (in that
 | 
			
		||||
#   order) to the assembler, which results in an object file with flags:
 | 
			
		||||
#
 | 
			
		||||
#   private flags = 600: [APCS-32] [VFP float format] [software FP]
 | 
			
		||||
#
 | 
			
		||||
#   This is not correct, because the last "-mfpu=" option on the assembler
 | 
			
		||||
#   command line determines the actual FPU convention used (which should be FPA
 | 
			
		||||
#   in this case).
 | 
			
		||||
#
 | 
			
		||||
# Therefore, I modified this patch to get the desired behaviour.  Every
 | 
			
		||||
# instance of the notation:
 | 
			
		||||
#
 | 
			
		||||
#   %{msoft-float:-mfpu=softfpa -mfpu=softvfp}
 | 
			
		||||
#
 | 
			
		||||
# was changed to:
 | 
			
		||||
#
 | 
			
		||||
#   %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}
 | 
			
		||||
#
 | 
			
		||||
# I also did the following:
 | 
			
		||||
# 
 | 
			
		||||
# * Modified all TARGET_DEFAULT macros I could find to include ARM_FLAG_VFP, to
 | 
			
		||||
#   be consistent with Nicholas' original patch.
 | 
			
		||||
# * Removed any "msoft-float" or "mhard-float" from all MULTILIB_DEFAULTS
 | 
			
		||||
#   macros I could find.  I think that if you compile without any options, you
 | 
			
		||||
#   would like to get the defaults. :)
 | 
			
		||||
# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
 | 
			
		||||
#   anymore.  (The required functions are now in libgcc.)
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/coff.h gcc-3.4.1/gcc/config/arm/coff.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/coff.h	2004-02-24 08:25:22.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/coff.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -31,11 +31,16 @@
 | 
			
		||||
 #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
 | 
			
		||||
 
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_APCS_FRAME	\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
 
 | 
			
		||||
 #ifndef MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 /* This is COFF, but prefer stabs.  */
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/elf.h gcc-3.4.1/gcc/config/arm/elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/elf.h	2004-02-24 08:25:22.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/elf.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -46,7 +46,9 @@
 | 
			
		||||
 
 | 
			
		||||
 #ifndef SUBTARGET_ASM_FLOAT_SPEC
 | 
			
		||||
 #define SUBTARGET_ASM_FLOAT_SPEC "\
 | 
			
		||||
-%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}"
 | 
			
		||||
+%{mapcs-float:-mfloat} \
 | 
			
		||||
+%{mhard-float:-mfpu=fpa} \
 | 
			
		||||
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef ASM_SPEC
 | 
			
		||||
@@ -106,12 +108,17 @@
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_APCS_FRAME	\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
 | 
			
		||||
+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_ASM_FILE_START_APP_OFF true
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/linux-elf.h	2004-09-02 21:50:52.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-09-02 22:00:49.000000000 -0500
 | 
			
		||||
@@ -44,12 +44,26 @@
 | 
			
		||||
 #define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-/* Default is to use APCS-32 mode.  */
 | 
			
		||||
+/*
 | 
			
		||||
+ * Default is to use APCS-32 mode with soft-vfp.
 | 
			
		||||
+ * The old Linux default for floats can be achieved with -mhard-float
 | 
			
		||||
+ * or with the configure --with-float=hard option.
 | 
			
		||||
+ * If -msoft-float or --with-float=soft is used then software float 
 | 
			
		||||
+ * support will be used just like the default but with the legacy
 | 
			
		||||
+ * big endian word ordering for double float representation instead.
 | 
			
		||||
+ */
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT \
 | 
			
		||||
-		( ARM_FLAG_APCS_32 | \
 | 
			
		||||
-		  ARM_FLAG_MMU_TRAPS | \
 | 
			
		||||
-		  TARGET_ENDIAN_DEFAULT )
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| TARGET_ENDIAN_DEFAULT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
+
 | 
			
		||||
+#undef  SUBTARGET_EXTRA_ASM_SPEC
 | 
			
		||||
+#define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
+%{mhard-float:-mfpu=fpa} \
 | 
			
		||||
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +71,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +86,7 @@
 | 
			
		||||
    %{shared:-lc} \
 | 
			
		||||
    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
 | 
			
		||||
 
 | 
			
		||||
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
 | 
			
		||||
+#define LIBGCC_SPEC "-lgcc"
 | 
			
		||||
 
 | 
			
		||||
 /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
 | 
			
		||||
    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/t-linux gcc-3.4.1/gcc/config/arm/t-linux
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/t-linux	2003-09-20 16:09:07.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/t-linux	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -4,7 +4,10 @@
 | 
			
		||||
 LIBGCC2_DEBUG_CFLAGS = -g0
 | 
			
		||||
 
 | 
			
		||||
 LIB1ASMSRC = arm/lib1funcs.asm
 | 
			
		||||
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
 | 
			
		||||
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
 | 
			
		||||
+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
 | 
			
		||||
+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
 | 
			
		||||
+	_fixsfsi _fixunssfsi
 | 
			
		||||
 
 | 
			
		||||
 # MULTILIB_OPTIONS = mhard-float/msoft-float
 | 
			
		||||
 # MULTILIB_DIRNAMES = hard-float soft-float
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/unknown-elf.h gcc-3.4.1/gcc/config/arm/unknown-elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/unknown-elf.h	2004-02-24 08:25:22.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/unknown-elf.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -30,7 +30,12 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Default to using APCS-32 and software floating point.  */
 | 
			
		||||
 #ifndef TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT	(ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_APCS_FRAME	\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 /* Now we define the strings used to build the spec file.  */
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/xscale-elf.h gcc-3.4.1/gcc/config/arm/xscale-elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/xscale-elf.h	2003-07-01 18:26:43.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/xscale-elf.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -49,11 +49,12 @@
 | 
			
		||||
 		     endian, regardless of the endian-ness of the memory
 | 
			
		||||
 		     system.  */
 | 
			
		||||
 		     
 | 
			
		||||
-#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
-  %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
-  %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
 | 
			
		||||
+#define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
+%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
+%{mhard-float:-mfpu=fpa} \
 | 
			
		||||
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
 
 | 
			
		||||
 #ifndef MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-  { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
 | 
			
		||||
+  { "mlittle-endian", "mno-thumb-interwork", "marm" }
 | 
			
		||||
 #endif
 | 
			
		||||
@ -1,462 +0,0 @@
 | 
			
		||||
--- gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
@@ -2310,10 +2310,16 @@
 | 
			
		||||
 *)
 | 
			
		||||
 	echo "*** Configuration ${target} not supported" 1>&2
 | 
			
		||||
 	exit 1
 | 
			
		||||
 	;;
 | 
			
		||||
 esac
 | 
			
		||||
+
 | 
			
		||||
+# Rather than hook into each target, just do it after all the linux
 | 
			
		||||
+# targets have been processed
 | 
			
		||||
+case ${target} in
 | 
			
		||||
+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC"
 | 
			
		||||
+esac
 | 
			
		||||
 
 | 
			
		||||
 # Support for --with-cpu and related options (and a few unrelated options,
 | 
			
		||||
 # too).
 | 
			
		||||
 case ${with_cpu} in
 | 
			
		||||
   yes | no)
 | 
			
		||||
--- gcc-3.4.4/gcc/config/alpha/linux-elf.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/alpha/linux-elf.h
 | 
			
		||||
@@ -27,7 +27,11 @@
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
 | 
			
		||||
   %{O*:-O3} %{!O*:-O1}						\
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-01-31 00:18:11.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-12 15:54:42.000000000 -0500
 | 
			
		||||
@@ -80,14 +80,19 @@
 | 
			
		||||
 #define ENDFILE_SPEC \
 | 
			
		||||
   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} %{Wl,*:%*} \
 | 
			
		||||
    %{static:-Bstatic} \
 | 
			
		||||
    %{shared:-shared} \
 | 
			
		||||
    %{symbolic:-Bsymbolic} \
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
-   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
 | 
			
		||||
+   %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
 | 
			
		||||
    -X \
 | 
			
		||||
    %{mbig-endian:-EB}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/cris/linux.h	2003-11-28 21:08:09.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/cris/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -79,6 +79,25 @@
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +112,8 @@
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/i386/linux.h	2003-11-28 21:08:10.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/i386/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -110,22 +110,21 @@
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #ifdef USE_GNULIBC_1
 | 
			
		||||
-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 | 
			
		||||
-  %{!shared: \
 | 
			
		||||
-    %{!ibcs: \
 | 
			
		||||
-      %{!static: \
 | 
			
		||||
-	%{rdynamic:-export-dynamic} \
 | 
			
		||||
-	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
 | 
			
		||||
-	%{static:-static}}}"
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.1"
 | 
			
		||||
+#else
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
 #else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
 	%{rdynamic:-export-dynamic} \
 | 
			
		||||
-	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+	%{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
 	%{static:-static}}}"
 | 
			
		||||
-#endif
 | 
			
		||||
 
 | 
			
		||||
 /* A C statement (sans semicolon) to output to the stdio stream
 | 
			
		||||
    FILE the assembler definition of uninitialized global DECL named
 | 
			
		||||
--- gcc-3.4.4/gcc/config/i386/linux64.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/i386/linux64.h
 | 
			
		||||
@@ -54,14 +54,21 @@
 | 
			
		||||
    When the -shared link option is used a final link is not being
 | 
			
		||||
    done.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
-      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 | 
			
		||||
+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 | 
			
		||||
+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 | 
			
		||||
     %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 #define MULTILIB_DEFAULTS { "m64" }
 | 
			
		||||
--- gcc-3.4.4/gcc/config/ia64/linux.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/ia64/linux.h
 | 
			
		||||
@@ -37,13 +37,18 @@
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
--- gcc-3.4.4/gcc/config/m68k/linux.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/m68k/linux.h
 | 
			
		||||
@@ -131,12 +131,17 @@
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m m68kelf %{shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
     %{static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* For compatibility with linux/a.out */
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/mips/linux.h	2004-06-15 20:42:24.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/mips/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -109,14 +109,19 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
--- gcc-3.4.4/gcc/config/pa/pa-linux.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/pa/pa-linux.h
 | 
			
		||||
@@ -77,13 +77,18 @@
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* glibc's profiling functions don't need gcc to allocate counters.  */
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/rs6000/linux.h	2004-02-25 09:11:19.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/rs6000/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -69,7 +69,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h	2004-06-10 01:39:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/rs6000/sysv4.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -947,6 +947,7 @@
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1125,6 +1126,10 @@
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1291,6 +1296,7 @@
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
--- gcc-3.4.4/gcc/config/s390/linux.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/s390/linux.h
 | 
			
		||||
@@ -77,6 +77,13 @@
 | 
			
		||||
 #define MULTILIB_DEFAULTS { "m31" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 | 
			
		||||
@@ -86,8 +93,8 @@
 | 
			
		||||
       %{!static: \
 | 
			
		||||
 	%{rdynamic:-export-dynamic} \
 | 
			
		||||
 	%{!dynamic-linker: \
 | 
			
		||||
-          %{m31:-dynamic-linker /lib/ld.so.1} \
 | 
			
		||||
-          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 | 
			
		||||
+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 | 
			
		||||
+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/linux.h	2004-01-11 20:29:13.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -73,11 +73,16 @@
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
-     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
 
 | 
			
		||||
 #undef LIB_SPEC
 | 
			
		||||
--- gcc-3.4.4/gcc/config/sparc/linux.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/sparc/linux.h
 | 
			
		||||
@@ -162,13 +162,18 @@
 | 
			
		||||
         %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 #else
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!mno-relax:%{!r:-relax}} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
--- gcc-3.4.4/gcc/config/sparc/linux64.h
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/sparc/linux64.h
 | 
			
		||||
@@ -167,12 +166,17 @@
 | 
			
		||||
   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 | 
			
		||||
   { "link_arch",	 LINK_ARCH_SPEC },
 | 
			
		||||
     
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}} \
 | 
			
		||||
 "
 | 
			
		||||
 
 | 
			
		||||
--- gcc-3.4.1-dist/libtool.m4	2004-05-18 04:08:37.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/libtool.m4	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -689,6 +689,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*)
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 | 
			
		||||
     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 | 
			
		||||
--- gcc-3.4.1-dist/ltconfig	2004-03-05 15:05:41.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/ltconfig	2004-08-12 15:55:48.000000000 -0500
 | 
			
		||||
@@ -602,6 +602,7 @@
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1262,6 +1263,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
 | 
			
		||||
--- gcc-3.4.1-dist/boehm-gc/configure	2004-07-01 14:14:03.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/boehm-gc/configure	2004-08-12 16:22:57.000000000 -0500
 | 
			
		||||
@@ -1947,6 +1947,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*)
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 | 
			
		||||
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 | 
			
		||||
--- gcc-3.4.1-dist/boehm-gc/ltconfig	2002-11-20 09:59:06.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/boehm-gc/ltconfig	2004-08-12 15:54:42.000000000 -0500
 | 
			
		||||
@@ -1981,6 +1981,23 @@
 | 
			
		||||
   fi
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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
 | 
			
		||||
+  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
 | 
			
		||||
+  file_magic_cmd=/usr/bin/file
 | 
			
		||||
+  file_magic_test_file=`echo /lib/libuClibc-*.so`
 | 
			
		||||
+
 | 
			
		||||
+  # Assume using the uClibc dynamic linker.
 | 
			
		||||
+  dynamic_linker="uClibc ld.so"
 | 
			
		||||
+  ;;
 | 
			
		||||
+
 | 
			
		||||
 netbsd*)
 | 
			
		||||
   version_type=sunos
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,47 +0,0 @@
 | 
			
		||||
# DP: Build and install libstdc++_pic.a library.
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.am~	2003-02-28 09:21:05.000000000 +0100
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.am	2003-02-28 09:28:50.000000000 +0100
 | 
			
		||||
@@ -224,6 +224,10 @@
 | 
			
		||||
 	  @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Added bits to build debug library.
 | 
			
		||||
 if GLIBCPP_BUILD_DEBUG
 | 
			
		||||
 all-local: build_debug
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.in~	2004-02-21 09:55:48.000000000 +0100
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.in	2004-02-21 09:59:34.000000000 +0100
 | 
			
		||||
@@ -585,7 +585,7 @@
 | 
			
		||||
 
 | 
			
		||||
 install-data-am: install-data-local
 | 
			
		||||
 
 | 
			
		||||
-install-exec-am: install-toolexeclibLTLIBRARIES
 | 
			
		||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 install-info: install-info-am
 | 
			
		||||
 
 | 
			
		||||
@@ -618,6 +618,7 @@
 | 
			
		||||
 	distclean-tags distdir dvi dvi-am info info-am install \
 | 
			
		||||
 	install-am install-data install-data-am install-data-local \
 | 
			
		||||
 	install-exec install-exec-am install-info install-info-am \
 | 
			
		||||
+	install-exec-local \
 | 
			
		||||
 	install-man install-strip install-toolexeclibLTLIBRARIES \
 | 
			
		||||
 	installcheck installcheck-am installdirs maintainer-clean \
 | 
			
		||||
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 | 
			
		||||
@@ -707,6 +708,11 @@
 | 
			
		||||
 install_debug:
 | 
			
		||||
 	(cd ${debugdir} && $(MAKE) \
 | 
			
		||||
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
 | 
			
		||||
+
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
 # Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
 .NOEXPORT:
 | 
			
		||||
@ -1,65 +0,0 @@
 | 
			
		||||
--- gcc-3.4.0/gcc/config/arm/arm.md.arm-ldm-peephole	2004-01-13 08:24:37.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.0/gcc/config/arm/arm.md	2004-04-24 18:18:04.000000000 -0400
 | 
			
		||||
@@ -8810,13 +8810,16 @@
 | 
			
		||||
    (set_attr "length" "4,8,8")]
 | 
			
		||||
 )
 | 
			
		||||
 
 | 
			
		||||
+; Try to convert LDR+LDR+arith into [add+]LDM+arith
 | 
			
		||||
+; On XScale, LDM is always slower than two LDRs, so only do this if
 | 
			
		||||
+; optimising for size.
 | 
			
		||||
 (define_insn "*arith_adjacentmem"
 | 
			
		||||
   [(set (match_operand:SI 0 "s_register_operand" "=r")
 | 
			
		||||
 	(match_operator:SI 1 "shiftable_operator"
 | 
			
		||||
 	 [(match_operand:SI 2 "memory_operand" "m")
 | 
			
		||||
 	  (match_operand:SI 3 "memory_operand" "m")]))
 | 
			
		||||
    (clobber (match_scratch:SI 4 "=r"))]
 | 
			
		||||
-  "TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])"
 | 
			
		||||
+  "TARGET_ARM && (!arm_tune_xscale || optimize_size) && adjacent_mem_locations (operands[2], operands[3])"
 | 
			
		||||
   "*
 | 
			
		||||
   {
 | 
			
		||||
     rtx ldm[3];
 | 
			
		||||
@@ -8851,6 +8854,8 @@
 | 
			
		||||
       }
 | 
			
		||||
    if (val1 && val2)
 | 
			
		||||
       {
 | 
			
		||||
+	/* This would be a loss on a Harvard core, but adjacent_mem_locations()
 | 
			
		||||
+	   will prevent it from happening.  */
 | 
			
		||||
 	rtx ops[3];
 | 
			
		||||
 	ldm[0] = ops[0] = operands[4];
 | 
			
		||||
 	ops[1] = XEXP (XEXP (operands[2], 0), 0);
 | 
			
		||||
--- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm-peephole	2004-04-24 18:16:25.000000000 -0400
 | 
			
		||||
+++ gcc-3.4.0/gcc/config/arm/arm.c	2004-04-24 18:18:04.000000000 -0400
 | 
			
		||||
@@ -4838,6 +4841,11 @@
 | 
			
		||||
       *load_offset = unsorted_offsets[order[0]];
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
+  /* For XScale a two-word LDM is a performance loss, so only do this if
 | 
			
		||||
+     size is more important.  See comments in arm_gen_load_multiple.  */
 | 
			
		||||
+  if (nops == 2 && arm_tune_xscale && !optimize_size)
 | 
			
		||||
+    return 0;
 | 
			
		||||
+
 | 
			
		||||
   if (unsorted_offsets[order[0]] == 0)
 | 
			
		||||
     return 1; /* ldmia */
 | 
			
		||||
 
 | 
			
		||||
@@ -5064,6 +5072,11 @@
 | 
			
		||||
       *load_offset = unsorted_offsets[order[0]];
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
+  /* For XScale a two-word LDM is a performance loss, so only do this if
 | 
			
		||||
+     size is more important.  See comments in arm_gen_load_multiple.  */
 | 
			
		||||
+  if (nops == 2 && arm_tune_xscale && !optimize_size)
 | 
			
		||||
+    return 0;
 | 
			
		||||
+
 | 
			
		||||
   if (unsorted_offsets[order[0]] == 0)
 | 
			
		||||
     return 1; /* stmia */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-3.4.0/gcc/genpeep.c.arm-ldm-peephole	2003-07-05 01:27:22.000000000 -0400
 | 
			
		||||
+++ gcc-3.4.0/gcc/genpeep.c	2004-04-24 18:18:04.000000000 -0400
 | 
			
		||||
@@ -381,6 +381,7 @@
 | 
			
		||||
   printf ("#include \"recog.h\"\n");
 | 
			
		||||
   printf ("#include \"except.h\"\n\n");
 | 
			
		||||
   printf ("#include \"function.h\"\n\n");
 | 
			
		||||
+  printf ("#include \"flags.h\"\n\n");
 | 
			
		||||
 
 | 
			
		||||
   printf ("#ifdef HAVE_peephole\n");
 | 
			
		||||
   printf ("extern rtx peep_operand[];\n\n");
 | 
			
		||||
@ -1,42 +0,0 @@
 | 
			
		||||
The 30_all_gcc34-arm-ldm-peephole.patch from Debian was conflicting 
 | 
			
		||||
with the newer 36_all_pr16201-fix.patch, so i cut out the hunk from 
 | 
			
		||||
it that was causing problems and grabbed an updated version from 
 | 
			
		||||
upstream cvs.
 | 
			
		||||
 | 
			
		||||
Index: gcc/config/arm/arm.c
 | 
			
		||||
===================================================================
 | 
			
		||||
RCS file: /cvsroot/gcc/gcc/gcc/config/arm/arm.c,v
 | 
			
		||||
retrieving revision 1.432
 | 
			
		||||
retrieving revision 1.433
 | 
			
		||||
diff -u -r1.432 -r1.433
 | 
			
		||||
--- gcc-3.4.4/gcc/config/arm/arm.c	29 Mar 2005 03:00:23 -0000	1.432
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/arm/arm.c	1 Apr 2005 11:02:22 -0000	1.433
 | 
			
		||||
@@ -5139,6 +5139,10 @@
 | 
			
		||||
 int
 | 
			
		||||
 adjacent_mem_locations (rtx a, rtx b)
 | 
			
		||||
 {
 | 
			
		||||
+  /* We don't guarantee to preserve the order of these memory refs.  */
 | 
			
		||||
+  if (volatile_refs_p (a) || volatile_refs_p (b))
 | 
			
		||||
+    return 0;
 | 
			
		||||
+
 | 
			
		||||
   if ((GET_CODE (XEXP (a, 0)) == REG
 | 
			
		||||
        || (GET_CODE (XEXP (a, 0)) == PLUS
 | 
			
		||||
 	   && GET_CODE (XEXP (XEXP (a, 0), 1)) == CONST_INT))
 | 
			
		||||
@@ -5178,6 +5182,17 @@
 | 
			
		||||
 	return 0;
 | 
			
		||||
 
 | 
			
		||||
       val_diff = val1 - val0;
 | 
			
		||||
+
 | 
			
		||||
+      if (arm_ld_sched)
 | 
			
		||||
+	{
 | 
			
		||||
+	  /* If the target has load delay slots, then there's no benefit
 | 
			
		||||
+	     to using an ldm instruction unless the offset is zero and
 | 
			
		||||
+	     we are optimizing for size.  */
 | 
			
		||||
+	  return (optimize_size && (REGNO (reg0) == REGNO (reg1))
 | 
			
		||||
+		  && (val0 == 0 || val1 == 0 || val0 == 4 || val1 == 4)
 | 
			
		||||
+		  && (val_diff == 4 || val_diff == -4));
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
       return ((REGNO (reg0) == REGNO (reg1))
 | 
			
		||||
 	      && (val_diff == 4 || val_diff == -4));
 | 
			
		||||
     }
 | 
			
		||||
@ -1,119 +0,0 @@
 | 
			
		||||
--- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm	2004-02-27 09:51:05.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.0/gcc/config/arm/arm.c	2004-04-24 18:16:25.000000000 -0400
 | 
			
		||||
@@ -8520,6 +8520,26 @@
 | 
			
		||||
   return_used_this_function = 0;  
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+/* Return the number (counting from 0) of
 | 
			
		||||
+   the least significant set bit in MASK.  */
 | 
			
		||||
+
 | 
			
		||||
+#ifdef __GNUC__
 | 
			
		||||
+inline
 | 
			
		||||
+#endif
 | 
			
		||||
+static int
 | 
			
		||||
+number_of_first_bit_set (mask)
 | 
			
		||||
+     int mask;
 | 
			
		||||
+{
 | 
			
		||||
+  int bit;
 | 
			
		||||
+
 | 
			
		||||
+  for (bit = 0;
 | 
			
		||||
+       (mask & (1 << bit)) == 0;
 | 
			
		||||
+       ++bit)
 | 
			
		||||
+    continue;
 | 
			
		||||
+
 | 
			
		||||
+  return bit;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 const char *
 | 
			
		||||
 arm_output_epilogue (rtx sibling)
 | 
			
		||||
 {
 | 
			
		||||
@@ -8753,27 +8773,47 @@
 | 
			
		||||
 	  saved_regs_mask |=   (1 << PC_REGNUM);
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-      /* Load the registers off the stack.  If we only have one register
 | 
			
		||||
-	 to load use the LDR instruction - it is faster.  */
 | 
			
		||||
-      if (saved_regs_mask == (1 << LR_REGNUM))
 | 
			
		||||
-	{
 | 
			
		||||
-	  /* The exception handler ignores the LR, so we do
 | 
			
		||||
-	     not really need to load it off the stack.  */
 | 
			
		||||
-	  if (eh_ofs)
 | 
			
		||||
-	    asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
-	  else
 | 
			
		||||
-	    asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
 | 
			
		||||
-	}
 | 
			
		||||
-      else if (saved_regs_mask)
 | 
			
		||||
+      if (saved_regs_mask)
 | 
			
		||||
 	{
 | 
			
		||||
-	  if (saved_regs_mask & (1 << SP_REGNUM))
 | 
			
		||||
-	    /* Note - write back to the stack register is not enabled
 | 
			
		||||
-	       (ie "ldmfd sp!...").  We know that the stack pointer is
 | 
			
		||||
-	       in the list of registers and if we add writeback the
 | 
			
		||||
-	       instruction becomes UNPREDICTABLE.  */
 | 
			
		||||
-	    print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	  /* Load the registers off the stack.  If we only have one register
 | 
			
		||||
+	     to load use the LDR instruction - it is faster.  */
 | 
			
		||||
+	  if (bit_count (saved_regs_mask) == 1)
 | 
			
		||||
+	    {
 | 
			
		||||
+	      int reg = number_of_first_bit_set (saved_regs_mask);
 | 
			
		||||
+
 | 
			
		||||
+	      switch (reg)
 | 
			
		||||
+		{
 | 
			
		||||
+		case SP_REGNUM:
 | 
			
		||||
+		  /* Mustn't use base writeback when loading SP.  */
 | 
			
		||||
+		  asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
+		  break;
 | 
			
		||||
+		  
 | 
			
		||||
+		case LR_REGNUM:
 | 
			
		||||
+		  if (eh_ofs)
 | 
			
		||||
+		    {
 | 
			
		||||
+		      /* The exception handler ignores the LR, so we do
 | 
			
		||||
+			 not really need to load it off the stack.  */
 | 
			
		||||
+		      asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
+		      break;
 | 
			
		||||
+		    }
 | 
			
		||||
+		  /* else fall through */
 | 
			
		||||
+		  
 | 
			
		||||
+		default:
 | 
			
		||||
+		  asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM);
 | 
			
		||||
+		  break;
 | 
			
		||||
+		}
 | 
			
		||||
+	    }
 | 
			
		||||
 	  else
 | 
			
		||||
-	    print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	    {
 | 
			
		||||
+	      if (saved_regs_mask & (1 << SP_REGNUM))
 | 
			
		||||
+		/* Note - write back to the stack register is not enabled
 | 
			
		||||
+		   (ie "ldmfd sp!...").  We know that the stack pointer is
 | 
			
		||||
+		   in the list of registers and if we add writeback the
 | 
			
		||||
+		   instruction becomes UNPREDICTABLE.  */
 | 
			
		||||
+		print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	      else
 | 
			
		||||
+		print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	    }
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
       if (current_function_pretend_args_size)
 | 
			
		||||
@@ -11401,22 +11441,6 @@
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-/* Return the number (counting from 0) of
 | 
			
		||||
-   the least significant set bit in MASK.  */
 | 
			
		||||
-
 | 
			
		||||
-inline static int
 | 
			
		||||
-number_of_first_bit_set (int mask)
 | 
			
		||||
-{
 | 
			
		||||
-  int bit;
 | 
			
		||||
-
 | 
			
		||||
-  for (bit = 0;
 | 
			
		||||
-       (mask & (1 << bit)) == 0;
 | 
			
		||||
-       ++bit)
 | 
			
		||||
-    continue;
 | 
			
		||||
-
 | 
			
		||||
-  return bit;
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
 /* Generate code to return from a thumb function.
 | 
			
		||||
    If 'reg_containing_return_addr' is -1, then the return address is
 | 
			
		||||
    actually on the stack, at the stack pointer.  */
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
--- gcc-3.4.1/libstdc++-v3/libmath/Makefile.am~	2003-08-27 22:29:42.000000000 +0100
 | 
			
		||||
+++ gcc-3.4.1/libstdc++-v3/libmath/Makefile.am	2004-07-22 16:41:45.152130128 +0100
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
 
 | 
			
		||||
 libmath_la_SOURCES = stubs.c
 | 
			
		||||
 
 | 
			
		||||
-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 # Only compiling "C" sources in this directory.
 | 
			
		||||
 LIBTOOL = @LIBTOOL@ --tag CC
 | 
			
		||||
--- gcc-3.4.1/libstdc++-v3/fragment.am.old	2004-07-22 18:24:58.024083656 +0100
 | 
			
		||||
+++ gcc-3.4.1/libstdc++-v3/fragment.am	2004-07-22 18:24:59.019932264 +0100
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
 | 
			
		||||
 
 | 
			
		||||
 # -I/-D flags to pass when compiling.
 | 
			
		||||
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@ -1,44 +0,0 @@
 | 
			
		||||
See http://gcc.gnu.org/PR15068
 | 
			
		||||
 | 
			
		||||
Fixes error
 | 
			
		||||
 | 
			
		||||
../sysdeps/generic/s_fmax.c: In function `__fmax':
 | 
			
		||||
../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
 | 
			
		||||
Please submit a full bug report,
 | 
			
		||||
with preprocessed source if appropriate.
 | 
			
		||||
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
 | 
			
		||||
make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
 | 
			
		||||
make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
 | 
			
		||||
make[1]: *** [math/others] Error 2
 | 
			
		||||
make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
 | 
			
		||||
make: *** [all] Error 2
 | 
			
		||||
 | 
			
		||||
[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
 | 
			
		||||
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
 | 
			
		||||
 | 
			
		||||
--- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
 | 
			
		||||
+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
 | 
			
		||||
@@ -1878,6 +1878,7 @@
 | 
			
		||||
 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
 | 
			
		||||
 	  rtx cond_true = XEXP (set_src, 0);
 | 
			
		||||
 	  rtx reg = XEXP (cond_true, 0);
 | 
			
		||||
+ 	  enum rtx_code inv_cond;
 | 
			
		||||
 
 | 
			
		||||
 	  if (GET_CODE (reg) == SUBREG)
 | 
			
		||||
 	    reg = SUBREG_REG (reg);
 | 
			
		||||
@@ -1886,11 +1887,13 @@
 | 
			
		||||
 	     in the form of a comparison of a register against zero.  
 | 
			
		||||
 	     If the condition is more complex than that, then it is safe
 | 
			
		||||
 	     not to record any information.  */
 | 
			
		||||
-	  if (GET_CODE (reg) == REG
 | 
			
		||||
+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
 | 
			
		||||
+ 	  if (inv_cond != UNKNOWN
 | 
			
		||||
+	      && GET_CODE (reg) == REG
 | 
			
		||||
 	      && XEXP (cond_true, 1) == const0_rtx)
 | 
			
		||||
 	    {
 | 
			
		||||
 	      rtx cond_false
 | 
			
		||||
-		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
 | 
			
		||||
+		= gen_rtx_fmt_ee (inv_cond,
 | 
			
		||||
 				  GET_MODE (cond_true), XEXP (cond_true, 0),
 | 
			
		||||
 				  XEXP (cond_true, 1));
 | 
			
		||||
 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
 | 
			
		||||
@ -1,43 +0,0 @@
 | 
			
		||||
--- gcc/gcc/config/sh/sh.c
 | 
			
		||||
+++ gcc/gcc/config/sh/sh.c
 | 
			
		||||
@@ -9106,6 +9106,15 @@ sh_output_mi_thunk (FILE *file, tree thu
 | 
			
		||||
     }
 | 
			
		||||
   this = FUNCTION_ARG (cum, Pmode, ptr_type_node, 1);
 | 
			
		||||
 
 | 
			
		||||
+  /* In PIC case, we set PIC register to compute the target address.  We
 | 
			
		||||
+     can use a scratch register to save and restore the original value  
 | 
			
		||||
+     except for SHcompact.  For SHcompact, use stack.  */
 | 
			
		||||
+  if (flag_pic && TARGET_SHCOMPACT)
 | 
			
		||||
+    {
 | 
			
		||||
+      push (PIC_OFFSET_TABLE_REGNUM);
 | 
			
		||||
+      emit_insn (gen_GOTaddr2picreg ());
 | 
			
		||||
+    }
 | 
			
		||||
+
 | 
			
		||||
   /* For SHcompact, we only have r0 for a scratch register: r1 is the
 | 
			
		||||
      static chain pointer (even if you can't have nested virtual functions
 | 
			
		||||
      right now, someone might implement them sometime), and the rest of the
 | 
			
		||||
@@ -9188,8 +9197,24 @@ sh_output_mi_thunk (FILE *file, tree thu
 | 
			
		||||
       assemble_external (function);
 | 
			
		||||
       TREE_USED (function) = 1;
 | 
			
		||||
     }
 | 
			
		||||
+  /* We can use scratch1 to save and restore the original value of
 | 
			
		||||
+     PIC register except for SHcompact.  */
 | 
			
		||||
+  if (flag_pic && ! TARGET_SHCOMPACT)
 | 
			
		||||
+    {
 | 
			
		||||
+      emit_move_insn (scratch1,
 | 
			
		||||
+		      gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));
 | 
			
		||||
+      emit_insn (gen_GOTaddr2picreg ());
 | 
			
		||||
+    }
 | 
			
		||||
   funexp = XEXP (DECL_RTL (function), 0);
 | 
			
		||||
   emit_move_insn (scratch2, funexp);
 | 
			
		||||
+  if (flag_pic)
 | 
			
		||||
+    {
 | 
			
		||||
+      if (! TARGET_SHCOMPACT)
 | 
			
		||||
+	emit_move_insn (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM),
 | 
			
		||||
+			scratch1);
 | 
			
		||||
+      else
 | 
			
		||||
+	pop (PIC_OFFSET_TABLE_REGNUM);
 | 
			
		||||
+    }
 | 
			
		||||
   funexp = gen_rtx_MEM (FUNCTION_MODE, scratch2);
 | 
			
		||||
   sibcall = emit_call_insn (gen_sibcall (funexp, const0_rtx, NULL_RTX));
 | 
			
		||||
   SIBLING_CALL_P (sibcall) = 1;
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
--- g/gcc/config/sh/sh.h
 | 
			
		||||
+++ g/gcc/config/sh/sh.h
 | 
			
		||||
@@ -422,6 +422,10 @@
 | 
			
		||||
 do {									\
 | 
			
		||||
   if (LEVEL)								\
 | 
			
		||||
     flag_omit_frame_pointer = -1;					\
 | 
			
		||||
+  if (LEVEL <= 2)							\
 | 
			
		||||
+    {									\
 | 
			
		||||
+      flag_reorder_blocks = 0;						\
 | 
			
		||||
+    }									\
 | 
			
		||||
   if (SIZE)								\
 | 
			
		||||
     target_flags |= SPACE_BIT;						\
 | 
			
		||||
   if (TARGET_SHMEDIA && LEVEL > 1)					\
 | 
			
		||||
@ -1,28 +0,0 @@
 | 
			
		||||
2005-03-24  J"orn Rennecke <joern.rennecke@st.com>
 | 
			
		||||
 | 
			
		||||
	Band aid for PR target/20617:
 | 
			
		||||
	* config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.
 | 
			
		||||
 | 
			
		||||
--- g/gcc/config/sh/lib1funcs.asm
 | 
			
		||||
+++ g/gcc/config/sh/lib1funcs.asm
 | 
			
		||||
@@ -37,9 +37,19 @@ Boston, MA 02111-1307, USA.  */
 | 
			
		||||
    ELF local label prefixes by J"orn Rennecke
 | 
			
		||||
    amylaar@cygnus.com  */
 | 
			
		||||
 
 | 
			
		||||
+#define ALIAS(X,Y)	.global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
 | 
			
		||||
+
 | 
			
		||||
 #ifdef __ELF__
 | 
			
		||||
 #define LOCAL(X)	.L_##X
 | 
			
		||||
-#define FUNC(X)		.type X,@function
 | 
			
		||||
+
 | 
			
		||||
+#if 1 /* ??? The export list mechanism is broken, everything that is not
 | 
			
		||||
+	 hidden is exported.  */
 | 
			
		||||
+#undef FUNC
 | 
			
		||||
+#define FUNC(X)		.type X,@function; .hidden X
 | 
			
		||||
+#undef ALIAS
 | 
			
		||||
+#define ALIAS(X,Y)	.global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y); .hidden GLOBAL(X)
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #define ENDFUNC0(X)	.Lfe_##X: .size X,.Lfe_##X-X
 | 
			
		||||
 #define ENDFUNC(X)	ENDFUNC0(X)
 | 
			
		||||
 #else
 | 
			
		||||
@ -1,70 +0,0 @@
 | 
			
		||||
By Lennert Buytenhek <buytenh@wantstofly.org>
 | 
			
		||||
Adds support for arm*b-linux* big-endian ARM targets
 | 
			
		||||
 | 
			
		||||
See http://gcc.gnu.org/PR16350
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-08-16 16:01:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-16 15:43:40.000000000 -0500
 | 
			
		||||
@@ -30,17 +30,34 @@
 | 
			
		||||
 /* Do not assume anything about header files.  */
 | 
			
		||||
 #define NO_IMPLICIT_EXTERN_C
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
 | 
			
		||||
+ * (big endian) configurations.
 | 
			
		||||
+ */
 | 
			
		||||
+#if TARGET_BIG_ENDIAN_DEFAULT
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
 | 
			
		||||
+#else
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT 0
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 /* Default is to use APCS-32 mode.  */
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT \
 | 
			
		||||
+		( ARM_FLAG_APCS_32 | \
 | 
			
		||||
+		  ARM_FLAG_MMU_TRAPS | \
 | 
			
		||||
+		  TARGET_ENDIAN_DEFAULT )
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
 | 
			
		||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
 | 
			
		||||
 
 | 
			
		||||
@@ -101,7 +118,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-08-16 16:01:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-16 16:01:25.000000000 -0500
 | 
			
		||||
@@ -672,6 +672,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
 | 
			
		||||
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
@ -1,15 +0,0 @@
 | 
			
		||||
--- gcc-3.4.4/gcc/config/rs6000/linux-unwind.h.org	2005-06-23 17:50:34.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.4/gcc/config/rs6000/linux-unwind.h	2005-06-23 17:52:02.000000000 -0600
 | 
			
		||||
@@ -32,6 +32,7 @@
 | 
			
		||||
    these structs elsewhere;  Many fields are missing, particularly
 | 
			
		||||
    from the end of the structures.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifndef inhibit_libc
 | 
			
		||||
 struct gcc_vregs
 | 
			
		||||
 {
 | 
			
		||||
   __attribute__ ((vector_size (16))) int vr[32];
 | 
			
		||||
@@ -320,3 +321,4 @@
 | 
			
		||||
 									\
 | 
			
		||||
     goto SUCCESS;							\
 | 
			
		||||
   } while (0)
 | 
			
		||||
+#endif
 | 
			
		||||
@ -1,85 +0,0 @@
 | 
			
		||||
diff -urN gcc-3.4.6/gcc/config/mips/mips.c gcc-3.4.6-nonmips/gcc/config/mips/mips.c
 | 
			
		||||
--- gcc-3.4.6/gcc/config/mips/mips.c	2005-07-31 10:35:15.000000000 +0200
 | 
			
		||||
+++ gcc-3.4.6-nonmips/gcc/config/mips/mips.c	2006-07-19 20:25:03.000000000 +0200
 | 
			
		||||
@@ -3466,26 +3466,26 @@
 | 
			
		||||
   for (offset = 0, i = 0; offset + delta <= length; offset += delta, i++)
 | 
			
		||||
     {
 | 
			
		||||
       regs[i] = gen_reg_rtx (mode);
 | 
			
		||||
-      if (MEM_ALIGN (src) >= bits)
 | 
			
		||||
+      //if (MEM_ALIGN (src) >= bits)
 | 
			
		||||
 	emit_move_insn (regs[i], adjust_address (src, mode, offset));
 | 
			
		||||
-      else
 | 
			
		||||
-	{
 | 
			
		||||
-	  rtx part = adjust_address (src, BLKmode, offset);
 | 
			
		||||
-	  if (!mips_expand_unaligned_load (regs[i], part, bits, 0))
 | 
			
		||||
-	    abort ();
 | 
			
		||||
-	}
 | 
			
		||||
+      //else
 | 
			
		||||
+	//{
 | 
			
		||||
+	  //rtx part = adjust_address (src, BLKmode, offset);
 | 
			
		||||
+	  //if (!mips_expand_unaligned_load (regs[i], part, bits, 0))
 | 
			
		||||
+	    //abort ();
 | 
			
		||||
+	//}
 | 
			
		||||
     }
 | 
			
		||||
 
 | 
			
		||||
   /* Copy the chunks to the destination.  */
 | 
			
		||||
   for (offset = 0, i = 0; offset + delta <= length; offset += delta, i++)
 | 
			
		||||
-    if (MEM_ALIGN (dest) >= bits)
 | 
			
		||||
+    //if (MEM_ALIGN (dest) >= bits)
 | 
			
		||||
       emit_move_insn (adjust_address (dest, mode, offset), regs[i]);
 | 
			
		||||
-    else
 | 
			
		||||
-      {
 | 
			
		||||
-	rtx part = adjust_address (dest, BLKmode, offset);
 | 
			
		||||
-	if (!mips_expand_unaligned_store (part, regs[i], bits, 0))
 | 
			
		||||
-	  abort ();
 | 
			
		||||
-      }
 | 
			
		||||
+    //else
 | 
			
		||||
+      //{
 | 
			
		||||
+	//rtx part = adjust_address (dest, BLKmode, offset);
 | 
			
		||||
+	//if (!mips_expand_unaligned_store (part, regs[i], bits, 0))
 | 
			
		||||
+	  //abort ();
 | 
			
		||||
+      //}
 | 
			
		||||
 
 | 
			
		||||
   /* Mop up any left-over bytes.  */
 | 
			
		||||
   if (offset < length)
 | 
			
		||||
@@ -4488,6 +4488,7 @@
 | 
			
		||||
 mips_expand_unaligned_load (rtx dest, rtx src, unsigned int width, int bitpos)
 | 
			
		||||
 {
 | 
			
		||||
   rtx left, right, temp;
 | 
			
		||||
+	return false;
 | 
			
		||||
 
 | 
			
		||||
   /* If TARGET_64BIT, the destination of a 32-bit load will be a
 | 
			
		||||
      paradoxical word_mode subreg.  This is the only case in which
 | 
			
		||||
@@ -4514,8 +4515,9 @@
 | 
			
		||||
     }
 | 
			
		||||
   else
 | 
			
		||||
     {
 | 
			
		||||
-      emit_insn (gen_mov_lwl (temp, src, left));
 | 
			
		||||
-      emit_insn (gen_mov_lwr (dest, copy_rtx (src), right, temp));
 | 
			
		||||
+	return false;
 | 
			
		||||
+      //emit_insn (gen_mov_lwl (temp, src, left));
 | 
			
		||||
+      //emit_insn (gen_mov_lwr (dest, copy_rtx (src), right, temp));
 | 
			
		||||
     }
 | 
			
		||||
   return true;
 | 
			
		||||
 }
 | 
			
		||||
@@ -4528,6 +4530,7 @@
 | 
			
		||||
 mips_expand_unaligned_store (rtx dest, rtx src, unsigned int width, int bitpos)
 | 
			
		||||
 {
 | 
			
		||||
   rtx left, right;
 | 
			
		||||
+	return false;
 | 
			
		||||
 
 | 
			
		||||
   if (!mips_get_unaligned_mem (&dest, width, bitpos, &left, &right))
 | 
			
		||||
     return false;
 | 
			
		||||
@@ -4541,8 +4544,10 @@
 | 
			
		||||
     }
 | 
			
		||||
   else
 | 
			
		||||
     {
 | 
			
		||||
-      emit_insn (gen_mov_swl (dest, src, left));
 | 
			
		||||
-      emit_insn (gen_mov_swr (copy_rtx (dest), copy_rtx (src), right));
 | 
			
		||||
+	/* Patented instructions */
 | 
			
		||||
+      //emit_insn (gen_mov_swl (dest, src, left));
 | 
			
		||||
+      //emit_insn (gen_mov_swr (copy_rtx (dest), copy_rtx (src), right));
 | 
			
		||||
+	return false;
 | 
			
		||||
     }
 | 
			
		||||
   return true;
 | 
			
		||||
 }
 | 
			
		||||
@ -1,442 +0,0 @@
 | 
			
		||||
diff -urN gcc-3.4.1-dist/boehm-gc/configure gcc-3.4.1/boehm-gc/configure
 | 
			
		||||
--- gcc-3.4.1-dist/boehm-gc/configure	2004-07-01 14:14:03.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/boehm-gc/configure	2004-08-12 16:22:57.000000000 -0500
 | 
			
		||||
@@ -1947,6 +1947,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*)
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 | 
			
		||||
     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
 | 
			
		||||
diff -urN gcc-3.4.1-dist/boehm-gc/ltconfig gcc-3.4.1/boehm-gc/ltconfig
 | 
			
		||||
--- gcc-3.4.1-dist/boehm-gc/ltconfig	2002-11-20 09:59:06.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/boehm-gc/ltconfig	2004-08-12 15:54:42.000000000 -0500
 | 
			
		||||
@@ -1981,6 +1981,23 @@
 | 
			
		||||
   fi
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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
 | 
			
		||||
+  deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
 | 
			
		||||
+  file_magic_cmd=/usr/bin/file
 | 
			
		||||
+  file_magic_test_file=`echo /lib/libuClibc-*.so`
 | 
			
		||||
+
 | 
			
		||||
+  # Assume using the uClibc dynamic linker.
 | 
			
		||||
+  dynamic_linker="uClibc ld.so"
 | 
			
		||||
+  ;;
 | 
			
		||||
+
 | 
			
		||||
 netbsd*)
 | 
			
		||||
   version_type=sunos
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-01-31 00:18:11.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-12 15:54:42.000000000 -0500
 | 
			
		||||
@@ -81,6 +81,18 @@
 | 
			
		||||
   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
 | 
			
		||||
 
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
+   %{b} %{Wl,*:%*} \
 | 
			
		||||
+   %{static:-Bstatic} \
 | 
			
		||||
+   %{shared:-shared} \
 | 
			
		||||
+   %{symbolic:-Bsymbolic} \
 | 
			
		||||
+   %{rdynamic:-export-dynamic} \
 | 
			
		||||
+   %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
 | 
			
		||||
+   -X \
 | 
			
		||||
+   %{mbig-endian:-EB}" \
 | 
			
		||||
+   SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} %{Wl,*:%*} \
 | 
			
		||||
    %{static:-Bstatic} \
 | 
			
		||||
@@ -91,6 +103,7 @@
 | 
			
		||||
    -X \
 | 
			
		||||
    %{mbig-endian:-EB}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/cris/linux.h gcc-3.4.1/gcc/config/cris/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/cris/linux.h	2003-11-28 21:08:09.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/cris/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -79,6 +79,25 @@
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +112,8 @@
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/cris/t-linux-uclibc gcc-3.4.1/gcc/config/cris/t-linux-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/cris/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/cris/t-linux-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS += -fPIC
 | 
			
		||||
+CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS)
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/i386/linux.h gcc-3.4.1/gcc/config/i386/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/i386/linux.h	2003-11-28 21:08:10.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/i386/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -118,6 +118,15 @@
 | 
			
		||||
 	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \
 | 
			
		||||
 	%{static:-static}}}"
 | 
			
		||||
 #else
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!ibcs: \
 | 
			
		||||
+      %{!static: \
 | 
			
		||||
+	%{rdynamic:-export-dynamic} \
 | 
			
		||||
+	%{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+	%{static:-static}}}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC "-m elf_i386 %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
@@ -126,6 +135,7 @@
 | 
			
		||||
 	%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
 	%{static:-static}}}"
 | 
			
		||||
 #endif
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* A C statement (sans semicolon) to output to the stdio stream
 | 
			
		||||
    FILE the assembler definition of uninitialized global DECL named
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/mips/linux.h gcc-3.4.1/gcc/config/mips/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/mips/linux.h	2004-06-15 20:42:24.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/mips/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -109,6 +109,17 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC \
 | 
			
		||||
+ "%(endian_spec) \
 | 
			
		||||
+  %{shared:-shared} \
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!ibcs: \
 | 
			
		||||
+      %{!static: \
 | 
			
		||||
+        %{rdynamic:-export-dynamic} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+        %{static:-static}}}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
@@ -118,6 +129,7 @@
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
         %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
 #define SUBTARGET_ASM_SPEC "\
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/rs6000/linux.h gcc-3.4.1/gcc/config/rs6000/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/rs6000/linux.h	2004-02-25 09:11:19.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/rs6000/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -61,7 +61,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h gcc-3.4.1/gcc/config/rs6000/sysv4.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/rs6000/sysv4.h	2004-06-10 01:39:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/rs6000/sysv4.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -947,6 +947,7 @@
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1124,6 +1125,10 @@
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1290,6 +1295,7 @@
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/sh/linux.h gcc-3.4.1/gcc/config/sh/linux.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/linux.h	2004-01-11 20:29:13.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/linux.h	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -73,12 +73,21 @@
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define SUBTARGET_LINK_SPEC \
 | 
			
		||||
+  "%{shared:-shared} \
 | 
			
		||||
+   %{!static: \
 | 
			
		||||
+     %{rdynamic:-export-dynamic} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+   %{static:-static}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #undef LIB_SPEC
 | 
			
		||||
 #define LIB_SPEC \
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/sh/t-linux-uclibc gcc-3.4.1/gcc/config/sh/t-linux-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/t-linux-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES
 | 
			
		||||
+LIB1ASMFUNCS_CACHE = _ic_invalidate
 | 
			
		||||
+
 | 
			
		||||
+LIB2FUNCS_EXTRA=
 | 
			
		||||
+
 | 
			
		||||
+MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4
 | 
			
		||||
+MULTILIB_DIRNAMES= 
 | 
			
		||||
+MULTILIB_MATCHES = 
 | 
			
		||||
+MULTILIB_EXCEPTIONS=
 | 
			
		||||
+
 | 
			
		||||
+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/sh/t-sh64-uclibc gcc-3.4.1/gcc/config/sh/t-sh64-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/sh/t-sh64-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/sh/t-sh64-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
+EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o crtbegin.o crtend.o
 | 
			
		||||
+
 | 
			
		||||
+LIB1ASMFUNCS = \
 | 
			
		||||
+  _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
 | 
			
		||||
+  _shcompact_call_trampoline _shcompact_return_trampoline \
 | 
			
		||||
+  _shcompact_incoming_args _ic_invalidate _nested_trampoline \
 | 
			
		||||
+  _push_pop_shmedia_regs \
 | 
			
		||||
+  _udivdi3 _divdi3 _umoddi3 _moddi3
 | 
			
		||||
+
 | 
			
		||||
+MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu
 | 
			
		||||
+MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64
 | 
			
		||||
+MULTILIB_MATCHES=
 | 
			
		||||
+MULTILIB_EXCEPTIONS=
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/t-linux-uclibc gcc-3.4.1/gcc/config/t-linux-uclibc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/t-linux-uclibc	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+# Compile crtbeginS.o and crtendS.o with pic.
 | 
			
		||||
+CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
 | 
			
		||||
+# Compile libgcc2.a with pic.
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS = -fPIC
 | 
			
		||||
+
 | 
			
		||||
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
 | 
			
		||||
+# the symbol versions that glibc used.
 | 
			
		||||
+#SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
 | 
			
		||||
+
 | 
			
		||||
+# Use unwind-dw2-fde
 | 
			
		||||
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
 | 
			
		||||
+  $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
 | 
			
		||||
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-04-21 10:12:35.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-12 15:59:46.000000000 -0500
 | 
			
		||||
@@ -664,6 +664,12 @@
 | 
			
		||||
 	extra_parts=""
 | 
			
		||||
 	use_collect2=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+arm*-*-linux-uclibc*)		# ARM GNU/Linux with ELF - uClibc
 | 
			
		||||
+	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux"
 | 
			
		||||
+	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
+	gnu_ld=yes
 | 
			
		||||
+	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
 | 
			
		||||
@@ -725,6 +731,10 @@
 | 
			
		||||
 	tmake_file="cris/t-cris cris/t-elfmulti"
 | 
			
		||||
 	gas=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+cris-*-linux-uclibc*)
 | 
			
		||||
+	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
 | 
			
		||||
+	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc"
 | 
			
		||||
+	;;
 | 
			
		||||
 cris-*-linux*)
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
 | 
			
		||||
 	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux"
 | 
			
		||||
@@ -988,6 +998,11 @@
 | 
			
		||||
 		thread_file='single'
 | 
			
		||||
 	fi
 | 
			
		||||
 	;;
 | 
			
		||||
+i[34567]86-*-linux*uclibc*)	# Intel 80386's running GNU/Linux
 | 
			
		||||
+				# with ELF format using uClibc
 | 
			
		||||
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h"
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc i386/t-crtstuff"
 | 
			
		||||
+	;;
 | 
			
		||||
 i[34567]86-*-linux*)	# Intel 80386's running GNU/Linux
 | 
			
		||||
 			# with ELF format using glibc 2
 | 
			
		||||
 			# aka GNU/Linux C library 6
 | 
			
		||||
@@ -1547,6 +1562,16 @@
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
 	gas=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+mips*-*-linux-uclibc*)			# Linux MIPS, either endian. uClibc
 | 
			
		||||
+        tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
 | 
			
		||||
+	case ${target} in
 | 
			
		||||
+        mipsisa32*-*)
 | 
			
		||||
+                target_cpu_default="MASK_SOFT_FLOAT"
 | 
			
		||||
+		tm_defines="MIPS_ISA_DEFAULT=32"
 | 
			
		||||
+                ;;
 | 
			
		||||
+        esac
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc"
 | 
			
		||||
+	;;
 | 
			
		||||
 mips*-*-linux*)				# Linux MIPS, either endian.
 | 
			
		||||
         tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
@@ -1764,6 +1789,10 @@
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
 | 
			
		||||
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
 | 
			
		||||
 	;;
 | 
			
		||||
+powerpc-*-linux-uclibc*)
 | 
			
		||||
+	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
 | 
			
		||||
+	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm"
 | 
			
		||||
+	;;
 | 
			
		||||
 powerpc-*-linux*)
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
 | 
			
		||||
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm"
 | 
			
		||||
@@ -1916,7 +1945,7 @@
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h"
 | 
			
		||||
 	;;
 | 
			
		||||
 sh-*-linux* | sh[2346lbe]*-*-linux*)
 | 
			
		||||
-	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux"
 | 
			
		||||
+	tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
 	sh*be-*-* | sh*eb-*-*) ;;
 | 
			
		||||
 	*)
 | 
			
		||||
@@ -1924,9 +1953,17 @@
 | 
			
		||||
 		tmake_file="${tmake_file} sh/t-le"
 | 
			
		||||
 		;;
 | 
			
		||||
 	esac
 | 
			
		||||
-	tmake_file="${tmake_file} sh/t-linux"
 | 
			
		||||
+	case ${target} in
 | 
			
		||||
+	*-*-linux-uclibc*) tmake_file="${tmake_file} t-linux-uclibc sh/t-linux-uclibc" ;;
 | 
			
		||||
+	*) tmake_file="${tmake_file} t-linux sh/t-linux" ;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
+	sh64*-*-linux-uclibc*)
 | 
			
		||||
+		tmake_file="${tmake_file} sh/t-sh64-uclibc"
 | 
			
		||||
+		tm_file="${tm_file} sh/sh64.h"
 | 
			
		||||
+		extra_headers="shmedia.h ushmedia.h sshmedia.h"
 | 
			
		||||
+		;;
 | 
			
		||||
 	sh64*)
 | 
			
		||||
 		tmake_file="${tmake_file} sh/t-sh64"
 | 
			
		||||
 		tm_file="${tm_file} sh/sh64.h"
 | 
			
		||||
diff -urN gcc-3.4.1-dist/libtool.m4 gcc-3.4.1/libtool.m4
 | 
			
		||||
--- gcc-3.4.1-dist/libtool.m4	2004-05-18 04:08:37.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/libtool.m4	2004-08-12 15:54:43.000000000 -0500
 | 
			
		||||
@@ -689,6 +689,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*)
 | 
			
		||||
   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
 | 
			
		||||
     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
 | 
			
		||||
diff -urN gcc-3.4.1-dist/ltconfig gcc-3.4.1/ltconfig
 | 
			
		||||
--- gcc-3.4.1-dist/ltconfig	2004-03-05 15:05:41.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/ltconfig	2004-08-12 15:55:48.000000000 -0500
 | 
			
		||||
@@ -602,6 +602,7 @@
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1262,6 +1263,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
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,47 +0,0 @@
 | 
			
		||||
# DP: Build and install libstdc++_pic.a library.
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.am~	2003-02-28 09:21:05.000000000 +0100
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.am	2003-02-28 09:28:50.000000000 +0100
 | 
			
		||||
@@ -224,6 +224,10 @@
 | 
			
		||||
 	  @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Added bits to build debug library.
 | 
			
		||||
 if GLIBCPP_BUILD_DEBUG
 | 
			
		||||
 all-local: build_debug
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.in~	2004-02-21 09:55:48.000000000 +0100
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.in	2004-02-21 09:59:34.000000000 +0100
 | 
			
		||||
@@ -585,7 +585,7 @@
 | 
			
		||||
 
 | 
			
		||||
 install-data-am: install-data-local
 | 
			
		||||
 
 | 
			
		||||
-install-exec-am: install-toolexeclibLTLIBRARIES
 | 
			
		||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 install-info: install-info-am
 | 
			
		||||
 
 | 
			
		||||
@@ -618,6 +618,7 @@
 | 
			
		||||
 	distclean-tags distdir dvi dvi-am info info-am install \
 | 
			
		||||
 	install-am install-data install-data-am install-data-local \
 | 
			
		||||
 	install-exec install-exec-am install-info install-info-am \
 | 
			
		||||
+	install-exec-local \
 | 
			
		||||
 	install-man install-strip install-toolexeclibLTLIBRARIES \
 | 
			
		||||
 	installcheck installcheck-am installdirs maintainer-clean \
 | 
			
		||||
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 | 
			
		||||
@@ -707,6 +708,11 @@
 | 
			
		||||
 install_debug:
 | 
			
		||||
 	(cd ${debugdir} && $(MAKE) \
 | 
			
		||||
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
 | 
			
		||||
+
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
 # Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
 .NOEXPORT:
 | 
			
		||||
@ -1,119 +0,0 @@
 | 
			
		||||
--- gcc-3.4.0/gcc/config/arm/arm.c.arm-ldm	2004-02-27 09:51:05.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.0/gcc/config/arm/arm.c	2004-04-24 18:16:25.000000000 -0400
 | 
			
		||||
@@ -8520,6 +8520,26 @@
 | 
			
		||||
   return_used_this_function = 0;  
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+/* Return the number (counting from 0) of
 | 
			
		||||
+   the least significant set bit in MASK.  */
 | 
			
		||||
+
 | 
			
		||||
+#ifdef __GNUC__
 | 
			
		||||
+inline
 | 
			
		||||
+#endif
 | 
			
		||||
+static int
 | 
			
		||||
+number_of_first_bit_set (mask)
 | 
			
		||||
+     int mask;
 | 
			
		||||
+{
 | 
			
		||||
+  int bit;
 | 
			
		||||
+
 | 
			
		||||
+  for (bit = 0;
 | 
			
		||||
+       (mask & (1 << bit)) == 0;
 | 
			
		||||
+       ++bit)
 | 
			
		||||
+    continue;
 | 
			
		||||
+
 | 
			
		||||
+  return bit;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 const char *
 | 
			
		||||
 arm_output_epilogue (rtx sibling)
 | 
			
		||||
 {
 | 
			
		||||
@@ -8753,27 +8773,47 @@
 | 
			
		||||
 	  saved_regs_mask |=   (1 << PC_REGNUM);
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
-      /* Load the registers off the stack.  If we only have one register
 | 
			
		||||
-	 to load use the LDR instruction - it is faster.  */
 | 
			
		||||
-      if (saved_regs_mask == (1 << LR_REGNUM))
 | 
			
		||||
-	{
 | 
			
		||||
-	  /* The exception handler ignores the LR, so we do
 | 
			
		||||
-	     not really need to load it off the stack.  */
 | 
			
		||||
-	  if (eh_ofs)
 | 
			
		||||
-	    asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
-	  else
 | 
			
		||||
-	    asm_fprintf (f, "\tldr\t%r, [%r], #4\n", LR_REGNUM, SP_REGNUM);
 | 
			
		||||
-	}
 | 
			
		||||
-      else if (saved_regs_mask)
 | 
			
		||||
+      if (saved_regs_mask)
 | 
			
		||||
 	{
 | 
			
		||||
-	  if (saved_regs_mask & (1 << SP_REGNUM))
 | 
			
		||||
-	    /* Note - write back to the stack register is not enabled
 | 
			
		||||
-	       (ie "ldmfd sp!...").  We know that the stack pointer is
 | 
			
		||||
-	       in the list of registers and if we add writeback the
 | 
			
		||||
-	       instruction becomes UNPREDICTABLE.  */
 | 
			
		||||
-	    print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	  /* Load the registers off the stack.  If we only have one register
 | 
			
		||||
+	     to load use the LDR instruction - it is faster.  */
 | 
			
		||||
+	  if (bit_count (saved_regs_mask) == 1)
 | 
			
		||||
+	    {
 | 
			
		||||
+	      int reg = number_of_first_bit_set (saved_regs_mask);
 | 
			
		||||
+
 | 
			
		||||
+	      switch (reg)
 | 
			
		||||
+		{
 | 
			
		||||
+		case SP_REGNUM:
 | 
			
		||||
+		  /* Mustn't use base writeback when loading SP.  */
 | 
			
		||||
+		  asm_fprintf (f, "\tldr\t%r, [%r]\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
+		  break;
 | 
			
		||||
+		  
 | 
			
		||||
+		case LR_REGNUM:
 | 
			
		||||
+		  if (eh_ofs)
 | 
			
		||||
+		    {
 | 
			
		||||
+		      /* The exception handler ignores the LR, so we do
 | 
			
		||||
+			 not really need to load it off the stack.  */
 | 
			
		||||
+		      asm_fprintf (f, "\tadd\t%r, %r, #4\n", SP_REGNUM, SP_REGNUM);
 | 
			
		||||
+		      break;
 | 
			
		||||
+		    }
 | 
			
		||||
+		  /* else fall through */
 | 
			
		||||
+		  
 | 
			
		||||
+		default:
 | 
			
		||||
+		  asm_fprintf (f, "\tldr\t%r, [%r], #4\n", reg, SP_REGNUM);
 | 
			
		||||
+		  break;
 | 
			
		||||
+		}
 | 
			
		||||
+	    }
 | 
			
		||||
 	  else
 | 
			
		||||
-	    print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	    {
 | 
			
		||||
+	      if (saved_regs_mask & (1 << SP_REGNUM))
 | 
			
		||||
+		/* Note - write back to the stack register is not enabled
 | 
			
		||||
+		   (ie "ldmfd sp!...").  We know that the stack pointer is
 | 
			
		||||
+		   in the list of registers and if we add writeback the
 | 
			
		||||
+		   instruction becomes UNPREDICTABLE.  */
 | 
			
		||||
+		print_multi_reg (f, "ldmfd\t%r", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	      else
 | 
			
		||||
+		print_multi_reg (f, "ldmfd\t%r!", SP_REGNUM, saved_regs_mask);
 | 
			
		||||
+	    }
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
       if (current_function_pretend_args_size)
 | 
			
		||||
@@ -11401,22 +11441,6 @@
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-/* Return the number (counting from 0) of
 | 
			
		||||
-   the least significant set bit in MASK.  */
 | 
			
		||||
-
 | 
			
		||||
-inline static int
 | 
			
		||||
-number_of_first_bit_set (int mask)
 | 
			
		||||
-{
 | 
			
		||||
-  int bit;
 | 
			
		||||
-
 | 
			
		||||
-  for (bit = 0;
 | 
			
		||||
-       (mask & (1 << bit)) == 0;
 | 
			
		||||
-       ++bit)
 | 
			
		||||
-    continue;
 | 
			
		||||
-
 | 
			
		||||
-  return bit;
 | 
			
		||||
-}
 | 
			
		||||
-
 | 
			
		||||
 /* Generate code to return from a thumb function.
 | 
			
		||||
    If 'reg_containing_return_addr' is -1, then the return address is
 | 
			
		||||
    actually on the stack, at the stack pointer.  */
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
--- gcc-3.4.1/libstdc++-v3/libmath/Makefile.am~	2003-08-27 22:29:42.000000000 +0100
 | 
			
		||||
+++ gcc-3.4.1/libstdc++-v3/libmath/Makefile.am	2004-07-22 16:41:45.152130128 +0100
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
 
 | 
			
		||||
 libmath_la_SOURCES = stubs.c
 | 
			
		||||
 
 | 
			
		||||
-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 # Only compiling "C" sources in this directory.
 | 
			
		||||
 LIBTOOL = @LIBTOOL@ --tag CC
 | 
			
		||||
--- gcc-3.4.1/libstdc++-v3/fragment.am.old	2004-07-22 18:24:58.024083656 +0100
 | 
			
		||||
+++ gcc-3.4.1/libstdc++-v3/fragment.am	2004-07-22 18:24:59.019932264 +0100
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
 | 
			
		||||
 
 | 
			
		||||
 # -I/-D flags to pass when compiling.
 | 
			
		||||
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
@ -1,44 +0,0 @@
 | 
			
		||||
See http://gcc.gnu.org/PR15068
 | 
			
		||||
 | 
			
		||||
Fixes error
 | 
			
		||||
 | 
			
		||||
../sysdeps/generic/s_fmax.c: In function `__fmax':
 | 
			
		||||
../sysdeps/generic/s_fmax.c:28: internal compiler error: in elim_reg_cond, at flow.c:3257
 | 
			
		||||
Please submit a full bug report,
 | 
			
		||||
with preprocessed source if appropriate.
 | 
			
		||||
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
 | 
			
		||||
make[2]: *** [/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/math/s_fmax.o] Error 1
 | 
			
		||||
make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822/math'
 | 
			
		||||
make[1]: *** [math/others] Error 2
 | 
			
		||||
make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc35/build/arm-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040822'
 | 
			
		||||
make: *** [all] Error 2
 | 
			
		||||
 | 
			
		||||
[ rediffed against gcc-3.4.1, with elbow grease, ending up with same thing as
 | 
			
		||||
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/flow.c.diff?cvsroot=gcc&only_with_tag=csl-arm-branch&r1=1.563.4.2&r2=1.563.4.3 ]
 | 
			
		||||
 | 
			
		||||
--- gcc-3.4.1/gcc/flow.c.old	2004-02-27 19:39:19.000000000 -0800
 | 
			
		||||
+++ gcc-3.4.1/gcc/flow.c	2004-08-26 07:29:46.000000000 -0700
 | 
			
		||||
@@ -1878,6 +1878,7 @@
 | 
			
		||||
 	  rtx set_src = SET_SRC (pc_set (BB_END (bb)));
 | 
			
		||||
 	  rtx cond_true = XEXP (set_src, 0);
 | 
			
		||||
 	  rtx reg = XEXP (cond_true, 0);
 | 
			
		||||
+ 	  enum rtx_code inv_cond;
 | 
			
		||||
 
 | 
			
		||||
 	  if (GET_CODE (reg) == SUBREG)
 | 
			
		||||
 	    reg = SUBREG_REG (reg);
 | 
			
		||||
@@ -1886,11 +1887,13 @@
 | 
			
		||||
 	     in the form of a comparison of a register against zero.  
 | 
			
		||||
 	     If the condition is more complex than that, then it is safe
 | 
			
		||||
 	     not to record any information.  */
 | 
			
		||||
-	  if (GET_CODE (reg) == REG
 | 
			
		||||
+ 	  inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
 | 
			
		||||
+ 	  if (inv_cond != UNKNOWN
 | 
			
		||||
+	      && GET_CODE (reg) == REG
 | 
			
		||||
 	      && XEXP (cond_true, 1) == const0_rtx)
 | 
			
		||||
 	    {
 | 
			
		||||
 	      rtx cond_false
 | 
			
		||||
-		= gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
 | 
			
		||||
+		= gen_rtx_fmt_ee (inv_cond,
 | 
			
		||||
 				  GET_MODE (cond_true), XEXP (cond_true, 0),
 | 
			
		||||
 				  XEXP (cond_true, 1));
 | 
			
		||||
 	      if (GET_CODE (XEXP (set_src, 1)) == PC)
 | 
			
		||||
@ -1,70 +0,0 @@
 | 
			
		||||
By Lennert Buytenhek <buytenh@wantstofly.org>
 | 
			
		||||
Adds support for arm*b-linux* big-endian ARM targets
 | 
			
		||||
 | 
			
		||||
See http://gcc.gnu.org/PR16350
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-08-16 16:01:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-16 15:43:40.000000000 -0500
 | 
			
		||||
@@ -30,17 +30,34 @@
 | 
			
		||||
 /* Do not assume anything about header files.  */
 | 
			
		||||
 #define NO_IMPLICIT_EXTERN_C
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
 | 
			
		||||
+ * (big endian) configurations.
 | 
			
		||||
+ */
 | 
			
		||||
+#if TARGET_BIG_ENDIAN_DEFAULT
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
 | 
			
		||||
+#else
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT 0
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 /* Default is to use APCS-32 mode.  */
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT \
 | 
			
		||||
+		( ARM_FLAG_APCS_32 | \
 | 
			
		||||
+		  ARM_FLAG_MMU_TRAPS | \
 | 
			
		||||
+		  TARGET_ENDIAN_DEFAULT )
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
 | 
			
		||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
 | 
			
		||||
 
 | 
			
		||||
@@ -101,7 +118,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-08-16 16:01:50.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-16 16:01:25.000000000 -0500
 | 
			
		||||
@@ -672,6 +672,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux"
 | 
			
		||||
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config/arm/linux-elf.h	2004-08-16 16:08:18.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-08-16 16:06:24.000000000 -0500
 | 
			
		||||
@@ -107,7 +107,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 #else
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
diff -urN gcc-3.4.1-dist/gcc/config.gcc gcc-3.4.1/gcc/config.gcc
 | 
			
		||||
--- gcc-3.4.1-dist/gcc/config.gcc	2004-08-16 16:08:18.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config.gcc	2004-08-16 16:03:25.000000000 -0500
 | 
			
		||||
@@ -666,6 +666,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux-uclibc*)		# ARM GNU/Linux with ELF - uClibc
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux"
 | 
			
		||||
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
@ -1,270 +0,0 @@
 | 
			
		||||
Note... modified my mjn3 to not conflict with the big endian arm patch.
 | 
			
		||||
Warning!!!  Only the linux target is aware of TARGET_ENDIAN_DEFAULT.
 | 
			
		||||
Also changed
 | 
			
		||||
  #define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
  %{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
  %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
to
 | 
			
		||||
  #define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
  %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
  %{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
in gcc/config/arm/linux-elf.h.
 | 
			
		||||
#
 | 
			
		||||
# Submitted:
 | 
			
		||||
#
 | 
			
		||||
# Dimitry Andric <dimitry@andric.com>, 2004-05-01
 | 
			
		||||
#
 | 
			
		||||
# Description:
 | 
			
		||||
#
 | 
			
		||||
# Nicholas Pitre released this patch for gcc soft-float support here: 
 | 
			
		||||
# http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-October/006436.html
 | 
			
		||||
#
 | 
			
		||||
# This version has been adapted to work with gcc 3.4.0.
 | 
			
		||||
#
 | 
			
		||||
# The original patch doesn't distinguish between softfpa and softvfp modes
 | 
			
		||||
# in the way Nicholas Pitre probably meant.  His description is:
 | 
			
		||||
#
 | 
			
		||||
# "Default is to use APCS-32 mode with soft-vfp.  The old Linux default for
 | 
			
		||||
# floats can be achieved with -mhard-float or with the configure
 | 
			
		||||
# --with-float=hard option.  If -msoft-float or --with-float=soft is used then
 | 
			
		||||
# software float support will be used just like the default but with the legacy
 | 
			
		||||
# big endian word ordering for double float representation instead."
 | 
			
		||||
#
 | 
			
		||||
# Which means the following:
 | 
			
		||||
#
 | 
			
		||||
# * If you compile without -mhard-float or -msoft-float, you should get
 | 
			
		||||
#   software floating point, using the VFP format.  The produced object file
 | 
			
		||||
#   should have these flags in its header:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 600: [APCS-32] [VFP float format] [software FP]
 | 
			
		||||
#
 | 
			
		||||
# * If you compile with -mhard-float, you should get hardware floating point,
 | 
			
		||||
#   which always uses the FPA format.  Object file header flags should be:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 0: [APCS-32] [FPA float format]
 | 
			
		||||
#
 | 
			
		||||
# * If you compile with -msoft-float, you should get software floating point,
 | 
			
		||||
#   using the FPA format.  This is done for compatibility reasons with many
 | 
			
		||||
#   existing distributions.  Object file header flags should be:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 200: [APCS-32] [FPA float format] [software FP]
 | 
			
		||||
#
 | 
			
		||||
# The original patch from Nicholas Pitre contained the following constructs:
 | 
			
		||||
#
 | 
			
		||||
#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
#     %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
#     %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
 | 
			
		||||
#
 | 
			
		||||
# However, gcc doesn't accept this ";:" notation, used in the 3rd line.  This
 | 
			
		||||
# is probably the reason Robert Schwebel modified it to:
 | 
			
		||||
#
 | 
			
		||||
#   #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
#     %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
#     %{!mhard-float: %{msoft-float:-mfpu=softfpa -mfpu=softvfp}}"
 | 
			
		||||
#
 | 
			
		||||
# But this causes the following behaviour:
 | 
			
		||||
#
 | 
			
		||||
# * If you compile without -mhard-float or -msoft-float, the compiler generates
 | 
			
		||||
#   software floating point instructions, but *nothing* is passed to the
 | 
			
		||||
#   assembler, which results in an object file which has flags:
 | 
			
		||||
#
 | 
			
		||||
#     private flags = 0: [APCS-32] [FPA float format]
 | 
			
		||||
#
 | 
			
		||||
#   This is not correct!
 | 
			
		||||
#
 | 
			
		||||
# * If you compile with -mhard-float, the compiler generates hardware floating
 | 
			
		||||
#   point instructions, and passes "-mfpu=fpa" to the assembler, which results
 | 
			
		||||
#   in an object file which has the same flags as in the previous item, but now
 | 
			
		||||
#   those *are* correct.
 | 
			
		||||
#    
 | 
			
		||||
# * If you compile with -msoft-float, the compiler generates software floating
 | 
			
		||||
#   point instructions, and passes "-mfpu=softfpa -mfpu=softvfp" (in that
 | 
			
		||||
#   order) to the assembler, which results in an object file with flags:
 | 
			
		||||
#
 | 
			
		||||
#   private flags = 600: [APCS-32] [VFP float format] [software FP]
 | 
			
		||||
#
 | 
			
		||||
#   This is not correct, because the last "-mfpu=" option on the assembler
 | 
			
		||||
#   command line determines the actual FPU convention used (which should be FPA
 | 
			
		||||
#   in this case).
 | 
			
		||||
#
 | 
			
		||||
# Therefore, I modified this patch to get the desired behaviour.  Every
 | 
			
		||||
# instance of the notation:
 | 
			
		||||
#
 | 
			
		||||
#   %{msoft-float:-mfpu=softfpa -mfpu=softvfp}
 | 
			
		||||
#
 | 
			
		||||
# was changed to:
 | 
			
		||||
#
 | 
			
		||||
#   %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}
 | 
			
		||||
#
 | 
			
		||||
# I also did the following:
 | 
			
		||||
# 
 | 
			
		||||
# * Modified all TARGET_DEFAULT macros I could find to include ARM_FLAG_VFP, to
 | 
			
		||||
#   be consistent with Nicholas' original patch.
 | 
			
		||||
# * Removed any "msoft-float" or "mhard-float" from all MULTILIB_DEFAULTS
 | 
			
		||||
#   macros I could find.  I think that if you compile without any options, you
 | 
			
		||||
#   would like to get the defaults. :)
 | 
			
		||||
# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
 | 
			
		||||
#   anymore.  (The required functions are now in libgcc.)
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/coff.h gcc-3.4.1/gcc/config/arm/coff.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/coff.h	2004-02-24 08:25:22.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/coff.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -31,11 +31,16 @@
 | 
			
		||||
 #define TARGET_VERSION fputs (" (ARM/coff)", stderr)
 | 
			
		||||
 
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_APCS_FRAME	\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
 
 | 
			
		||||
 #ifndef MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 /* This is COFF, but prefer stabs.  */
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/elf.h gcc-3.4.1/gcc/config/arm/elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/elf.h	2004-02-24 08:25:22.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/elf.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -46,7 +46,9 @@
 | 
			
		||||
 
 | 
			
		||||
 #ifndef SUBTARGET_ASM_FLOAT_SPEC
 | 
			
		||||
 #define SUBTARGET_ASM_FLOAT_SPEC "\
 | 
			
		||||
-%{mapcs-float:-mfloat} %{msoft-float:-mfpu=softfpa}"
 | 
			
		||||
+%{mapcs-float:-mfloat} \
 | 
			
		||||
+%{mhard-float:-mfpu=fpa} \
 | 
			
		||||
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef ASM_SPEC
 | 
			
		||||
@@ -106,12 +108,17 @@
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_APCS_FRAME	\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #ifndef MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-  { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
 | 
			
		||||
+  { "marm", "mlittle-endian", "mapcs-32", "mno-thumb-interwork", "fno-leading-underscore" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_ASM_FILE_START_APP_OFF true
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/linux-elf.h gcc-3.4.1/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/linux-elf.h	2004-09-02 21:50:52.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/linux-elf.h	2004-09-02 22:00:49.000000000 -0500
 | 
			
		||||
@@ -44,12 +44,26 @@
 | 
			
		||||
 #define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-/* Default is to use APCS-32 mode.  */
 | 
			
		||||
+/*
 | 
			
		||||
+ * Default is to use APCS-32 mode with soft-vfp.
 | 
			
		||||
+ * The old Linux default for floats can be achieved with -mhard-float
 | 
			
		||||
+ * or with the configure --with-float=hard option.
 | 
			
		||||
+ * If -msoft-float or --with-float=soft is used then software float 
 | 
			
		||||
+ * support will be used just like the default but with the legacy
 | 
			
		||||
+ * big endian word ordering for double float representation instead.
 | 
			
		||||
+ */
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT \
 | 
			
		||||
-		( ARM_FLAG_APCS_32 | \
 | 
			
		||||
-		  ARM_FLAG_MMU_TRAPS | \
 | 
			
		||||
-		  TARGET_ENDIAN_DEFAULT )
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| TARGET_ENDIAN_DEFAULT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
+
 | 
			
		||||
+#undef  SUBTARGET_EXTRA_ASM_SPEC
 | 
			
		||||
+#define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
+%{mhard-float:-mfpu=fpa} \
 | 
			
		||||
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +71,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mapcs-32", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 #define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
 | 
			
		||||
 
 | 
			
		||||
@@ -72,7 +86,7 @@
 | 
			
		||||
    %{shared:-lc} \
 | 
			
		||||
    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
 | 
			
		||||
 
 | 
			
		||||
-#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc"
 | 
			
		||||
+#define LIBGCC_SPEC "-lgcc"
 | 
			
		||||
 
 | 
			
		||||
 /* Provide a STARTFILE_SPEC appropriate for GNU/Linux.  Here we add
 | 
			
		||||
    the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/t-linux gcc-3.4.1/gcc/config/arm/t-linux
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/t-linux	2003-09-20 16:09:07.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/t-linux	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -4,7 +4,10 @@
 | 
			
		||||
 LIBGCC2_DEBUG_CFLAGS = -g0
 | 
			
		||||
 
 | 
			
		||||
 LIB1ASMSRC = arm/lib1funcs.asm
 | 
			
		||||
-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
 | 
			
		||||
+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
 | 
			
		||||
+	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
 | 
			
		||||
+	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
 | 
			
		||||
+	_fixsfsi _fixunssfsi
 | 
			
		||||
 
 | 
			
		||||
 # MULTILIB_OPTIONS = mhard-float/msoft-float
 | 
			
		||||
 # MULTILIB_DIRNAMES = hard-float soft-float
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/unknown-elf.h gcc-3.4.1/gcc/config/arm/unknown-elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/unknown-elf.h	2004-02-24 08:25:22.000000000 -0600
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/unknown-elf.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -30,7 +30,12 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Default to using APCS-32 and software floating point.  */
 | 
			
		||||
 #ifndef TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT	(ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME | ARM_FLAG_MMU_TRAPS)
 | 
			
		||||
+#define TARGET_DEFAULT		\
 | 
			
		||||
+	( ARM_FLAG_SOFT_FLOAT	\
 | 
			
		||||
+	| ARM_FLAG_VFP		\
 | 
			
		||||
+	| ARM_FLAG_APCS_32	\
 | 
			
		||||
+	| ARM_FLAG_APCS_FRAME	\
 | 
			
		||||
+	| ARM_FLAG_MMU_TRAPS )
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
 /* Now we define the strings used to build the spec file.  */
 | 
			
		||||
diff -urN gcc-3.4.1-old/gcc/config/arm/xscale-elf.h gcc-3.4.1/gcc/config/arm/xscale-elf.h
 | 
			
		||||
--- gcc-3.4.1-old/gcc/config/arm/xscale-elf.h	2003-07-01 18:26:43.000000000 -0500
 | 
			
		||||
+++ gcc-3.4.1/gcc/config/arm/xscale-elf.h	2004-09-02 21:51:15.000000000 -0500
 | 
			
		||||
@@ -49,11 +49,12 @@
 | 
			
		||||
 		     endian, regardless of the endian-ness of the memory
 | 
			
		||||
 		     system.  */
 | 
			
		||||
 		     
 | 
			
		||||
-#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
-  %{mhard-float:-mfpu=fpa} \
 | 
			
		||||
-  %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
 | 
			
		||||
+#define SUBTARGET_EXTRA_ASM_SPEC "\
 | 
			
		||||
+%{!mcpu=*:-mcpu=xscale} \
 | 
			
		||||
+%{mhard-float:-mfpu=fpa} \
 | 
			
		||||
+%{!mhard-float: %{msoft-float:-mfpu=softfpa} %{!msoft-float:-mfpu=softvfp}}"
 | 
			
		||||
 
 | 
			
		||||
 #ifndef MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-  { "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
 | 
			
		||||
+  { "mlittle-endian", "mno-thumb-interwork", "marm" }
 | 
			
		||||
 #endif
 | 
			
		||||
@ -1,410 +0,0 @@
 | 
			
		||||
diff -urN gcc-4.1.0/boehm-gc/configure gcc-4.1.0-patched/boehm-gc/configure
 | 
			
		||||
--- gcc-4.1.0/boehm-gc/configure	2005-04-13 19:31:24.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/boehm-gc/configure	2005-04-25 20:47:19.919723167 -0500
 | 
			
		||||
@@ -4320,6 +4320,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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 -urN gcc-4.1.0/gcc/config/arm/linux-elf.h gcc-4.1.0-patched/gcc/config/arm/linux-elf.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/arm/linux-elf.h	2005-03-02 10:27:42.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/arm/linux-elf.h	2005-04-25 20:45:31.795953620 -0500
 | 
			
		||||
@@ -82,6 +82,18 @@
 | 
			
		||||
   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
 | 
			
		||||
 
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
+   %{b} %{Wl,*:%*} \
 | 
			
		||||
+   %{static:-Bstatic} \
 | 
			
		||||
+   %{shared:-shared} \
 | 
			
		||||
+   %{symbolic:-Bsymbolic} \
 | 
			
		||||
+   %{rdynamic:-export-dynamic} \
 | 
			
		||||
+   %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \
 | 
			
		||||
+   -X \
 | 
			
		||||
+   %{mbig-endian:-EB}" \
 | 
			
		||||
+   SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} %{Wl,*:%*} \
 | 
			
		||||
    %{static:-Bstatic} \
 | 
			
		||||
@@ -92,6 +104,7 @@
 | 
			
		||||
    -X \
 | 
			
		||||
    %{mbig-endian:-EB}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_OS_CPP_BUILTINS()		\
 | 
			
		||||
   do						\
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/cris/linux.h gcc-4.1.0-patched/gcc/config/cris/linux.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/cris/linux.h	2005-04-23 23:01:27.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/cris/linux.h	2005-04-25 20:45:31.796953451 -0500
 | 
			
		||||
@@ -73,6 +73,25 @@
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -87,6 +106,8 @@
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/cris/t-linux-uclibc gcc-4.1.0-patched/gcc/config/cris/t-linux-uclibc
 | 
			
		||||
--- gcc-4.1.0/gcc/config/cris/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/cris/t-linux-uclibc	2005-04-25 20:45:31.797953283 -0500
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS += -fPIC
 | 
			
		||||
+CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS)
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/i386/linux.h gcc-4.1.0-patched/gcc/config/i386/linux.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/i386/linux.h	2004-11-27 10:45:14.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/i386/linux.h	2005-04-25 21:21:05.828409973 -0500
 | 
			
		||||
@@ -104,8 +104,13 @@
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#define LINK_EMULATION "elf_i386"
 | 
			
		||||
+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_EMULATION "elf_i386"
 | 
			
		||||
 #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #undef  SUBTARGET_EXTRA_SPECS
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
@@ -144,6 +149,7 @@
 | 
			
		||||
     }									\
 | 
			
		||||
   } while (0)
 | 
			
		||||
 #endif
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* Handle special EH pointer encodings.  Absolute, pc-relative, and
 | 
			
		||||
    indirect are handled automatically.  */
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/mips/linux.h gcc-4.1.0-patched/gcc/config/mips/linux.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/mips/linux.h	2005-01-25 20:04:46.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/mips/linux.h	2005-04-25 20:45:31.809951259 -0500
 | 
			
		||||
@@ -108,6 +108,17 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_SPEC \
 | 
			
		||||
+ "%(endian_spec) \
 | 
			
		||||
+  %{shared:-shared} \
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!ibcs: \
 | 
			
		||||
+      %{!static: \
 | 
			
		||||
+        %{rdynamic:-export-dynamic} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+        %{static:-static}}}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
@@ -117,6 +128,7 @@
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
         %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
 #define SUBTARGET_ASM_SPEC "%{mabi=64: -64} %{!mno-abicalls:-KPIC}"
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/rs6000/linux.h gcc-4.1.0-patched/gcc/config/rs6000/linux.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/rs6000/linux.h	2004-12-01 20:21:28.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/rs6000/linux.h	2005-04-25 20:45:31.810951091 -0500
 | 
			
		||||
@@ -69,7 +69,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/rs6000/sysv4.h gcc-4.1.0-patched/gcc/config/rs6000/sysv4.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/rs6000/sysv4.h	2005-04-13 19:26:50.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/rs6000/sysv4.h	2005-04-25 20:45:31.812950754 -0500
 | 
			
		||||
@@ -957,6 +957,7 @@
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1135,6 +1136,10 @@
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1301,6 +1306,7 @@
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/sh/linux.h gcc-4.1.0-patched/gcc/config/sh/linux.h
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sh/linux.h	2005-02-28 21:39:03.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/sh/linux.h	2005-04-25 20:45:31.814950416 -0500
 | 
			
		||||
@@ -55,12 +55,21 @@
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define SUBTARGET_LINK_SPEC \
 | 
			
		||||
+  "%{shared:-shared} \
 | 
			
		||||
+   %{!static: \
 | 
			
		||||
+     %{rdynamic:-export-dynamic} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+   %{static:-static}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* Output assembler code to STREAM to call the profiler.  */
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/sh/t-linux-uclibc gcc-4.1.0-patched/gcc/config/sh/t-linux-uclibc
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sh/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/sh/t-linux-uclibc	2005-04-25 20:45:31.814950416 -0500
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES
 | 
			
		||||
+LIB1ASMFUNCS_CACHE = _ic_invalidate
 | 
			
		||||
+
 | 
			
		||||
+LIB2FUNCS_EXTRA=
 | 
			
		||||
+
 | 
			
		||||
+MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4
 | 
			
		||||
+MULTILIB_DIRNAMES= 
 | 
			
		||||
+MULTILIB_MATCHES = 
 | 
			
		||||
+MULTILIB_EXCEPTIONS=
 | 
			
		||||
+
 | 
			
		||||
+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/sh/t-sh64-uclibc gcc-4.1.0-patched/gcc/config/sh/t-sh64-uclibc
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sh/t-sh64-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/sh/t-sh64-uclibc	2005-04-25 20:45:31.815950248 -0500
 | 
			
		||||
@@ -0,0 +1,13 @@
 | 
			
		||||
+EXTRA_MULTILIB_PARTS= crt1.o crti.o crtn.o crtbegin.o crtend.o
 | 
			
		||||
+
 | 
			
		||||
+LIB1ASMFUNCS = \
 | 
			
		||||
+  _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
 | 
			
		||||
+  _shcompact_call_trampoline _shcompact_return_trampoline \
 | 
			
		||||
+  _shcompact_incoming_args _ic_invalidate _nested_trampoline \
 | 
			
		||||
+  _push_pop_shmedia_regs \
 | 
			
		||||
+  _udivdi3 _divdi3 _umoddi3 _moddi3
 | 
			
		||||
+
 | 
			
		||||
+MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu
 | 
			
		||||
+MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64
 | 
			
		||||
+MULTILIB_MATCHES=
 | 
			
		||||
+MULTILIB_EXCEPTIONS=
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config/t-linux-uclibc gcc-4.1.0-patched/gcc/config/t-linux-uclibc
 | 
			
		||||
--- gcc-4.1.0/gcc/config/t-linux-uclibc	1969-12-31 18:00:00.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config/t-linux-uclibc	2005-04-25 20:45:31.815950248 -0500
 | 
			
		||||
@@ -0,0 +1,15 @@
 | 
			
		||||
+T_CFLAGS = -DUSE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+# Compile crtbeginS.o and crtendS.o with pic.
 | 
			
		||||
+CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
 | 
			
		||||
+# Compile libgcc2.a with pic.
 | 
			
		||||
+TARGET_LIBGCC2_CFLAGS = -fPIC
 | 
			
		||||
+
 | 
			
		||||
+# Override t-slibgcc-elf-ver to export some libgcc symbols with
 | 
			
		||||
+# the symbol versions that glibc used.
 | 
			
		||||
+#SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver
 | 
			
		||||
+
 | 
			
		||||
+# Use unwind-dw2-fde
 | 
			
		||||
+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
 | 
			
		||||
+  $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
 | 
			
		||||
+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h
 | 
			
		||||
diff -urN gcc-4.1.0/gcc/config.gcc gcc-4.1.0-patched/gcc/config.gcc
 | 
			
		||||
--- gcc-4.1.0/gcc/config.gcc	2005-04-23 23:01:23.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/gcc/config.gcc	2005-04-25 21:12:43.375594576 -0500
 | 
			
		||||
@@ -448,7 +448,14 @@
 | 
			
		||||
   case ${enable_threads} in
 | 
			
		||||
     "" | yes | posix) thread_file='posix' ;;
 | 
			
		||||
   esac
 | 
			
		||||
-  tmake_file="t-slibgcc-elf-ver t-linux"
 | 
			
		||||
+  case ${target} in
 | 
			
		||||
+    *-linux*uclibc*)
 | 
			
		||||
+      tmake_file="t-slibgcc-elf-ver t-linux-uclibc"
 | 
			
		||||
+      ;;
 | 
			
		||||
+    *)
 | 
			
		||||
+      tmake_file="t-slibgcc-elf-ver t-linux"
 | 
			
		||||
+      ;;
 | 
			
		||||
+  esac
 | 
			
		||||
   ;;
 | 
			
		||||
 *-*-gnu*)
 | 
			
		||||
   # On the Hurd, the setup is just about the same on
 | 
			
		||||
@@ -667,6 +674,12 @@
 | 
			
		||||
 	extra_parts=""
 | 
			
		||||
 	use_collect2=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+arm*-*-linux-uclibc*)		# ARM GNU/Linux with ELF - uClibc
 | 
			
		||||
+	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux"
 | 
			
		||||
+	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
+	gnu_ld=yes
 | 
			
		||||
+	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
 	tmake_file="${tmake_file} arm/t-arm arm/t-linux"
 | 
			
		||||
@@ -765,6 +778,10 @@
 | 
			
		||||
 	gas=yes
 | 
			
		||||
 	extra_options="${extra_options} cris/elf.opt"
 | 
			
		||||
 	;;
 | 
			
		||||
+cris-*-linux-uclibc*)
 | 
			
		||||
+	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
 | 
			
		||||
+	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc"
 | 
			
		||||
+	;;
 | 
			
		||||
 cris-*-linux*)
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
 | 
			
		||||
 	# We need to avoid using t-linux, so override default tmake_file
 | 
			
		||||
@@ -1443,6 +1460,16 @@
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
 	gas=yes
 | 
			
		||||
 	;;
 | 
			
		||||
+mips*-*-linux-uclibc*)			# Linux MIPS, either endian. uClibc
 | 
			
		||||
+        tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
 | 
			
		||||
+	case ${target} in
 | 
			
		||||
+        mipsisa32*-*)
 | 
			
		||||
+                target_cpu_default="MASK_SOFT_FLOAT"
 | 
			
		||||
+		tm_defines="MIPS_ISA_DEFAULT=32"
 | 
			
		||||
+                ;;
 | 
			
		||||
+        esac
 | 
			
		||||
+	tmake_file="t-slibgcc-elf-ver t-linux-uclibc"
 | 
			
		||||
+	;;
 | 
			
		||||
 mips*-*-linux*)				# Linux MIPS, either endian.
 | 
			
		||||
         tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
@@ -1659,6 +1686,10 @@
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
 | 
			
		||||
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
 | 
			
		||||
 	;;
 | 
			
		||||
+powerpc-*-linux-uclibc*)
 | 
			
		||||
+	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h"
 | 
			
		||||
+	tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm"
 | 
			
		||||
+	;;
 | 
			
		||||
 powerpc-*-linux*)
 | 
			
		||||
 	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
 | 
			
		||||
 	tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
 | 
			
		||||
@@ -1821,6 +1852,8 @@
 | 
			
		||||
 	esac
 | 
			
		||||
 	tm_file="${tm_file} sh/elf.h"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
+	sh*-*-linux-uclibc*)	tmake_file="${tmake_file} t-linux-uclibc sh/t-linux-uclibc"
 | 
			
		||||
+			tm_file="${tm_file} linux.h sh/linux.h" ;;
 | 
			
		||||
 	sh*-*-linux*)	tmake_file="${tmake_file} sh/t-linux"
 | 
			
		||||
 			tm_file="${tm_file} linux.h sh/linux.h" ;;
 | 
			
		||||
 	sh*-*-kaos*)	tm_file="${tm_file} sh/embed-elf.h kaos.h sh/kaos-sh.h"
 | 
			
		||||
@@ -1840,6 +1873,11 @@
 | 
			
		||||
 	*-*-netbsd)
 | 
			
		||||
                 tmake_file="${tmake_file} sh/t-netbsd"
 | 
			
		||||
 		;;
 | 
			
		||||
+	sh64*-*-linux-uclibc*)
 | 
			
		||||
+		tmake_file="${tmake_file} sh/t-sh64-uclibc"
 | 
			
		||||
+		tm_file="${tm_file} sh/sh64.h"
 | 
			
		||||
+		extra_headers="shmedia.h ushmedia.h sshmedia.h"
 | 
			
		||||
+		;;
 | 
			
		||||
 	sh64*-*-linux*)
 | 
			
		||||
 		tmake_file="${tmake_file} sh/t-sh64 sh/t-linux64"
 | 
			
		||||
 		tm_file="${tm_file} sh/sh64.h"
 | 
			
		||||
diff -urN gcc-4.1.0/libtool.m4 gcc-4.1.0-patched/libtool.m4
 | 
			
		||||
--- gcc-4.1.0/libtool.m4	2005-04-13 19:31:24.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/libtool.m4	2005-04-25 20:47:51.679369687 -0500
 | 
			
		||||
@@ -743,6 +743,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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 -urN gcc-4.1.0/ltconfig gcc-4.1.0-patched/ltconfig
 | 
			
		||||
--- gcc-4.1.0/ltconfig	2004-10-02 11:33:06.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/ltconfig	2005-04-25 20:45:31.836946707 -0500
 | 
			
		||||
@@ -602,6 +602,7 @@
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1273,6 +1274,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
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,553 +0,0 @@
 | 
			
		||||
--- gcc-4.0.2/gcc/config/t-linux-uclibc
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/t-linux-uclibc
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
+# Remove glibc specific files added in t-linux
 | 
			
		||||
+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
 | 
			
		||||
+
 | 
			
		||||
+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
 | 
			
		||||
+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
 | 
			
		||||
--- gcc-4.0.2/gcc/config.gcc
 | 
			
		||||
+++ gcc-4.0.2/gcc/config.gcc
 | 
			
		||||
@@ -1778,7 +1778,7 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
 | 
			
		||||
 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
 | 
			
		||||
-  sh-*-linux* | sh[346lbe]*-*-linux* | \
 | 
			
		||||
+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
 | 
			
		||||
   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
 | 
			
		||||
    sh64-*-netbsd* | sh64l*-*-netbsd*)
 | 
			
		||||
 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
 | 
			
		||||
@@ -2234,10 +2234,16 @@
 | 
			
		||||
 *)
 | 
			
		||||
 	echo "*** Configuration ${target} not supported" 1>&2
 | 
			
		||||
 	exit 1
 | 
			
		||||
 	;;
 | 
			
		||||
 esac
 | 
			
		||||
+
 | 
			
		||||
+# Rather than hook into each target, just do it after all the linux
 | 
			
		||||
+# targets have been processed
 | 
			
		||||
+case ${target} in
 | 
			
		||||
+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
 | 
			
		||||
+esac
 | 
			
		||||
 
 | 
			
		||||
 case ${target} in
 | 
			
		||||
 i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
 | 
			
		||||
 	tmake_file="${tmake_file} i386/t-gmm_malloc"
 | 
			
		||||
 	;;
 | 
			
		||||
--- gcc-4.0.2/gcc/config/alpha/linux-elf.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h
 | 
			
		||||
@@ -27,7 +27,11 @@
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
 | 
			
		||||
   %{O*:-O3} %{!O*:-O1}						\
 | 
			
		||||
--- gcc-4.0.2/gcc/config/arm/linux-elf.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/arm/linux-elf.h
 | 
			
		||||
@@ -81,14 +81,19 @@
 | 
			
		||||
 #define ENDFILE_SPEC \
 | 
			
		||||
   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} %{Wl,*:%*} \
 | 
			
		||||
    %{static:-Bstatic} \
 | 
			
		||||
    %{shared:-shared} \
 | 
			
		||||
    %{symbolic:-Bsymbolic} \
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
-   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
 | 
			
		||||
+   %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
 | 
			
		||||
    -X \
 | 
			
		||||
    %{mbig-endian:-EB}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
--- gcc-4.0.2/gcc/config/cris/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/cris/linux.h
 | 
			
		||||
@@ -79,6 +79,25 @@
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -93,6 +112,8 @@
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.0.2/gcc/config/i386/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/i386/linux.h
 | 
			
		||||
@@ -107,6 +107,11 @@
 | 
			
		||||
 #define LINK_EMULATION "elf_i386"
 | 
			
		||||
 #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#undef DYNAMIC_LINKER
 | 
			
		||||
+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #undef  SUBTARGET_EXTRA_SPECS
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
   { "link_emulation", LINK_EMULATION },\
 | 
			
		||||
--- gcc-4.0.2/gcc/config/i386/linux64.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/i386/linux64.h
 | 
			
		||||
@@ -54,14 +54,21 @@
 | 
			
		||||
    When the -shared link option is used a final link is not being
 | 
			
		||||
    done.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
-      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 | 
			
		||||
+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 | 
			
		||||
+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 | 
			
		||||
     %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 #define MULTILIB_DEFAULTS { "m64" }
 | 
			
		||||
--- gcc-4.0.2/gcc/config/ia64/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/ia64/linux.h
 | 
			
		||||
@@ -37,13 +37,18 @@
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.0.2/gcc/config/m68k/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/m68k/linux.h
 | 
			
		||||
@@ -127,12 +127,17 @@
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m m68kelf %{shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
     %{static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* For compatibility with linux/a.out */
 | 
			
		||||
--- gcc-4.0.2/gcc/config/mips/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/mips/linux.h
 | 
			
		||||
@@ -108,14 +108,19 @@
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
--- gcc-4.0.2/gcc/config/pa/pa-linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/pa/pa-linux.h
 | 
			
		||||
@@ -82,13 +82,18 @@
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* glibc's profiling functions don't need gcc to allocate counters.  */
 | 
			
		||||
--- gcc-4.0.2/gcc/config/rs6000/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/rs6000/linux.h
 | 
			
		||||
@@ -69,7 +69,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
--- gcc-4.0.2/gcc/config/rs6000/sysv4.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h
 | 
			
		||||
@@ -949,6 +949,7 @@
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1127,6 +1128,10 @@
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1293,6 +1298,7 @@
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
--- gcc-4.0.2/gcc/config/s390/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/s390/linux.h
 | 
			
		||||
@@ -77,6 +77,13 @@
 | 
			
		||||
 #define MULTILIB_DEFAULTS { "m31" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 | 
			
		||||
@@ -86,8 +93,8 @@
 | 
			
		||||
       %{!static: \
 | 
			
		||||
 	%{rdynamic:-export-dynamic} \
 | 
			
		||||
 	%{!dynamic-linker: \
 | 
			
		||||
-          %{m31:-dynamic-linker /lib/ld.so.1} \
 | 
			
		||||
-          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 | 
			
		||||
+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 | 
			
		||||
+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 | 
			
		||||
--- gcc-4.0.2/gcc/config/sh/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/sh/linux.h
 | 
			
		||||
@@ -67,11 +67,16 @@
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
-     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
 
 | 
			
		||||
 #undef LIB_SPEC
 | 
			
		||||
--- gcc-4.0.2/gcc/config/sparc/linux.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/sparc/linux.h
 | 
			
		||||
@@ -130,14 +130,19 @@
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!mno-relax:%{!r:-relax}} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
 | 
			
		||||
--- gcc-4.0.2/gcc/config/sparc/linux64.h
 | 
			
		||||
+++ gcc-4.0.2/gcc/config/sparc/linux64.h
 | 
			
		||||
@@ -167,12 +166,17 @@
 | 
			
		||||
   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 | 
			
		||||
   { "link_arch",	 LINK_ARCH_SPEC },
 | 
			
		||||
     
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}} \
 | 
			
		||||
 "
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.0.2/libtool.m4
 | 
			
		||||
+++ gcc-4.0.2/libtool.m4
 | 
			
		||||
@@ -682,6 +682,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$']
 | 
			
		||||
--- gcc-4.0.2/ltconfig
 | 
			
		||||
+++ gcc-4.0.2/ltconfig
 | 
			
		||||
@@ -603,6 +603,7 @@
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1274,6 +1275,23 @@
 | 
			
		||||
   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.
 | 
			
		||||
+  hardcode_into_libs=yes
 | 
			
		||||
+  # Assume using the uClibc dynamic linker.
 | 
			
		||||
+  dynamic_linker="uClibc ld.so"
 | 
			
		||||
+  ;;
 | 
			
		||||
+
 | 
			
		||||
 netbsd*)
 | 
			
		||||
   need_lib_prefix=no
 | 
			
		||||
   need_version=no
 | 
			
		||||
--- gcc-4.0.2/libffi/configure
 | 
			
		||||
+++ gcc-4.0.2/libffi/configure
 | 
			
		||||
@@ -3457,6 +3457,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.0.2/libgfortran/configure
 | 
			
		||||
+++ gcc-4.0.2/libgfortran/configure
 | 
			
		||||
@@ -3681,6 +3681,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.0.2/libjava/configure
 | 
			
		||||
+++ gcc-4.0.2/libjava/configure
 | 
			
		||||
@@ -4351,6 +4351,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.0.2/libmudflap/configure
 | 
			
		||||
+++ gcc-4.0.2/libmudflap/configure
 | 
			
		||||
@@ -5380,6 +5380,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.0.2/libobjc/configure
 | 
			
		||||
+++ gcc-4.0.2/libobjc/configure
 | 
			
		||||
@@ -3283,6 +3283,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.0.2/boehm-gc/configure
 | 
			
		||||
+++ gcc-4.0.2/boehm-gc/configure
 | 
			
		||||
@@ -4320,6 +4320,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.0.2/configure
 | 
			
		||||
+++ gcc-4.0.2/configure
 | 
			
		||||
@@ -1141,7 +1141,7 @@
 | 
			
		||||
     ;;
 | 
			
		||||
 "")
 | 
			
		||||
     case "${target}" in
 | 
			
		||||
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 | 
			
		||||
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 | 
			
		||||
         # Enable libmudflap by default in GNU and friends.
 | 
			
		||||
 	;;
 | 
			
		||||
     *-*-freebsd*)
 | 
			
		||||
--- gcc-4.0.2/configure.in
 | 
			
		||||
+++ gcc-4.0.2/configure.in
 | 
			
		||||
@@ -350,7 +350,7 @@
 | 
			
		||||
     ;;
 | 
			
		||||
 "")
 | 
			
		||||
     case "${target}" in
 | 
			
		||||
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 | 
			
		||||
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 | 
			
		||||
         # Enable libmudflap by default in GNU and friends.
 | 
			
		||||
 	;;
 | 
			
		||||
     *-*-freebsd*)
 | 
			
		||||
--- gcc-4.0.2/contrib/regression/objs-gcc.sh
 | 
			
		||||
+++ gcc-4.0.2/contrib/regression/objs-gcc.sh
 | 
			
		||||
@@ -105,6 +105,10 @@
 | 
			
		||||
  then
 | 
			
		||||
   make all-gdb all-dejagnu all-ld || exit 1
 | 
			
		||||
   make install-gdb install-dejagnu install-ld || exit 1
 | 
			
		||||
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
 | 
			
		||||
+ then
 | 
			
		||||
+  make all-gdb all-dejagnu all-ld || exit 1
 | 
			
		||||
+  make install-gdb install-dejagnu install-ld || exit 1
 | 
			
		||||
 elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
 | 
			
		||||
   make bootstrap || exit 1
 | 
			
		||||
   make install || exit 1
 | 
			
		||||
--- gcc-4.0.2/zlib/configure
 | 
			
		||||
+++ gcc-4.0.2/zlib/configure
 | 
			
		||||
@@ -3426,6 +3426,11 @@
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,47 +0,0 @@
 | 
			
		||||
diff -urN gcc-4.0.0-200/libstdc++-v3/src/Makefile.am gcc-4.0.0/libstdc++-v3/src/Makefile.am
 | 
			
		||||
--- gcc-4.0.0-200/libstdc++-v3/src/Makefile.am	2004-11-15 17:33:05.000000000 -0600
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am	2005-04-28 21:42:18.614344056 -0500
 | 
			
		||||
@@ -214,6 +214,10 @@
 | 
			
		||||
 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Added bits to build debug library.
 | 
			
		||||
 if GLIBCXX_BUILD_DEBUG
 | 
			
		||||
 all-local: build_debug
 | 
			
		||||
diff -urN gcc-4.0.0-200/libstdc++-v3/src/Makefile.in gcc-4.0.0/libstdc++-v3/src/Makefile.in
 | 
			
		||||
--- gcc-4.0.0-200/libstdc++-v3/src/Makefile.in	2005-02-01 00:56:27.000000000 -0600
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in	2005-04-28 21:44:20.868758560 -0500
 | 
			
		||||
@@ -625,7 +625,7 @@
 | 
			
		||||
 
 | 
			
		||||
 install-data-am: install-data-local
 | 
			
		||||
 
 | 
			
		||||
-install-exec-am: install-toolexeclibLTLIBRARIES
 | 
			
		||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 install-info: install-info-am
 | 
			
		||||
 
 | 
			
		||||
@@ -664,7 +664,7 @@
 | 
			
		||||
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 | 
			
		||||
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 | 
			
		||||
 	tags uninstall uninstall-am uninstall-info-am \
 | 
			
		||||
-	uninstall-toolexeclibLTLIBRARIES
 | 
			
		||||
+	uninstall-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver:  ${glibcxx_srcdir}/$(SYMVER_MAP)
 | 
			
		||||
 @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@	cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
 | 
			
		||||
@@ -743,6 +743,11 @@
 | 
			
		||||
 install_debug:
 | 
			
		||||
 	(cd ${debugdir} && $(MAKE) \
 | 
			
		||||
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
 | 
			
		||||
+
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
 # Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
 .NOEXPORT:
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500
 | 
			
		||||
@@ -500,7 +500,7 @@
 | 
			
		||||
 #ifdef __linux__
 | 
			
		||||
 # include <features.h>
 | 
			
		||||
 # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
 | 
			
		||||
-     && !defined(__ia64__)
 | 
			
		||||
+     && !defined(__ia64__) && !defined(__UCLIBC__)
 | 
			
		||||
 #   ifndef GC_HAVE_BUILTIN_BACKTRACE
 | 
			
		||||
 #     define GC_HAVE_BUILTIN_BACKTRACE
 | 
			
		||||
 #   endif
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig	2005-04-29 00:08:41.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h	2005-04-29 00:08:45.000000000 -0500
 | 
			
		||||
@@ -142,7 +142,7 @@
 | 
			
		||||
   using ::vsprintf;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-#if _GLIBCXX_USE_C99
 | 
			
		||||
+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
 | 
			
		||||
 
 | 
			
		||||
 #undef snprintf
 | 
			
		||||
 #undef vfscanf
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/libstdc++-v3/configure-old	2005-04-30 22:04:48.061603912 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/configure	2005-04-30 22:06:13.678588152 -0500
 | 
			
		||||
@@ -7194,6 +7194,9 @@
 | 
			
		||||
 cat >>conftest.$ac_ext <<_ACEOF
 | 
			
		||||
 /* end confdefs.h.  */
 | 
			
		||||
 #include <complex.h>
 | 
			
		||||
+#ifdef __UCLIBC__
 | 
			
		||||
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
 | 
			
		||||
+#endif
 | 
			
		||||
 int
 | 
			
		||||
 main ()
 | 
			
		||||
 {
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am
 | 
			
		||||
--- gcc-4.0.0-100/libstdc++-v3/fragment.am	2004-10-25 15:32:40.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/fragment.am	2005-04-28 21:48:43.000000000 -0500
 | 
			
		||||
@@ -18,5 +18,5 @@
 | 
			
		||||
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
 | 
			
		||||
 
 | 
			
		||||
 # -I/-D flags to pass when compiling.
 | 
			
		||||
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am
 | 
			
		||||
--- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am	2003-08-27 16:29:42.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am	2005-04-28 21:48:43.000000000 -0500
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
 
 | 
			
		||||
 libmath_la_SOURCES = stubs.c
 | 
			
		||||
 
 | 
			
		||||
-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 # Only compiling "C" sources in this directory.
 | 
			
		||||
 LIBTOOL = @LIBTOOL@ --tag CC
 | 
			
		||||
@ -1,67 +0,0 @@
 | 
			
		||||
By Lennert Buytenhek <buytenh@wantstofly.org>
 | 
			
		||||
Adds support for arm*b-linux* big-endian ARM targets
 | 
			
		||||
 | 
			
		||||
See http://gcc.gnu.org/PR16350
 | 
			
		||||
 | 
			
		||||
--- gcc-4.0.3/gcc/config/arm/linux-elf.h
 | 
			
		||||
+++ gcc-4.0.3/gcc/config/arm/linux-elf.h
 | 
			
		||||
@@ -31,19 +31,33 @@
 | 
			
		||||
 /* Do not assume anything about header files.  */
 | 
			
		||||
 #define NO_IMPLICIT_EXTERN_C
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
 | 
			
		||||
+ * (big endian) configurations.
 | 
			
		||||
+ */
 | 
			
		||||
+#if TARGET_BIG_ENDIAN_DEFAULT
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT ARM_FLAG_BIG_END
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
 | 
			
		||||
+#else
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT 0
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #undef  TARGET_DEFAULT_FLOAT_ABI
 | 
			
		||||
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
 | 
			
		||||
 
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (0)
 | 
			
		||||
+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
 | 
			
		||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 /* The GNU C++ standard library requires that these macros be defined.  */
 | 
			
		||||
 #undef CPLUSPLUS_CPP_SPEC
 | 
			
		||||
@@ -90,7 +104,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_OS_CPP_BUILTINS()		\
 | 
			
		||||
--- gcc-4.0.3/gcc/config.gcc
 | 
			
		||||
+++ gcc-4.0.3/gcc/config.gcc
 | 
			
		||||
@@ -672,6 +672,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h  arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h"
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="TARGET_BIG_ENDIAN_DEFAULT=1 $tm_defines"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="${tmake_file} arm/t-arm arm/t-linux"
 | 
			
		||||
 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
 | 
			
		||||
 	gnu_ld=yes
 | 
			
		||||
@ -1,544 +0,0 @@
 | 
			
		||||
--- gcc-4.1.0/gcc/config/t-linux-uclibc
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/t-linux-uclibc
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
+# Remove glibc specific files added in t-linux
 | 
			
		||||
+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
 | 
			
		||||
+
 | 
			
		||||
+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
 | 
			
		||||
+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
 | 
			
		||||
--- gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
+++ gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
@@ -1887,7 +1887,7 @@ s390x-ibm-tpf*)
 | 
			
		||||
 	;;
 | 
			
		||||
 sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
 | 
			
		||||
 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
 | 
			
		||||
-  sh-*-linux* | sh[346lbe]*-*-linux* | \
 | 
			
		||||
+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
 | 
			
		||||
   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
 | 
			
		||||
    sh64-*-netbsd* | sh64l*-*-netbsd*)
 | 
			
		||||
 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
 | 
			
		||||
@@ -2341,6 +2341,12 @@ m32c-*-elf*)
 | 
			
		||||
 	;;
 | 
			
		||||
 esac
 | 
			
		||||
 
 | 
			
		||||
+# Rather than hook into each target, just do it after all the linux
 | 
			
		||||
+# targets have been processed
 | 
			
		||||
+case ${target} in
 | 
			
		||||
+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
 | 
			
		||||
+esac
 | 
			
		||||
+
 | 
			
		||||
 case ${target} in
 | 
			
		||||
 i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
 | 
			
		||||
 	tmake_file="${tmake_file} i386/t-gmm_malloc"
 | 
			
		||||
--- gcc-4.1.0/boehm-gc/configure
 | 
			
		||||
+++ gcc-4.1.0/boehm-gc/configure
 | 
			
		||||
@@ -4320,6 +4320,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/configure
 | 
			
		||||
+++ gcc-4.1.0/configure
 | 
			
		||||
@@ -1133,7 +1133,7 @@ no)
 | 
			
		||||
     ;;
 | 
			
		||||
 "")
 | 
			
		||||
     case "${target}" in
 | 
			
		||||
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 | 
			
		||||
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 | 
			
		||||
         # Enable libmudflap by default in GNU and friends.
 | 
			
		||||
 	;;
 | 
			
		||||
     *-*-freebsd*)
 | 
			
		||||
--- gcc-4.1.0/configure.in
 | 
			
		||||
+++ gcc-4.1.0/configure.in
 | 
			
		||||
@@ -341,7 +341,7 @@ no)
 | 
			
		||||
     ;;
 | 
			
		||||
 "")
 | 
			
		||||
     case "${target}" in
 | 
			
		||||
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 | 
			
		||||
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 | 
			
		||||
         # Enable libmudflap by default in GNU and friends.
 | 
			
		||||
 	;;
 | 
			
		||||
     *-*-freebsd*)
 | 
			
		||||
--- gcc-4.1.0/contrib/regression/objs-gcc.sh
 | 
			
		||||
+++ gcc-4.1.0/contrib/regression/objs-gcc.sh
 | 
			
		||||
@@ -105,6 +105,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H
 | 
			
		||||
  then
 | 
			
		||||
   make all-gdb all-dejagnu all-ld || exit 1
 | 
			
		||||
   make install-gdb install-dejagnu install-ld || exit 1
 | 
			
		||||
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
 | 
			
		||||
+ then
 | 
			
		||||
+  make all-gdb all-dejagnu all-ld || exit 1
 | 
			
		||||
+  make install-gdb install-dejagnu install-ld || exit 1
 | 
			
		||||
 elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
 | 
			
		||||
   make bootstrap || exit 1
 | 
			
		||||
   make install || exit 1
 | 
			
		||||
--- gcc-4.1.0/gcc/config/alpha/linux-elf.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/alpha/linux-elf.h
 | 
			
		||||
@@ -27,7 +27,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 | 
			
		||||
 
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
 | 
			
		||||
   %{O*:-O3} %{!O*:-O1}						\
 | 
			
		||||
--- gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
@@ -51,7 +51,11 @@
 | 
			
		||||
 
 | 
			
		||||
 #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} \
 | 
			
		||||
--- gcc-4.1.0/gcc/config/cris/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/cris/linux.h
 | 
			
		||||
@@ -73,6 +73,25 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -87,6 +106,8 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/gcc/config/i386/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/i386/linux.h
 | 
			
		||||
@@ -107,6 +107,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #define LINK_EMULATION "elf_i386"
 | 
			
		||||
 #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
 
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#undef DYNAMIC_LINKER
 | 
			
		||||
+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #undef  SUBTARGET_EXTRA_SPECS
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
   { "link_emulation", LINK_EMULATION },\
 | 
			
		||||
--- gcc-4.1.0/gcc/config/i386/linux64.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/i386/linux64.h
 | 
			
		||||
@@ -54,14 +54,21 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
    When the -shared link option is used a final link is not being
 | 
			
		||||
    done.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
-      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 | 
			
		||||
+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 | 
			
		||||
+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 | 
			
		||||
     %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* Similar to standard Linux, but adding -ffast-math support.  */
 | 
			
		||||
--- gcc-4.1.0/gcc/config/ia64/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/ia64/linux.h
 | 
			
		||||
@@ -37,13 +37,18 @@ do {						\
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/gcc/config/m68k/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/m68k/linux.h
 | 
			
		||||
@@ -123,12 +123,17 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m m68kelf %{shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
     %{static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* For compatibility with linux/a.out */
 | 
			
		||||
--- gcc-4.1.0/gcc/config/mips/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/mips/linux.h
 | 
			
		||||
@@ -105,6 +105,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
@@ -112,7 +117,7 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
--- gcc-4.1.0/gcc/config/pa/pa-linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/pa/pa-linux.h
 | 
			
		||||
@@ -49,13 +49,18 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* glibc's profiling functions don't need gcc to allocate counters.  */
 | 
			
		||||
--- gcc-4.1.0/gcc/config/rs6000/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/rs6000/linux.h
 | 
			
		||||
@@ -72,7 +72,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
--- gcc-4.1.0/gcc/config/rs6000/sysv4.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/rs6000/sysv4.h
 | 
			
		||||
@@ -866,6 +866,7 @@ extern int fixuplabelno;
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1043,6 +1044,10 @@ extern int fixuplabelno;
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1209,6 +1214,7 @@ ncrtn.o%s"
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
--- gcc-4.1.0/gcc/config/s390/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/s390/linux.h
 | 
			
		||||
@@ -77,6 +77,13 @@ Software Foundation, 51 Franklin Street,
 | 
			
		||||
 #define MULTILIB_DEFAULTS { "m31" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 | 
			
		||||
@@ -86,8 +93,8 @@ Software Foundation, 51 Franklin Street,
 | 
			
		||||
       %{!static: \
 | 
			
		||||
 	%{rdynamic:-export-dynamic} \
 | 
			
		||||
 	%{!dynamic-linker: \
 | 
			
		||||
-          %{m31:-dynamic-linker /lib/ld.so.1} \
 | 
			
		||||
-          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 | 
			
		||||
+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 | 
			
		||||
+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sh/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/sh/linux.h
 | 
			
		||||
@@ -56,12 +56,21 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define SUBTARGET_LINK_SPEC \
 | 
			
		||||
+  "%{shared:-shared} \
 | 
			
		||||
+   %{!static: \
 | 
			
		||||
+     %{rdynamic:-export-dynamic} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+   %{static:-static}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* Output assembler code to STREAM to call the profiler.  */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sparc/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/sparc/linux.h
 | 
			
		||||
@@ -125,6 +125,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!mno-relax:%{!r:-relax}} \
 | 
			
		||||
@@ -132,7 +137,7 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sparc/linux64.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/sparc/linux64.h
 | 
			
		||||
@@ -162,12 +162,17 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 | 
			
		||||
   { "link_arch",	 LINK_ARCH_SPEC },
 | 
			
		||||
     
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}} \
 | 
			
		||||
 "
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/libffi/configure
 | 
			
		||||
+++ gcc-4.1.0/libffi/configure
 | 
			
		||||
@@ -3457,6 +3457,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libgfortran/configure
 | 
			
		||||
+++ gcc-4.1.0/libgfortran/configure
 | 
			
		||||
@@ -3699,6 +3699,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libjava/configure
 | 
			
		||||
+++ gcc-4.1.0/libjava/configure
 | 
			
		||||
@@ -5137,6 +5137,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libmudflap/configure
 | 
			
		||||
+++ gcc-4.1.0/libmudflap/configure
 | 
			
		||||
@@ -5382,6 +5382,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libobjc/configure
 | 
			
		||||
+++ gcc-4.1.0/libobjc/configure
 | 
			
		||||
@@ -3312,6 +3312,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libtool.m4
 | 
			
		||||
+++ gcc-4.1.0/libtool.m4
 | 
			
		||||
@@ -743,6 +743,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$']
 | 
			
		||||
--- gcc-4.1.0/ltconfig
 | 
			
		||||
+++ gcc-4.1.0/ltconfig
 | 
			
		||||
@@ -603,6 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1274,6 +1275,23 @@ linux-gnu*)
 | 
			
		||||
   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.
 | 
			
		||||
+  hardcode_into_libs=yes
 | 
			
		||||
+  # Assume using the uClibc dynamic linker.
 | 
			
		||||
+  dynamic_linker="uClibc ld.so"
 | 
			
		||||
+  ;;
 | 
			
		||||
+
 | 
			
		||||
 netbsd*)
 | 
			
		||||
   need_lib_prefix=no
 | 
			
		||||
   need_version=no
 | 
			
		||||
--- gcc-4.1.0/zlib/configure
 | 
			
		||||
+++ gcc-4.1.0/zlib/configure
 | 
			
		||||
@@ -3426,6 +3426,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
--- gcc-2005q3-1.orig/gcc/config.gcc	2005-10-31 19:02:54.000000000 +0300
 | 
			
		||||
+++ gcc-2005q3-1/gcc/config.gcc	2006-01-27 01:09:09.000000000 +0300
 | 
			
		||||
@@ -674,7 +674,7 @@
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-arm"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
-	arm*-*-linux-gnueabi)
 | 
			
		||||
+	arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
 | 
			
		||||
 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
 | 
			
		||||
 	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
 | 
			
		||||
   	    # The BPABI long long divmod functions return a 128-bit value in 
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-2005q3-2/gcc/config/arm/linux-eabi.h gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h
 | 
			
		||||
--- gcc-2005q3-2/gcc/config/arm/linux-eabi.h	2005-12-07 23:14:16.000000000 +0300
 | 
			
		||||
+++ gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h	2006-03-29 19:02:34.000000000 +0400
 | 
			
		||||
@@ -53,7 +53,11 @@
 | 
			
		||||
 /* Use ld-linux.so.3 so that it will be possible to run "classic"
 | 
			
		||||
    GNU/Linux binaries on an EABI system.  */
 | 
			
		||||
 #undef LINUX_TARGET_INTERPRETER
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
 | 
			
		||||
    use the GNU/Linux version, not the generic BPABI version.  */
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,46 +0,0 @@
 | 
			
		||||
# DP: Build and install libstdc++_pic.a library.
 | 
			
		||||
 | 
			
		||||
--- gcc-4.1.0/libstdc++-v3/src/Makefile.am	2004-11-15 17:33:05.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/libstdc++-v3/src/Makefile.am	2005-04-25 20:05:59.186930896 -0500
 | 
			
		||||
@@ -214,6 +214,10 @@
 | 
			
		||||
 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Added bits to build debug library.
 | 
			
		||||
 if GLIBCXX_BUILD_DEBUG
 | 
			
		||||
 all-local: build_debug
 | 
			
		||||
--- gcc-4.1.0/libstdc++-v3/src/Makefile.in	2005-04-11 19:13:08.000000000 -0500
 | 
			
		||||
+++ gcc-4.1.0-patched/libstdc++-v3/src/Makefile.in	2005-04-25 20:12:33.284316275 -0500
 | 
			
		||||
@@ -627,7 +627,7 @@
 | 
			
		||||
 
 | 
			
		||||
 install-data-am: install-data-local
 | 
			
		||||
 
 | 
			
		||||
-install-exec-am: install-toolexeclibLTLIBRARIES
 | 
			
		||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 install-info: install-info-am
 | 
			
		||||
 
 | 
			
		||||
@@ -660,6 +660,7 @@
 | 
			
		||||
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 | 
			
		||||
 	html-am info info-am install install-am install-data \
 | 
			
		||||
 	install-data-am install-data-local install-exec \
 | 
			
		||||
+	install-exec-local \
 | 
			
		||||
 	install-exec-am install-info install-info-am install-man \
 | 
			
		||||
 	install-strip install-toolexeclibLTLIBRARIES installcheck \
 | 
			
		||||
 	installcheck-am installdirs maintainer-clean \
 | 
			
		||||
@@ -745,6 +746,11 @@
 | 
			
		||||
 install_debug:
 | 
			
		||||
 	(cd ${debugdir} && $(MAKE) \
 | 
			
		||||
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
 | 
			
		||||
+
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+
 | 
			
		||||
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
 # Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
 .NOEXPORT:
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500
 | 
			
		||||
@@ -500,7 +500,7 @@
 | 
			
		||||
 #ifdef __linux__
 | 
			
		||||
 # include <features.h>
 | 
			
		||||
 # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
 | 
			
		||||
-     && !defined(__ia64__)
 | 
			
		||||
+     && !defined(__ia64__) && !defined(__UCLIBC__)
 | 
			
		||||
 #   ifndef GC_HAVE_BUILTIN_BACKTRACE
 | 
			
		||||
 #     define GC_HAVE_BUILTIN_BACKTRACE
 | 
			
		||||
 #   endif
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig	2005-04-29 00:08:41.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h	2005-04-29 00:08:45.000000000 -0500
 | 
			
		||||
@@ -142,7 +142,7 @@
 | 
			
		||||
   using ::vsprintf;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-#if _GLIBCXX_USE_C99
 | 
			
		||||
+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
 | 
			
		||||
 
 | 
			
		||||
 #undef snprintf
 | 
			
		||||
 #undef vfscanf
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/libstdc++-v3/configure-old	2005-04-30 22:04:48.061603912 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/configure	2005-04-30 22:06:13.678588152 -0500
 | 
			
		||||
@@ -7194,6 +7194,9 @@
 | 
			
		||||
 cat >>conftest.$ac_ext <<_ACEOF
 | 
			
		||||
 /* end confdefs.h.  */
 | 
			
		||||
 #include <complex.h>
 | 
			
		||||
+#ifdef __UCLIBC__
 | 
			
		||||
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
 | 
			
		||||
+#endif
 | 
			
		||||
 int
 | 
			
		||||
 main ()
 | 
			
		||||
 {
 | 
			
		||||
@ -1,20 +0,0 @@
 | 
			
		||||
--- gcc-4.1.0/libstdc++-v3/fragment.am	2005-03-21 11:40:14.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/libstdc++-v3/fragment.am	2005-04-25 20:14:39.856251785 -0500
 | 
			
		||||
@@ -21,5 +21,5 @@
 | 
			
		||||
 	$(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
 | 
			
		||||
 
 | 
			
		||||
 # -I/-D flags to pass when compiling.
 | 
			
		||||
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/libstdc++-v3/libmath/Makefile.am	2005-03-21 11:40:18.000000000 -0600
 | 
			
		||||
+++ gcc-4.1.0-patched/libstdc++-v3/libmath/Makefile.am	2005-04-25 20:14:39.682280735 -0500
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
 
 | 
			
		||||
 libmath_la_SOURCES = stubs.c
 | 
			
		||||
 
 | 
			
		||||
-AM_CPPFLAGS = $(CANADIAN_INCLUDES)
 | 
			
		||||
+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
 | 
			
		||||
 
 | 
			
		||||
 # Only compiling "C" sources in this directory.
 | 
			
		||||
 LIBTOOL = @LIBTOOL@ --tag CC
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
 | 
			
		||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836
 | 
			
		||||
 | 
			
		||||
--- gcc/gcc/configure.ac	(revision 106699)
 | 
			
		||||
+++ gcc/gcc/configure.ac	(working copy)
 | 
			
		||||
@@ -2446,7 +2446,7 @@
 | 
			
		||||
 	tls_first_minor=14
 | 
			
		||||
 	tls_as_opt="-m64 -Aesame --fatal-warnings"
 | 
			
		||||
 	;;
 | 
			
		||||
-  sh-*-* | sh[34]-*-*)
 | 
			
		||||
+  sh-*-* | sh[34]*-*-*)
 | 
			
		||||
     conftest_s='
 | 
			
		||||
 	.section ".tdata","awT",@progbits
 | 
			
		||||
 foo:	.long	25
 | 
			
		||||
--- gcc/gcc/configure
 | 
			
		||||
+++ gcc/gcc/configure
 | 
			
		||||
@@ -14846,7 +14846,7 @@
 | 
			
		||||
 	tls_first_minor=14
 | 
			
		||||
 	tls_as_opt="-m64 -Aesame --fatal-warnings"
 | 
			
		||||
 	;;
 | 
			
		||||
-  sh-*-* | sh[34]-*-*)
 | 
			
		||||
+  sh-*-* | sh[34]*-*-*)
 | 
			
		||||
     conftest_s='
 | 
			
		||||
 	.section ".tdata","awT",@progbits
 | 
			
		||||
 foo:	.long	25
 | 
			
		||||
@ -1,67 +0,0 @@
 | 
			
		||||
By Lennert Buytenhek <buytenh@wantstofly.org>
 | 
			
		||||
Adds support for arm*b-linux* big-endian ARM targets
 | 
			
		||||
 | 
			
		||||
See http://gcc.gnu.org/PR16350
 | 
			
		||||
 | 
			
		||||
--- gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
@@ -28,19 +28,33 @@
 | 
			
		||||
 #undef  TARGET_VERSION
 | 
			
		||||
 #define TARGET_VERSION  fputs (" (ARM GNU/Linux with ELF)", stderr);
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
 | 
			
		||||
+ * (big endian) configurations.
 | 
			
		||||
+ */
 | 
			
		||||
+#if TARGET_BIG_ENDIAN_DEFAULT
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
 | 
			
		||||
+#else
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT 0
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #undef  TARGET_DEFAULT_FLOAT_ABI
 | 
			
		||||
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
 | 
			
		||||
 
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (0)
 | 
			
		||||
+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
 | 
			
		||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 /* Now we define the strings used to build the spec file.  */
 | 
			
		||||
 #undef  LIB_SPEC
 | 
			
		||||
@@ -61,7 +75,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker " LINUX_TARGET_INTERPRETER "} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
--- gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
+++ gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
@@ -672,6 +672,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="${tmake_file} t-linux arm/t-arm"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
 	arm*-*-linux-gnueabi)
 | 
			
		||||
@ -1,544 +0,0 @@
 | 
			
		||||
--- gcc-4.1.0/gcc/config/t-linux-uclibc
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/t-linux-uclibc
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
+# Remove glibc specific files added in t-linux
 | 
			
		||||
+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
 | 
			
		||||
+
 | 
			
		||||
+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
 | 
			
		||||
+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
 | 
			
		||||
--- gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
+++ gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
@@ -1887,7 +1887,7 @@ s390x-ibm-tpf*)
 | 
			
		||||
 	;;
 | 
			
		||||
 sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
 | 
			
		||||
 sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
 | 
			
		||||
-  sh-*-linux* | sh[346lbe]*-*-linux* | \
 | 
			
		||||
+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
 | 
			
		||||
   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
 | 
			
		||||
    sh64-*-netbsd* | sh64l*-*-netbsd*)
 | 
			
		||||
 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
 | 
			
		||||
@@ -2341,6 +2341,12 @@ m32c-*-elf*)
 | 
			
		||||
 	;;
 | 
			
		||||
 esac
 | 
			
		||||
 
 | 
			
		||||
+# Rather than hook into each target, just do it after all the linux
 | 
			
		||||
+# targets have been processed
 | 
			
		||||
+case ${target} in
 | 
			
		||||
+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
 | 
			
		||||
+esac
 | 
			
		||||
+
 | 
			
		||||
 case ${target} in
 | 
			
		||||
 i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
 | 
			
		||||
 	tmake_file="${tmake_file} i386/t-gmm_malloc"
 | 
			
		||||
--- gcc-4.1.0/boehm-gc/configure
 | 
			
		||||
+++ gcc-4.1.0/boehm-gc/configure
 | 
			
		||||
@@ -4320,6 +4320,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/configure
 | 
			
		||||
+++ gcc-4.1.0/configure
 | 
			
		||||
@@ -1133,7 +1133,7 @@ no)
 | 
			
		||||
     ;;
 | 
			
		||||
 "")
 | 
			
		||||
     case "${target}" in
 | 
			
		||||
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 | 
			
		||||
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 | 
			
		||||
         # Enable libmudflap by default in GNU and friends.
 | 
			
		||||
 	;;
 | 
			
		||||
     *-*-freebsd*)
 | 
			
		||||
--- gcc-4.1.0/configure.in
 | 
			
		||||
+++ gcc-4.1.0/configure.in
 | 
			
		||||
@@ -341,7 +341,7 @@ no)
 | 
			
		||||
     ;;
 | 
			
		||||
 "")
 | 
			
		||||
     case "${target}" in
 | 
			
		||||
-    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
 | 
			
		||||
+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
 | 
			
		||||
         # Enable libmudflap by default in GNU and friends.
 | 
			
		||||
 	;;
 | 
			
		||||
     *-*-freebsd*)
 | 
			
		||||
--- gcc-4.1.0/contrib/regression/objs-gcc.sh
 | 
			
		||||
+++ gcc-4.1.0/contrib/regression/objs-gcc.sh
 | 
			
		||||
@@ -105,6 +105,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H
 | 
			
		||||
  then
 | 
			
		||||
   make all-gdb all-dejagnu all-ld || exit 1
 | 
			
		||||
   make install-gdb install-dejagnu install-ld || exit 1
 | 
			
		||||
+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
 | 
			
		||||
+ then
 | 
			
		||||
+  make all-gdb all-dejagnu all-ld || exit 1
 | 
			
		||||
+  make install-gdb install-dejagnu install-ld || exit 1
 | 
			
		||||
 elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
 | 
			
		||||
   make bootstrap || exit 1
 | 
			
		||||
   make install || exit 1
 | 
			
		||||
--- gcc-4.1.0/gcc/config/alpha/linux-elf.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/alpha/linux-elf.h
 | 
			
		||||
@@ -27,7 +27,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
 { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
 | 
			
		||||
 
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define ELF_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
 | 
			
		||||
   %{O*:-O3} %{!O*:-O1}						\
 | 
			
		||||
--- gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
@@ -51,7 +51,11 @@
 | 
			
		||||
 
 | 
			
		||||
 #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
 | 
			
		||||
    %{b} \
 | 
			
		||||
--- gcc-4.1.0/gcc/config/cris/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/cris/linux.h
 | 
			
		||||
@@ -73,6 +73,25 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #undef CRIS_DEFAULT_CPU_VERSION
 | 
			
		||||
 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
 | 
			
		||||
+
 | 
			
		||||
+#undef CRIS_LINK_SUBTARGET_SPEC
 | 
			
		||||
+#define CRIS_LINK_SUBTARGET_SPEC \
 | 
			
		||||
+ "-mcrislinux\
 | 
			
		||||
+  -rpath-link include/asm/../..%s\
 | 
			
		||||
+  %{shared} %{static}\
 | 
			
		||||
+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
 | 
			
		||||
+  %{!shared: \
 | 
			
		||||
+    %{!static: \
 | 
			
		||||
+      %{rdynamic:-export-dynamic} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
 | 
			
		||||
+  %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
+
 | 
			
		||||
+#else  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 #undef CRIS_SUBTARGET_VERSION
 | 
			
		||||
 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
 | 
			
		||||
 
 | 
			
		||||
@@ -87,6 +106,8 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
 | 
			
		||||
   %{!r:%{O2|O3: --gc-sections}}"
 | 
			
		||||
 
 | 
			
		||||
+#endif  /* USE_UCLIBC */
 | 
			
		||||
+
 | 
			
		||||
 
 | 
			
		||||
 /* Node: Run-time Target */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/gcc/config/i386/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/i386/linux.h
 | 
			
		||||
@@ -107,6 +107,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #define LINK_EMULATION "elf_i386"
 | 
			
		||||
 #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
 
 | 
			
		||||
+#if defined USE_UCLIBC
 | 
			
		||||
+#undef DYNAMIC_LINKER
 | 
			
		||||
+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #undef  SUBTARGET_EXTRA_SPECS
 | 
			
		||||
 #define SUBTARGET_EXTRA_SPECS \
 | 
			
		||||
   { "link_emulation", LINK_EMULATION },\
 | 
			
		||||
--- gcc-4.1.0/gcc/config/i386/linux64.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/i386/linux64.h
 | 
			
		||||
@@ -54,14 +54,21 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
    When the -shared link option is used a final link is not being
 | 
			
		||||
    done.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
-      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
 | 
			
		||||
+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
 | 
			
		||||
+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
 | 
			
		||||
     %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* Similar to standard Linux, but adding -ffast-math support.  */
 | 
			
		||||
--- gcc-4.1.0/gcc/config/ia64/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/ia64/linux.h
 | 
			
		||||
@@ -37,13 +37,18 @@ do {						\
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/gcc/config/m68k/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/m68k/linux.h
 | 
			
		||||
@@ -123,12 +123,17 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef	LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m m68kelf %{shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
     %{static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* For compatibility with linux/a.out */
 | 
			
		||||
--- gcc-4.1.0/gcc/config/mips/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/mips/linux.h
 | 
			
		||||
@@ -105,6 +105,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 
 | 
			
		||||
 /* Borrowed from sparc/linux.h */
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
  "%(endian_spec) \
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
@@ -112,7 +117,7 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 #undef SUBTARGET_ASM_SPEC
 | 
			
		||||
--- gcc-4.1.0/gcc/config/pa/pa-linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/pa/pa-linux.h
 | 
			
		||||
@@ -49,13 +49,18 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 /* Define this for shared library support because it isn't in the main
 | 
			
		||||
    linux.h file.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "\
 | 
			
		||||
   %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!static: \
 | 
			
		||||
       %{rdynamic:-export-dynamic} \
 | 
			
		||||
-      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
 | 
			
		||||
+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
       %{static:-static}}"
 | 
			
		||||
 
 | 
			
		||||
 /* glibc's profiling functions don't need gcc to allocate counters.  */
 | 
			
		||||
--- gcc-4.1.0/gcc/config/rs6000/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/rs6000/linux.h
 | 
			
		||||
@@ -72,7 +72,11 @@
 | 
			
		||||
 #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
 | 
			
		||||
 
 | 
			
		||||
 #undef	LINK_OS_DEFAULT_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 #define LINK_GCC_C_SEQUENCE_SPEC \
 | 
			
		||||
   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
 | 
			
		||||
--- gcc-4.1.0/gcc/config/rs6000/sysv4.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/rs6000/sysv4.h
 | 
			
		||||
@@ -866,6 +866,7 @@ extern int fixuplabelno;
 | 
			
		||||
   mcall-linux  : %(link_os_linux)       ; \
 | 
			
		||||
   mcall-gnu    : %(link_os_gnu)         ; \
 | 
			
		||||
   mcall-netbsd : %(link_os_netbsd)      ; \
 | 
			
		||||
+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
 | 
			
		||||
   mcall-openbsd: %(link_os_openbsd)     ; \
 | 
			
		||||
                : %(link_os_default)     }"
 | 
			
		||||
 
 | 
			
		||||
@@ -1043,6 +1044,10 @@ extern int fixuplabelno;
 | 
			
		||||
   %{rdynamic:-export-dynamic} \
 | 
			
		||||
   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
 | 
			
		||||
 
 | 
			
		||||
+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
 | 
			
		||||
+  %{rdynamic:-export-dynamic} \
 | 
			
		||||
+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
 | 
			
		||||
+
 | 
			
		||||
 #if defined(HAVE_LD_EH_FRAME_HDR)
 | 
			
		||||
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
 | 
			
		||||
 #endif
 | 
			
		||||
@@ -1209,6 +1214,7 @@ ncrtn.o%s"
 | 
			
		||||
   { "link_os_sim",		LINK_OS_SIM_SPEC },			\
 | 
			
		||||
   { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\
 | 
			
		||||
   { "link_os_linux",		LINK_OS_LINUX_SPEC },			\
 | 
			
		||||
+  { "link_os_linux_uclibc",	LINK_OS_LINUX_UCLIBC_SPEC },		\
 | 
			
		||||
   { "link_os_gnu",		LINK_OS_GNU_SPEC },			\
 | 
			
		||||
   { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\
 | 
			
		||||
   { "link_os_openbsd",		LINK_OS_OPENBSD_SPEC },			\
 | 
			
		||||
--- gcc-4.1.0/gcc/config/s390/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/s390/linux.h
 | 
			
		||||
@@ -77,6 +77,13 @@ Software Foundation, 51 Franklin Street,
 | 
			
		||||
 #define MULTILIB_DEFAULTS { "m31" }
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
 | 
			
		||||
+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC \
 | 
			
		||||
   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
 | 
			
		||||
@@ -86,8 +93,8 @@ Software Foundation, 51 Franklin Street,
 | 
			
		||||
       %{!static: \
 | 
			
		||||
 	%{rdynamic:-export-dynamic} \
 | 
			
		||||
 	%{!dynamic-linker: \
 | 
			
		||||
-          %{m31:-dynamic-linker /lib/ld.so.1} \
 | 
			
		||||
-          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
 | 
			
		||||
+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
 | 
			
		||||
+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
 #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sh/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/sh/linux.h
 | 
			
		||||
@@ -56,12 +56,21 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 #undef SUBTARGET_LINK_EMUL_SUFFIX
 | 
			
		||||
 #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
 | 
			
		||||
 #undef SUBTARGET_LINK_SPEC
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define SUBTARGET_LINK_SPEC \
 | 
			
		||||
+  "%{shared:-shared} \
 | 
			
		||||
+   %{!static: \
 | 
			
		||||
+     %{rdynamic:-export-dynamic} \
 | 
			
		||||
+     %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
 | 
			
		||||
+   %{static:-static}"
 | 
			
		||||
+#else
 | 
			
		||||
 #define SUBTARGET_LINK_SPEC \
 | 
			
		||||
   "%{shared:-shared} \
 | 
			
		||||
    %{!static: \
 | 
			
		||||
      %{rdynamic:-export-dynamic} \
 | 
			
		||||
      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
    %{static:-static}"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* Output assembler code to STREAM to call the profiler.  */
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sparc/linux.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/sparc/linux.h
 | 
			
		||||
@@ -125,6 +125,11 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
 
 | 
			
		||||
 /* If ELF is the default format, we should not use /lib/elf.  */
 | 
			
		||||
 
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
 #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!mno-relax:%{!r:-relax}} \
 | 
			
		||||
@@ -132,7 +137,7 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}}"
 | 
			
		||||
 
 | 
			
		||||
 /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
 | 
			
		||||
--- gcc-4.1.0/gcc/config/sparc/linux64.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/sparc/linux64.h
 | 
			
		||||
@@ -162,12 +162,17 @@ Boston, MA 02110-1301, USA.  */
 | 
			
		||||
   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },	  \
 | 
			
		||||
   { "link_arch",	 LINK_ARCH_SPEC },
 | 
			
		||||
     
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER	"/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
 | 
			
		||||
+#endif
 | 
			
		||||
 #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
 | 
			
		||||
   %{!shared: \
 | 
			
		||||
     %{!ibcs: \
 | 
			
		||||
       %{!static: \
 | 
			
		||||
         %{rdynamic:-export-dynamic} \
 | 
			
		||||
-        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
 | 
			
		||||
+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
 | 
			
		||||
         %{static:-static}}} \
 | 
			
		||||
 "
 | 
			
		||||
 
 | 
			
		||||
--- gcc-4.1.0/libffi/configure
 | 
			
		||||
+++ gcc-4.1.0/libffi/configure
 | 
			
		||||
@@ -3457,6 +3457,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libgfortran/configure
 | 
			
		||||
+++ gcc-4.1.0/libgfortran/configure
 | 
			
		||||
@@ -3699,6 +3699,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libjava/configure
 | 
			
		||||
+++ gcc-4.1.0/libjava/configure
 | 
			
		||||
@@ -5137,6 +5137,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libmudflap/configure
 | 
			
		||||
+++ gcc-4.1.0/libmudflap/configure
 | 
			
		||||
@@ -5382,6 +5382,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libobjc/configure
 | 
			
		||||
+++ gcc-4.1.0/libobjc/configure
 | 
			
		||||
@@ -3312,6 +3312,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
--- gcc-4.1.0/libtool.m4
 | 
			
		||||
+++ gcc-4.1.0/libtool.m4
 | 
			
		||||
@@ -743,6 +743,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$']
 | 
			
		||||
--- gcc-4.1.0/ltconfig
 | 
			
		||||
+++ gcc-4.1.0/ltconfig
 | 
			
		||||
@@ -603,6 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
 | 
			
		||||
 
 | 
			
		||||
 # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
 | 
			
		||||
 case $host_os in
 | 
			
		||||
+linux-uclibc*) ;;
 | 
			
		||||
 linux-gnu*) ;;
 | 
			
		||||
 linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
 | 
			
		||||
 esac
 | 
			
		||||
@@ -1274,6 +1275,23 @@ linux-gnu*)
 | 
			
		||||
   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.
 | 
			
		||||
+  hardcode_into_libs=yes
 | 
			
		||||
+  # Assume using the uClibc dynamic linker.
 | 
			
		||||
+  dynamic_linker="uClibc ld.so"
 | 
			
		||||
+  ;;
 | 
			
		||||
+
 | 
			
		||||
 netbsd*)
 | 
			
		||||
   need_lib_prefix=no
 | 
			
		||||
   need_version=no
 | 
			
		||||
--- gcc-4.1.0/zlib/configure
 | 
			
		||||
+++ gcc-4.1.0/zlib/configure
 | 
			
		||||
@@ -3426,6 +3426,11 @@ linux-gnu*)
 | 
			
		||||
   lt_cv_deplibs_check_method=pass_all
 | 
			
		||||
   ;;
 | 
			
		||||
 
 | 
			
		||||
+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]+$'
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
--- gcc-2005q3-1.orig/gcc/config.gcc	2005-10-31 19:02:54.000000000 +0300
 | 
			
		||||
+++ gcc-2005q3-1/gcc/config.gcc	2006-01-27 01:09:09.000000000 +0300
 | 
			
		||||
@@ -674,7 +674,7 @@
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
 | 
			
		||||
 	tmake_file="t-slibgcc-elf-ver t-linux arm/t-arm"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
-	arm*-*-linux-gnueabi)
 | 
			
		||||
+	arm*-*-linux-gnueabi | arm*-*-linux-uclibcgnueabi)
 | 
			
		||||
 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
 | 
			
		||||
 	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
 | 
			
		||||
   	    # The BPABI long long divmod functions return a 128-bit value in 
 | 
			
		||||
 | 
			
		||||
diff -urN gcc-2005q3-2/gcc/config/arm/linux-eabi.h gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h
 | 
			
		||||
--- gcc-2005q3-2/gcc/config/arm/linux-eabi.h	2005-12-07 23:14:16.000000000 +0300
 | 
			
		||||
+++ gcc-2005q3-2.new/gcc/config/arm/linux-eabi.h	2006-03-29 19:02:34.000000000 +0400
 | 
			
		||||
@@ -53,7 +53,11 @@
 | 
			
		||||
 /* Use ld-linux.so.3 so that it will be possible to run "classic"
 | 
			
		||||
    GNU/Linux binaries on an EABI system.  */
 | 
			
		||||
 #undef LINUX_TARGET_INTERPRETER
 | 
			
		||||
+#ifdef USE_UCLIBC
 | 
			
		||||
+#define LINUX_TARGET_INTERPRETER "/lib/ld-uClibc.so.0"
 | 
			
		||||
+#else
 | 
			
		||||
 #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
 | 
			
		||||
+#endif
 | 
			
		||||
 
 | 
			
		||||
 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
 | 
			
		||||
    use the GNU/Linux version, not the generic BPABI version.  */
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -1,50 +0,0 @@
 | 
			
		||||
# DP: Build and install libstdc++_pic.a library.
 | 
			
		||||
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.am
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.am
 | 
			
		||||
@@ -214,6 +214,12 @@
 | 
			
		||||
 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+ifeq ($(enable_shared),yes)
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+endif
 | 
			
		||||
+
 | 
			
		||||
 # Added bits to build debug library.
 | 
			
		||||
 if GLIBCXX_BUILD_DEBUG
 | 
			
		||||
 all-local: build_debug
 | 
			
		||||
--- gcc/libstdc++-v3/src/Makefile.in
 | 
			
		||||
+++ gcc/libstdc++-v3/src/Makefile.in
 | 
			
		||||
@@ -627,7 +627,7 @@
 | 
			
		||||
 
 | 
			
		||||
 install-data-am: install-data-local
 | 
			
		||||
 
 | 
			
		||||
-install-exec-am: install-toolexeclibLTLIBRARIES
 | 
			
		||||
+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
 | 
			
		||||
 
 | 
			
		||||
 install-info: install-info-am
 | 
			
		||||
 
 | 
			
		||||
@@ -660,6 +660,7 @@
 | 
			
		||||
 	distclean-libtool distclean-tags distdir dvi dvi-am html \
 | 
			
		||||
 	html-am info info-am install install-am install-data \
 | 
			
		||||
 	install-data-am install-data-local install-exec \
 | 
			
		||||
+	install-exec-local \
 | 
			
		||||
 	install-exec-am install-info install-info-am install-man \
 | 
			
		||||
 	install-strip install-toolexeclibLTLIBRARIES installcheck \
 | 
			
		||||
 	installcheck-am installdirs maintainer-clean \
 | 
			
		||||
@@ -743,6 +743,13 @@
 | 
			
		||||
 install_debug:
 | 
			
		||||
 	(cd ${debugdir} && $(MAKE) \
 | 
			
		||||
 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
 | 
			
		||||
+
 | 
			
		||||
+install-exec-local:
 | 
			
		||||
+ifeq ($(enable_shared),yes)
 | 
			
		||||
+	$(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
 | 
			
		||||
+	$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
 | 
			
		||||
+endif
 | 
			
		||||
+
 | 
			
		||||
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | 
			
		||||
 # Otherwise a system limit (for SysV at least) may be exceeded.
 | 
			
		||||
 .NOEXPORT:
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500
 | 
			
		||||
@@ -500,7 +500,7 @@
 | 
			
		||||
 #ifdef __linux__
 | 
			
		||||
 # include <features.h>
 | 
			
		||||
 # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
 | 
			
		||||
-     && !defined(__ia64__)
 | 
			
		||||
+     && !defined(__ia64__) && !defined(__UCLIBC__)
 | 
			
		||||
 #   ifndef GC_HAVE_BUILTIN_BACKTRACE
 | 
			
		||||
 #     define GC_HAVE_BUILTIN_BACKTRACE
 | 
			
		||||
 #   endif
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h-orig	2005-04-29 00:08:41.000000000 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cstdio.h	2005-04-29 00:08:45.000000000 -0500
 | 
			
		||||
@@ -142,7 +142,7 @@
 | 
			
		||||
   using ::vsprintf;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
-#if _GLIBCXX_USE_C99
 | 
			
		||||
+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
 | 
			
		||||
 
 | 
			
		||||
 #undef snprintf
 | 
			
		||||
 #undef vfscanf
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
--- gcc-4.0.0/libstdc++-v3/configure-old	2005-04-30 22:04:48.061603912 -0500
 | 
			
		||||
+++ gcc-4.0.0/libstdc++-v3/configure	2005-04-30 22:06:13.678588152 -0500
 | 
			
		||||
@@ -7194,6 +7194,9 @@
 | 
			
		||||
 cat >>conftest.$ac_ext <<_ACEOF
 | 
			
		||||
 /* end confdefs.h.  */
 | 
			
		||||
 #include <complex.h>
 | 
			
		||||
+#ifdef __UCLIBC__
 | 
			
		||||
+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
 | 
			
		||||
+#endif
 | 
			
		||||
 int
 | 
			
		||||
 main ()
 | 
			
		||||
 {
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
--- gcc-4.1.0/libstdc++-v3/include/ext/rope.mps	2006-03-24 01:49:51 +0100
 | 
			
		||||
+++ gcc-4.1.0/libstdc++-v3/include/ext/rope	2006-03-24 01:49:37 +0100
 | 
			
		||||
@@ -59,6 +59,9 @@
 | 
			
		||||
 #include <bits/allocator.h>
 | 
			
		||||
 #include <ext/hash_fun.h>
 | 
			
		||||
 
 | 
			
		||||
+/* cope w/ index defined as macro, SuSv3 proposal */
 | 
			
		||||
+#undef index
 | 
			
		||||
+
 | 
			
		||||
 # ifdef __GC
 | 
			
		||||
 #   define __GC_CONST const
 | 
			
		||||
 # else
 | 
			
		||||
--- gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h.mps	2006-03-24 01:50:04 +0100
 | 
			
		||||
+++ gcc-4.1.0/libstdc++-v3/include/ext/ropeimpl.h	2006-03-24 01:50:28 +0100
 | 
			
		||||
@@ -53,6 +53,9 @@
 | 
			
		||||
 #include <ext/memory> // For uninitialized_copy_n
 | 
			
		||||
 #include <ext/numeric> // For power
 | 
			
		||||
 
 | 
			
		||||
+/* cope w/ index defined as macro, SuSv3 proposal */
 | 
			
		||||
+#undef index
 | 
			
		||||
+
 | 
			
		||||
 namespace __gnu_cxx
 | 
			
		||||
 {
 | 
			
		||||
   using std::size_t;
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
 | 
			
		||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836
 | 
			
		||||
 | 
			
		||||
--- gcc/gcc/configure.ac	(revision 106699)
 | 
			
		||||
+++ gcc/gcc/configure.ac	(working copy)
 | 
			
		||||
@@ -2446,7 +2446,7 @@
 | 
			
		||||
 	tls_first_minor=14
 | 
			
		||||
 	tls_as_opt="-m64 -Aesame --fatal-warnings"
 | 
			
		||||
 	;;
 | 
			
		||||
-  sh-*-* | sh[34]-*-*)
 | 
			
		||||
+  sh-*-* | sh[34]*-*-*)
 | 
			
		||||
     conftest_s='
 | 
			
		||||
 	.section ".tdata","awT",@progbits
 | 
			
		||||
 foo:	.long	25
 | 
			
		||||
--- gcc/gcc/configure
 | 
			
		||||
+++ gcc/gcc/configure
 | 
			
		||||
@@ -14846,7 +14846,7 @@
 | 
			
		||||
 	tls_first_minor=14
 | 
			
		||||
 	tls_as_opt="-m64 -Aesame --fatal-warnings"
 | 
			
		||||
 	;;
 | 
			
		||||
-  sh-*-* | sh[34]-*-*)
 | 
			
		||||
+  sh-*-* | sh[34]*-*-*)
 | 
			
		||||
     conftest_s='
 | 
			
		||||
 	.section ".tdata","awT",@progbits
 | 
			
		||||
 foo:	.long	25
 | 
			
		||||
@ -1,67 +0,0 @@
 | 
			
		||||
By Lennert Buytenhek <buytenh@wantstofly.org>
 | 
			
		||||
Adds support for arm*b-linux* big-endian ARM targets
 | 
			
		||||
 | 
			
		||||
See http://gcc.gnu.org/PR16350
 | 
			
		||||
 | 
			
		||||
--- gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
+++ gcc-4.1.0/gcc/config/arm/linux-elf.h
 | 
			
		||||
@@ -28,19 +28,33 @@
 | 
			
		||||
 #undef  TARGET_VERSION
 | 
			
		||||
 #define TARGET_VERSION  fputs (" (ARM GNU/Linux with ELF)", stderr);
 | 
			
		||||
 
 | 
			
		||||
+/*
 | 
			
		||||
+ * 'config.gcc' defines TARGET_BIG_ENDIAN_DEFAULT as 1 for arm*b-*
 | 
			
		||||
+ * (big endian) configurations.
 | 
			
		||||
+ */
 | 
			
		||||
+#if TARGET_BIG_ENDIAN_DEFAULT
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT MASK_BIG_END
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mbig-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelfb_linux"
 | 
			
		||||
+#else
 | 
			
		||||
+#define TARGET_ENDIAN_DEFAULT 0
 | 
			
		||||
+#define TARGET_ENDIAN_OPTION "mlittle-endian"
 | 
			
		||||
+#define TARGET_LINKER_EMULATION "armelf_linux"
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 #undef  TARGET_DEFAULT_FLOAT_ABI
 | 
			
		||||
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
 | 
			
		||||
 
 | 
			
		||||
 #undef  TARGET_DEFAULT
 | 
			
		||||
-#define TARGET_DEFAULT (0)
 | 
			
		||||
+#define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
 | 
			
		||||
 
 | 
			
		||||
 #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
 | 
			
		||||
 
 | 
			
		||||
-#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux -p"
 | 
			
		||||
+#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 | 
			
		||||
 
 | 
			
		||||
 #undef  MULTILIB_DEFAULTS
 | 
			
		||||
 #define MULTILIB_DEFAULTS \
 | 
			
		||||
-	{ "marm", "mlittle-endian", "mhard-float", "mno-thumb-interwork" }
 | 
			
		||||
+	{ "marm", TARGET_ENDIAN_OPTION, "mhard-float", "mno-thumb-interwork" }
 | 
			
		||||
 
 | 
			
		||||
 /* Now we define the strings used to build the spec file.  */
 | 
			
		||||
 #undef  LIB_SPEC
 | 
			
		||||
@@ -61,7 +75,7 @@
 | 
			
		||||
    %{rdynamic:-export-dynamic} \
 | 
			
		||||
    %{!dynamic-linker:-dynamic-linker " LINUX_TARGET_INTERPRETER "} \
 | 
			
		||||
    -X \
 | 
			
		||||
-   %{mbig-endian:-EB}" \
 | 
			
		||||
+   %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
 | 
			
		||||
    SUBTARGET_EXTRA_LINK_SPEC
 | 
			
		||||
 
 | 
			
		||||
 #undef  LINK_SPEC
 | 
			
		||||
--- gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
+++ gcc-4.1.0/gcc/config.gcc
 | 
			
		||||
@@ -672,6 +672,11 @@
 | 
			
		||||
 	;;
 | 
			
		||||
 arm*-*-linux*)			# ARM GNU/Linux with ELF
 | 
			
		||||
 	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
 | 
			
		||||
+	case $target in
 | 
			
		||||
+	arm*b-*)
 | 
			
		||||
+		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
 | 
			
		||||
+		;;
 | 
			
		||||
+	esac
 | 
			
		||||
 	tmake_file="${tmake_file} t-linux arm/t-arm"
 | 
			
		||||
 	case ${target} in
 | 
			
		||||
 	arm*-*-linux-gnueabi)
 | 
			
		||||
@ -1,37 +0,0 @@
 | 
			
		||||
diff -ur gcc.old/libstdc++-v3/configure gcc.dev/libstdc++-v3/configure
 | 
			
		||||
--- gcc.old/libstdc++-v3/configure	2006-06-29 23:26:47.000000000 +0200
 | 
			
		||||
+++ gcc.dev/libstdc++-v3/configure	2006-06-05 15:48:03.000000000 +0200
 | 
			
		||||
@@ -5745,7 +5745,7 @@
 | 
			
		||||
   enableval="$enable_clocale"
 | 
			
		||||
 
 | 
			
		||||
       case "$enableval" in
 | 
			
		||||
-       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
 | 
			
		||||
+       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
 | 
			
		||||
        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
 | 
			
		||||
 echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
 | 
			
		||||
    { (exit 1); exit 1; }; } ;;
 | 
			
		||||
@@ -6524,23 +6525,6 @@
 | 
			
		||||
 echo "${ECHO_T}$enable_long_long" >&6
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
-
 | 
			
		||||
-   # Check whether --enable-wchar_t or --disable-wchar_t was given.
 | 
			
		||||
-if test "${enable_wchar_t+set}" = set; then
 | 
			
		||||
-  enableval="$enable_wchar_t"
 | 
			
		||||
-
 | 
			
		||||
-      case "$enableval" in
 | 
			
		||||
-       yes|no) ;;
 | 
			
		||||
-       *) { { echo "$as_me:$LINENO: error: Argument to enable/disable wchar_t must be yes or no" >&5
 | 
			
		||||
-echo "$as_me: error: Argument to enable/disable wchar_t must be yes or no" >&2;}
 | 
			
		||||
-   { (exit 1); exit 1; }; } ;;
 | 
			
		||||
-      esac
 | 
			
		||||
-
 | 
			
		||||
-else
 | 
			
		||||
-  enable_wchar_t=yes
 | 
			
		||||
-fi;
 | 
			
		||||
-
 | 
			
		||||
-
 | 
			
		||||
   # Test wchar.h for mbstate_t, which is needed for char_traits and fpos.
 | 
			
		||||
 
 | 
			
		||||
 for ac_header in wchar.h
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user