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:
		| @@ -7,35 +7,15 @@ choice | |||||||
| 	help | 	help | ||||||
| 	  Select the version of gcc you wish to use. | 	  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 | 	config GCC_VERSION_3_4_6 | ||||||
| 		bool "gcc 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 | 	config GCC_VERSION_4_1_2 | ||||||
|  | 		depends !LINUX_2_4 | ||||||
| 		bool "gcc 4.1.2" | 		bool "gcc 4.1.2" | ||||||
|  |  | ||||||
| 	config GCC_VERSION_4_2 | 	config GCC_VERSION_4_2 | ||||||
|  | 		depends !LINUX_2_4 | ||||||
| 		bool "gcc 4.2 (20060709)" | 		bool "gcc 4.2 (20060709)" | ||||||
|  |  | ||||||
| endchoice | 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 |  | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau