Просмотр исходного кода

refresh gcc-4.2.3 patches

SVN-Revision: 11232
Matteo Croce 17 лет назад
Родитель
Сommit
4a78320c11
27 измененных файлов с 667 добавлено и 562 удалено
  1. 76 44
      toolchain/gcc/patches/4.2.3/100-uclibc-conf.patch
  2. 6 4
      toolchain/gcc/patches/4.2.3/103-uclibc-conf-noupstream.patch
  3. 74 42
      toolchain/gcc/patches/4.2.3/200-uclibc-locale.patch
  4. 40 20
      toolchain/gcc/patches/4.2.3/203-uclibc-locale-no__x.patch
  5. 8 4
      toolchain/gcc/patches/4.2.3/204-uclibc-locale-wchar_fix.patch
  6. 32 18
      toolchain/gcc/patches/4.2.3/205-uclibc-locale-update.patch
  7. 13 9
      toolchain/gcc/patches/4.2.3/300-libstdc++-pic.patch
  8. 6 4
      toolchain/gcc/patches/4.2.3/301-missing-execinfo_h.patch
  9. 7 5
      toolchain/gcc/patches/4.2.3/302-c99-snprintf.patch
  10. 5 3
      toolchain/gcc/patches/4.2.3/303-c99-complex-ugly-hack.patch
  11. 11 7
      toolchain/gcc/patches/4.2.3/304-index_macro.patch
  12. 3 3
      toolchain/gcc/patches/4.2.3/305-libmudflap-susv3-legacy.patch
  13. 8 6
      toolchain/gcc/patches/4.2.3/306-libstdc++-namespace.patch
  14. 6 4
      toolchain/gcc/patches/4.2.3/307-locale_facets.patch
  15. 4 4
      toolchain/gcc/patches/4.2.3/402-libbackend_dep_gcov-iov.h.patch
  16. 11 7
      toolchain/gcc/patches/4.2.3/800-arm-bigendian.patch
  17. 259 205
      toolchain/gcc/patches/4.2.3/900-avr32_support.patch
  18. 6 6
      toolchain/gcc/patches/4.2.3/901-avr32_add_mno-pic.patch
  19. 3 3
      toolchain/gcc/patches/4.2.3/902-avr32_fix_pic_redefinition_warning.patch
  20. 5 3
      toolchain/gcc/patches/4.2.3/903-avr32_fix_expanding_builtin_xchg.patch
  21. 5 84
      toolchain/gcc/patches/4.2.3/904-flatten-switch-stmt-00.patch
  22. 8 10
      toolchain/gcc/patches/4.2.3/905-avr32_fix_folding_machine_reorg_optimizations.patch
  23. 3 3
      toolchain/gcc/patches/4.2.3/906-avr32_use_rjmp_instead_of_got_when_jumping.patch
  24. 5 4
      toolchain/gcc/patches/4.2.3/908-avr32_fix_invalid_assembler_code_on_64bit_hosts.patch
  25. 37 37
      toolchain/gcc/patches/4.2.3/910-mbsd_multi.patch
  26. 17 14
      toolchain/gcc/patches/4.2.3/910-soft-float.patch
  27. 9 9
      toolchain/gcc/patches/4.2.3/930-eabi_fixes.patch

+ 76 - 44
toolchain/gcc/patches/4.2.3/100-uclibc-conf.patch

@@ -1,6 +1,8 @@
---- gcc/libgomp/configure
-+++ gcc/libgomp/configure
-@@ -3771,7 +3771,7 @@
+Index: gcc-4.2.3/libgomp/configure
+===================================================================
+--- gcc-4.2.3.orig/libgomp/configure	2008-02-01 18:06:50.000000000 +0100
++++ gcc-4.2.3/libgomp/configure	2008-05-21 13:45:41.641289283 +0200
+@@ -3893,7 +3893,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -9,9 +11,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/gcc/config/cris/linux.h
-+++ gcc/gcc/config/cris/linux.h
-@@ -74,7 +74,11 @@
+Index: gcc-4.2.3/gcc/config/cris/linux.h
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/cris/linux.h	2007-09-01 17:28:30.000000000 +0200
++++ gcc-4.2.3/gcc/config/cris/linux.h	2008-05-21 13:45:41.641289283 +0200
+@@ -73,7 +73,11 @@
  #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
  
  #undef CRIS_SUBTARGET_VERSION
@@ -24,9 +28,11 @@
  
  #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
  
---- gcc/libstdc++-v3/configure
-+++ gcc/libstdc++-v3/configure
-@@ -4276,7 +4276,7 @@
+Index: gcc-4.2.3/libstdc++-v3/configure
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/configure	2007-06-29 01:02:05.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/configure	2008-05-21 13:45:41.725287971 +0200
+@@ -4283,7 +4283,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -35,9 +41,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/zlib/configure
-+++ gcc/zlib/configure
-@@ -3422,7 +3422,7 @@
+Index: gcc-4.2.3/zlib/configure
+===================================================================
+--- gcc-4.2.3.orig/zlib/configure	2007-01-17 19:10:26.000000000 +0100
++++ gcc-4.2.3/zlib/configure	2008-05-21 13:45:41.753288186 +0200
+@@ -3429,7 +3429,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -46,9 +54,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libobjc/configure
-+++ gcc/libobjc/configure
-@@ -3309,7 +3309,7 @@
+Index: gcc-4.2.3/libobjc/configure
+===================================================================
+--- gcc-4.2.3.orig/libobjc/configure	2006-10-15 09:42:57.000000000 +0200
++++ gcc-4.2.3/libobjc/configure	2008-05-21 13:45:41.773288499 +0200
+@@ -3314,7 +3314,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -57,9 +67,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libgfortran/configure
-+++ gcc/libgfortran/configure
-@@ -3695,7 +3695,7 @@
+Index: gcc-4.2.3/libgfortran/configure
+===================================================================
+--- gcc-4.2.3.orig/libgfortran/configure	2008-02-01 18:06:49.000000000 +0100
++++ gcc-4.2.3/libgfortran/configure	2008-05-21 13:45:41.789288861 +0200
+@@ -3721,7 +3721,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -68,9 +80,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libmudflap/configure
-+++ gcc/libmudflap/configure
-@@ -5378,7 +5378,7 @@
+Index: gcc-4.2.3/libmudflap/configure
+===================================================================
+--- gcc-4.2.3.orig/libmudflap/configure	2006-12-04 12:13:07.000000000 +0100
++++ gcc-4.2.3/libmudflap/configure	2008-05-21 13:45:41.809288615 +0200
+@@ -5394,7 +5394,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -79,9 +93,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/boehm-gc/configure
-+++ gcc/boehm-gc/configure
-@@ -4316,7 +4316,7 @@
+Index: gcc-4.2.3/boehm-gc/configure
+===================================================================
+--- gcc-4.2.3.orig/boehm-gc/configure	2008-02-01 18:06:49.000000000 +0100
++++ gcc-4.2.3/boehm-gc/configure	2008-05-21 13:45:41.833288320 +0200
+@@ -4323,7 +4323,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -90,9 +106,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libffi/configure
-+++ gcc/libffi/configure
-@@ -3453,7 +3453,7 @@
+Index: gcc-4.2.3/libffi/configure
+===================================================================
+--- gcc-4.2.3.orig/libffi/configure	2008-02-01 18:06:49.000000000 +0100
++++ gcc-4.2.3/libffi/configure	2008-05-21 13:45:41.869288157 +0200
+@@ -3460,7 +3460,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -101,9 +119,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libssp/configure
-+++ gcc/libssp/configure
-@@ -4409,7 +4409,7 @@
+Index: gcc-4.2.3/libssp/configure
+===================================================================
+--- gcc-4.2.3.orig/libssp/configure	2006-10-15 09:42:57.000000000 +0200
++++ gcc-4.2.3/libssp/configure	2008-05-21 13:45:41.897286416 +0200
+@@ -4480,7 +4480,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -112,8 +132,10 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/contrib/regression/objs-gcc.sh
-+++ gcc/contrib/regression/objs-gcc.sh
+Index: gcc-4.2.3/contrib/regression/objs-gcc.sh
+===================================================================
+--- gcc-4.2.3.orig/contrib/regression/objs-gcc.sh	2005-08-15 02:41:31.000000000 +0200
++++ gcc-4.2.3/contrib/regression/objs-gcc.sh	2008-05-21 13:45:41.897286416 +0200
 @@ -105,6 +105,10 @@
   then
    make all-gdb all-dejagnu all-ld || exit 1
@@ -125,8 +147,10 @@
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
---- gcc/libjava/classpath/ltconfig
-+++ gcc/libjava/classpath/ltconfig
+Index: gcc-4.2.3/libjava/classpath/ltconfig
+===================================================================
+--- gcc-4.2.3.orig/libjava/classpath/ltconfig	2006-08-07 22:37:50.000000000 +0200
++++ gcc-4.2.3/libjava/classpath/ltconfig	2008-05-21 13:45:41.897286416 +0200
 @@ -603,7 +603,7 @@
  
  # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
@@ -145,9 +169,11 @@
    version_type=linux
    need_lib_prefix=no
    need_version=no
---- gcc/libjava/classpath/configure
-+++ gcc/libjava/classpath/configure
-@@ -4665,7 +4665,7 @@
+Index: gcc-4.2.3/libjava/classpath/configure
+===================================================================
+--- gcc-4.2.3.orig/libjava/classpath/configure	2007-01-17 19:10:26.000000000 +0100
++++ gcc-4.2.3/libjava/classpath/configure	2008-05-21 13:45:41.921288635 +0200
+@@ -5307,7 +5307,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -156,9 +182,11 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libjava/configure
-+++ gcc/libjava/configure
-@@ -5212,7 +5212,7 @@
+Index: gcc-4.2.3/libjava/configure
+===================================================================
+--- gcc-4.2.3.orig/libjava/configure	2008-02-01 18:06:50.000000000 +0100
++++ gcc-4.2.3/libjava/configure	2008-05-21 13:45:41.933288487 +0200
+@@ -5424,7 +5424,7 @@
    ;;
  
  # This must be Linux ELF.
@@ -167,8 +195,10 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/libtool.m4
-+++ gcc/libtool.m4
+Index: gcc-4.2.3/libtool.m4
+===================================================================
+--- gcc-4.2.3.orig/libtool.m4	2005-07-16 04:30:53.000000000 +0200
++++ gcc-4.2.3/libtool.m4	2008-05-21 13:45:41.949288291 +0200
 @@ -739,7 +739,7 @@
    ;;
  
@@ -178,8 +208,10 @@
    lt_cv_deplibs_check_method=pass_all
    ;;
  
---- gcc/ltconfig
-+++ gcc/ltconfig
+Index: gcc-4.2.3/ltconfig
+===================================================================
+--- gcc-4.2.3.orig/ltconfig	2007-02-14 18:08:35.000000000 +0100
++++ gcc-4.2.3/ltconfig	2008-05-21 13:45:41.961288143 +0200
 @@ -603,7 +603,7 @@
  
  # Transform linux* to *-*-linux-gnu*, to support old configure scripts.

+ 6 - 4
toolchain/gcc/patches/4.2.3/103-uclibc-conf-noupstream.patch

@@ -1,7 +1,9 @@
---- gcc/gcc/config.gcc.uclibc100-sh~	2006-03-06 20:46:56 +0100
-+++ gcc/gcc/config.gcc	2006-03-10 15:02:41 +0100
-@@ -1905,7 +1905,7 @@
- 	;;
+Index: gcc-4.2.3/gcc/config.gcc
+===================================================================
+--- gcc-4.2.3.orig/gcc/config.gcc	2007-12-27 10:45:20.000000000 +0100
++++ gcc-4.2.3/gcc/config.gcc	2008-05-21 13:45:43.333288320 +0200
+@@ -1967,7 +1967,7 @@
+         ;;
  sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
  sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
 -  sh-*-linux* | sh[346lbe]*-*-linux* | \

+ 74 - 42
toolchain/gcc/patches/4.2.3/200-uclibc-locale.patch

@@ -1,6 +1,8 @@
---- gcc/libstdc++-v3/acinclude.m4
-+++ gcc/libstdc++-v3/acinclude.m4
-@@ -1369,7 +1369,7 @@
+Index: gcc-4.2.3/libstdc++-v3/acinclude.m4
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/acinclude.m4	2007-06-29 01:02:05.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/acinclude.m4	2008-05-21 13:45:43.925289703 +0200
+@@ -1334,7 +1334,7 @@
  AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
    GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
      [use MODEL for target locale package],
@@ -9,7 +11,7 @@
  
    # Deal with gettext issues.  Default to not using it (=no) until we detect
    # support for it later.  Let the user turn it off via --e/d, but let that
-@@ -1385,6 +1385,9 @@
+@@ -1355,6 +1355,9 @@
    # Default to "generic".
    if test $enable_clocale_flag = auto; then
      case ${target_os} in
@@ -17,9 +19,9 @@
 +        enable_clocale_flag=uclibc
 +        ;;
        linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
-         AC_EGREP_CPP([_GLIBCXX_ok], [
-         #include <features.h>
-@@ -1528,6 +1531,40 @@
+         enable_clocale_flag=gnu	
+         ;;
+@@ -1526,6 +1529,40 @@
        CTIME_CC=config/locale/generic/time_members.cc
        CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
        ;;
@@ -60,8 +62,10 @@
    esac
  
    # This is where the testsuite looks for locale catalogs, using the
---- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-+++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2008-05-21 13:45:43.925289703 +0200
 @@ -0,0 +1,63 @@
 +// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
 +
@@ -126,8 +130,10 @@
 +#endif 
 +
 +#endif // GLIBC 2.3 and later
---- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.cc	2008-05-21 13:45:43.925289703 +0200
 @@ -0,0 +1,160 @@
 +// Wrapper for underlying C-language localization -*- C++ -*-
 +
@@ -289,8 +295,10 @@
 +{
 +  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
 +}  // namespace std
---- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h
-+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.h	2008-05-21 13:45:43.925289703 +0200
 @@ -0,0 +1,117 @@
 +// Wrapper for underlying C-language localization -*- C++ -*-
 +
@@ -409,8 +417,10 @@
 +}
 +
 +#endif
---- gcc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/codecvt_members.cc	2008-05-21 13:45:43.929287698 +0200
 @@ -0,0 +1,306 @@
 +// std::codecvt implementation details, GNU version -*- C++ -*-
 +
@@ -718,8 +728,10 @@
 +  }
 +#endif
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/collate_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/collate_members.cc	2008-05-21 13:45:43.929287698 +0200
 @@ -0,0 +1,80 @@
 +// std::collate implementation details, GNU version -*- C++ -*-
 +
@@ -801,8 +813,10 @@
 +    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
 +#endif
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2008-05-21 13:45:43.929287698 +0200
 @@ -0,0 +1,300 @@
 +// std::ctype implementation details, GNU version -*- C++ -*-
 +
@@ -1104,8 +1118,10 @@
 +  }
 +#endif //  _GLIBCXX_USE_WCHAR_T
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.cc	2008-05-21 13:45:43.929287698 +0200
 @@ -0,0 +1,100 @@
 +// std::messages implementation details, GNU version -*- C++ -*-
 +
@@ -1207,8 +1223,10 @@
 +    }
 +#endif
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:43.929287698 +0200
 @@ -0,0 +1,118 @@
 +// std::messages implementation details, GNU version -*- C++ -*-
 +
@@ -1328,8 +1346,10 @@
 +	   this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
 +	 }
 +     }
---- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:43.933287929 +0200
 @@ -0,0 +1,692 @@
 +// std::moneypunct implementation details, GNU version -*- C++ -*-
 +
@@ -2023,8 +2043,10 @@
 +    }
 +#endif
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:43.933287929 +0200
 @@ -0,0 +1,160 @@
 +// std::numpunct implementation details, GNU version -*- C++ -*-
 +
@@ -2186,8 +2208,10 @@
 +    { delete _M_data; }
 + #endif
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc
-+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.cc
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.cc	2008-05-21 13:45:43.933287929 +0200
 @@ -0,0 +1,406 @@
 +// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
 +
@@ -2595,8 +2619,10 @@
 +    }
 +#endif
 +}
---- gcc/libstdc++-v3/config/locale/uclibc/time_members.h
-+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.h	2008-05-21 13:45:43.933287929 +0200
 @@ -0,0 +1,68 @@
 +// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
 +
@@ -2666,9 +2692,11 @@
 +      delete _M_data; 
 +      _S_destroy_c_locale(_M_c_locale_timepunct); 
 +    }
---- gcc/libstdc++-v3/configure
-+++ gcc/libstdc++-v3/configure
-@@ -5764,7 +5764,7 @@
+Index: gcc-4.2.3/libstdc++-v3/configure
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/configure	2008-05-21 13:45:41.725287971 +0200
++++ gcc-4.2.3/libstdc++-v3/configure	2008-05-21 13:45:44.017287734 +0200
+@@ -5769,7 +5769,7 @@
    enableval="$enable_clocale"
  
        case "$enableval" in
@@ -2677,7 +2705,7 @@
         *) { { 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; }; } ;;
-@@ -5789,6 +5789,9 @@
+@@ -5802,6 +5802,9 @@
    # Default to "generic".
    if test $enable_clocale_flag = auto; then
      case ${target_os} in
@@ -2685,9 +2713,9 @@
 +        enable_clocale_flag=uclibc
 +	;;
        linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
-         cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6019,6 +6022,76 @@
+         enable_clocale_flag=gnu
+         ;;
+@@ -6190,6 +6193,76 @@
        CTIME_CC=config/locale/generic/time_members.cc
        CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
        ;;
@@ -2764,8 +2792,10 @@
    esac
  
    # This is where the testsuite looks for locale catalogs, using the
---- gcc/libstdc++-v3/include/c_compatibility/wchar.h
-+++ gcc/libstdc++-v3/include/c_compatibility/wchar.h
+Index: gcc-4.2.3/libstdc++-v3/include/c_compatibility/wchar.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/include/c_compatibility/wchar.h	2005-08-17 04:28:44.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/include/c_compatibility/wchar.h	2008-05-21 13:45:44.021288244 +0200
 @@ -101,7 +101,9 @@
  using std::wmemcpy;
  using std::wmemmove;
@@ -2776,8 +2806,10 @@
  
  #if _GLIBCXX_USE_C99
  using std::wcstold;
---- gcc/libstdc++-v3/include/c_std/std_cwchar.h
-+++ gcc/libstdc++-v3/include/c_std/std_cwchar.h
+Index: gcc-4.2.3/libstdc++-v3/include/c_std/std_cwchar.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/include/c_std/std_cwchar.h	2006-12-07 10:33:51.000000000 +0100
++++ gcc-4.2.3/libstdc++-v3/include/c_std/std_cwchar.h	2008-05-21 13:45:44.021288244 +0200
 @@ -182,7 +182,9 @@
    using ::wcscoll;
    using ::wcscpy;

+ 40 - 20
toolchain/gcc/patches/4.2.3/203-uclibc-locale-no__x.patch

@@ -1,5 +1,7 @@
---- gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2008-05-21 13:45:43.925289703 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c++locale_internal.h	2008-05-21 13:45:45.253289024 +0200
 @@ -60,4 +60,49 @@
  extern "C" __typeof(wctype_l) __wctype_l;
  #endif 
@@ -50,8 +52,10 @@
 +# endif
 +
  #endif // GLIBC 2.3 and later
---- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc	2008-05-21 13:45:43.925289703 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.cc	2008-05-21 13:45:45.253289024 +0200
 @@ -39,20 +39,6 @@
  #include <langinfo.h>
  #include <bits/c++locale_internal.h>
@@ -73,8 +77,10 @@
  namespace std 
  {
    template<>
---- gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/collate_members.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/collate_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc	2008-05-21 13:45:43.929287698 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/collate_members.cc	2008-05-21 13:45:45.253289024 +0200
 @@ -36,13 +36,6 @@
  #include <locale>
  #include <bits/c++locale_internal.h>
@@ -89,8 +95,10 @@
  namespace std
  {
    // These are basically extensions to char_traits, and perhaps should
---- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:43.933287929 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:45.257288137 +0200
 @@ -43,10 +43,6 @@
  #warning tailor for stub locale support
  #endif
@@ -102,8 +110,10 @@
  namespace std
  {
    // Construct and return valid pattern consisting of some combination of:
---- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:43.933287929 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:45.257288137 +0200
 @@ -41,9 +41,6 @@
  #ifdef __UCLIBC_MJN3_ONLY__
  #warning tailor for stub locale support
@@ -114,8 +124,10 @@
  
  namespace std
  {
---- gcc/libstdc++-v3/config/locale/uclibc/time_members.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/time_members.cc	2008-05-21 13:45:43.933287929 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.cc	2008-05-21 13:45:45.257288137 +0200
 @@ -40,9 +40,6 @@
  #ifdef __UCLIBC_MJN3_ONLY__
  #warning tailor for stub locale support
@@ -126,8 +138,10 @@
  
  namespace std
  {
---- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2008-05-21 13:45:43.929287698 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2008-05-21 13:45:45.257288137 +0200
 @@ -38,13 +38,6 @@
  #undef _LIBC
  #include <bits/c++locale_internal.h>
@@ -142,8 +156,10 @@
  namespace std
  {
    // NB: The other ctype<char> specializations are in src/locale.cc and
---- gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.cc	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc	2008-05-21 13:45:43.929287698 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.cc	2008-05-21 13:45:45.257288137 +0200
 @@ -39,13 +39,10 @@
  #ifdef __UCLIBC_MJN3_ONLY__
  #warning fix gettext stuff
@@ -160,8 +176,10 @@
  #define gettext(msgid) (msgid)
  #endif
  
---- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:43.929287698 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:45.257288137 +0200
 @@ -36,15 +36,11 @@
  #ifdef __UCLIBC_MJN3_ONLY__
  #warning fix prototypes for *textdomain funcs
@@ -201,8 +219,10 @@
        return 0;
      }
  
---- gcc/libstdc++-v3/config/locale/uclibc/c_locale.h.uclibc200no__x~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.h	2006-03-10 15:32:37 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/c_locale.h	2008-05-21 13:45:43.925289703 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.h	2008-05-21 13:45:45.257288137 +0200
 @@ -68,6 +68,7 @@
  {
    extern "C" __typeof(uselocale) __uselocale;

+ 8 - 4
toolchain/gcc/patches/4.2.3/204-uclibc-locale-wchar_fix.patch

@@ -1,5 +1,7 @@
---- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_wchar~	2006-03-10 15:32:37 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2006-03-10 15:37:27 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:45.257288137 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:46.105290284 +0200
 @@ -401,7 +401,7 @@
  # ifdef __UCLIBC_HAS_XLOCALE__
  	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
@@ -18,8 +20,10 @@
  	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
  	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
  # endif
---- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_wchar~	2006-03-10 15:32:37 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2006-03-10 15:37:27 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:45.257288137 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:46.105290284 +0200
 @@ -127,12 +127,25 @@
  	{
  	  // Named locale.

+ 32 - 18
toolchain/gcc/patches/4.2.3/205-uclibc-locale-update.patch

@@ -1,6 +1,8 @@
---- gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc.uclibc200_update~	2006-03-10 15:32:37 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/c_locale.cc	2006-03-10 15:39:14 +0100
-@@ -46,16 +47,13 @@
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc	2008-05-21 13:45:45.253289024 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.cc	2008-05-21 13:45:46.729290157 +0200
+@@ -46,16 +46,13 @@
      __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 
  		   const __c_locale& __cloc)
      {
@@ -24,7 +26,7 @@
      }
  
    template<>
-@@ -63,16 +61,13 @@
+@@ -63,16 +60,13 @@
      __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 
  		   const __c_locale& __cloc)
      {
@@ -48,7 +50,7 @@
      }
  
    template<>
-@@ -80,16 +75,13 @@
+@@ -80,16 +74,13 @@
      __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
  		   const __c_locale& __cloc)
      {
@@ -72,7 +74,7 @@
      }
  
    void
-@@ -110,7 +102,7 @@
+@@ -110,7 +101,7 @@
    void
    locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
    {
@@ -81,8 +83,10 @@
        __freelocale(__cloc); 
    }
  
---- gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc.uclibc200_update~	2006-03-10 15:32:37 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2006-03-10 15:39:14 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2008-05-21 13:45:45.257288137 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/ctype_members.cc	2008-05-21 13:45:46.729290157 +0200
 @@ -33,9 +33,14 @@
  
  // Written by Benjamin Kosnik <[email protected]>
@@ -144,8 +148,10 @@
    const wchar_t* 
    ctype<wchar_t>::
    do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
---- gcc/libstdc++-v3/config/locale/uclibc/messages_members.h.uclibc200_update~	2006-03-10 15:32:37 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/messages_members.h	2006-03-10 15:39:14 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:45.257288137 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:46.729290157 +0200
 @@ -47,18 +47,21 @@
    template<typename _CharT>
       messages<_CharT>::messages(size_t __refs)
@@ -173,8 +179,10 @@
       }
  
    template<typename _CharT>
---- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_update~	2006-03-10 15:37:27 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2006-03-10 15:39:14 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:46.105290284 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/monetary_members.cc	2008-05-21 13:45:46.729290157 +0200
 @@ -33,9 +33,14 @@
  
  // Written by Benjamin Kosnik <[email protected]>
@@ -199,8 +207,10 @@
        }
      return __ret;
    }
---- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_update~	2006-03-10 15:37:27 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2006-03-10 15:39:14 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:46.105290284 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/numeric_members.cc	2008-05-21 13:45:46.733288711 +0200
 @@ -33,9 +33,14 @@
  
  // Written by Benjamin Kosnik <[email protected]>
@@ -216,8 +226,10 @@
  #include <bits/c++locale_internal.h>
  
  #ifdef __UCLIBC_MJN3_ONLY__
---- gcc/libstdc++-v3/config/locale/uclibc/time_members.h.uclibc200_update~	2006-03-10 15:06:17 +0100
-+++ gcc/libstdc++-v3/config/locale/uclibc/time_members.h	2006-03-10 15:39:14 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/time_members.h	2008-05-21 13:45:43.933287929 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.h	2008-05-21 13:45:46.733288711 +0200
 @@ -37,25 +37,33 @@
    template<typename _CharT>
      __timepunct<_CharT>::__timepunct(size_t __refs) 
@@ -258,8 +270,10 @@
      }
  
    template<typename _CharT>
---- gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h.old	2006-09-28 11:39:00.000000000 +0200
-+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/c_locale.h	2006-09-28 12:10:41.000000000 +0200
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/c_locale.h	2008-05-21 13:45:45.257288137 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/c_locale.h	2008-05-21 13:45:46.733288711 +0200
 @@ -39,21 +39,23 @@
  #pragma GCC system_header
  

+ 13 - 9
toolchain/gcc/patches/4.2.3/300-libstdc++-pic.patch

@@ -1,9 +1,11 @@
 # 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 $@
+Index: gcc-4.2.3/libstdc++-v3/src/Makefile.am
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/src/Makefile.am	2006-07-28 06:57:34.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/src/Makefile.am	2008-05-21 13:45:47.465287535 +0200
+@@ -257,6 +257,12 @@
+ 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
  
  
 +install-exec-local:
@@ -15,9 +17,11 @@
  # 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 @@
+Index: gcc-4.2.3/libstdc++-v3/src/Makefile.in
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/src/Makefile.in	2006-10-16 21:08:22.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/src/Makefile.in	2008-05-21 13:45:47.465287535 +0200
+@@ -657,7 +657,7 @@
  
  install-data-am: install-data-local
  
@@ -26,7 +30,7 @@
  
  install-info: install-info-am
  
-@@ -660,6 +660,7 @@
+@@ -690,6 +690,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 \
@@ -34,7 +38,7 @@
  	install-exec-am install-info install-info-am install-man \
  	install-strip install-toolexeclibLTLIBRARIES installcheck \
  	installcheck-am installdirs maintainer-clean \
-@@ -743,6 +743,13 @@
+@@ -799,6 +800,13 @@
  install_debug:
  	(cd ${debugdir} && $(MAKE) \
  	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)

+ 6 - 4
toolchain/gcc/patches/4.2.3/301-missing-execinfo_h.patch

@@ -1,7 +1,9 @@
---- 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__
+Index: gcc-4.2.3/boehm-gc/include/gc.h
+===================================================================
+--- gcc-4.2.3.orig/boehm-gc/include/gc.h	2006-09-18 20:45:08.000000000 +0200
++++ gcc-4.2.3/boehm-gc/include/gc.h	2008-05-21 13:45:48.073288722 +0200
+@@ -502,7 +502,7 @@
+ #if defined(__linux__) || defined(__GLIBC__)
  # include <features.h>
  # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
 -     && !defined(__ia64__)

+ 7 - 5
toolchain/gcc/patches/4.2.3/302-c99-snprintf.patch

@@ -1,8 +1,10 @@
---- 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;
- }
+Index: gcc-4.2.3/libstdc++-v3/include/c_std/std_cstdio.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/include/c_std/std_cstdio.h	2006-12-07 10:33:51.000000000 +0100
++++ gcc-4.2.3/libstdc++-v3/include/c_std/std_cstdio.h	2008-05-21 13:45:48.645288116 +0200
+@@ -144,7 +144,7 @@
+ 
+ _GLIBCXX_END_NAMESPACE
  
 -#if _GLIBCXX_USE_C99
 +#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)

+ 5 - 3
toolchain/gcc/patches/4.2.3/303-c99-complex-ugly-hack.patch

@@ -1,6 +1,8 @@
---- 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 @@
+Index: gcc-4.2.3/libstdc++-v3/configure
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/configure	2008-05-21 13:45:44.017287734 +0200
++++ gcc-4.2.3/libstdc++-v3/configure	2008-05-21 13:45:49.305288105 +0200
+@@ -7514,6 +7514,9 @@
  cat >>conftest.$ac_ext <<_ACEOF
  /* end confdefs.h.  */
  #include <complex.h>

+ 11 - 7
toolchain/gcc/patches/4.2.3/304-index_macro.patch

@@ -1,6 +1,8 @@
---- 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 @@
+Index: gcc-4.2.3/libstdc++-v3/include/ext/rope
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/include/ext/rope	2006-10-17 13:56:21.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/include/ext/rope	2008-05-21 13:45:50.017288293 +0200
+@@ -58,6 +58,9 @@
  #include <bits/allocator.h>
  #include <ext/hash_fun.h>
  
@@ -10,9 +12,11 @@
  # 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 @@
+Index: gcc-4.2.3/libstdc++-v3/include/ext/ropeimpl.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/include/ext/ropeimpl.h	2006-10-17 13:56:21.000000000 +0200
++++ gcc-4.2.3/libstdc++-v3/include/ext/ropeimpl.h	2008-05-21 13:45:50.017288293 +0200
+@@ -54,6 +54,9 @@
  #include <ext/memory> // For uninitialized_copy_n
  #include <ext/numeric> // For power
  
@@ -20,5 +24,5 @@
 +#undef index
 +
  _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-
+ 
    using std::size_t;

+ 3 - 3
toolchain/gcc/patches/4.2.3/305-libmudflap-susv3-legacy.patch

@@ -1,7 +1,7 @@
-Index: gcc-4.2/libmudflap/mf-hooks2.c
+Index: gcc-4.2.3/libmudflap/mf-hooks2.c
 ===================================================================
---- gcc-4.2/libmudflap/mf-hooks2.c	(revision 119834)
-+++ gcc-4.2/libmudflap/mf-hooks2.c	(working copy)
+--- gcc-4.2.3.orig/libmudflap/mf-hooks2.c	2005-09-23 23:58:39.000000000 +0200
++++ gcc-4.2.3/libmudflap/mf-hooks2.c	2008-05-21 13:45:50.653288577 +0200
 @@ -427,7 +427,7 @@
  {
    TRACE ("%s\n", __PRETTY_FUNCTION__);

+ 8 - 6
toolchain/gcc/patches/4.2.3/306-libstdc++-namespace.patch

@@ -1,6 +1,7 @@
-diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h
---- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h	2006-12-22 13:06:56.000000000 +0100
-+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/messages_members.h	2006-12-22 15:23:41.000000000 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:46.729290157 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/messages_members.h	2008-05-21 13:45:51.249287676 +0200
 @@ -32,7 +32,8 @@
  //
  
@@ -16,9 +17,10 @@ diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-
  	 }
       }
 +}
-diff -rup gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h
---- gcc-4.2.orig/libstdc++-v3/config/locale/uclibc/time_members.h	2006-12-22 13:06:56.000000000 +0100
-+++ gcc-4.2/libstdc++-v3/config/locale/uclibc/time_members.h	2006-12-22 15:20:31.000000000 +0100
+Index: gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.h
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/config/locale/uclibc/time_members.h	2008-05-21 13:45:46.733288711 +0200
++++ gcc-4.2.3/libstdc++-v3/config/locale/uclibc/time_members.h	2008-05-21 13:45:51.249287676 +0200
 @@ -33,7 +33,8 @@
  //
  

+ 6 - 4
toolchain/gcc/patches/4.2.3/307-locale_facets.patch

@@ -4,9 +4,11 @@ std::snprintf function, that, on uClibc, doens't handle sized 0 buffer.
 
 Signed-off-by: Carmelo Amoroso <[email protected]>
 
---- gcc-4.2.1/libstdc++-v3/include/bits/locale_facets.tcc	2006-10-17 18:43:47.000000000 +0200
-+++ gcc-4.2.1-st/libstdc++-v3/include/bits/locale_facets.tcc	2007-08-22 18:54:23.000000000 +0200
-@@ -1143,7 +1143,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
+Index: gcc-4.2.3/libstdc++-v3/include/bits/locale_facets.tcc
+===================================================================
+--- gcc-4.2.3.orig/libstdc++-v3/include/bits/locale_facets.tcc	2008-01-05 12:04:43.000000000 +0100
++++ gcc-4.2.3/libstdc++-v3/include/bits/locale_facets.tcc	2008-05-21 13:45:51.877288338 +0200
+@@ -1145,7 +1145,7 @@
  	const int __cs_size = __fixed ? __max_exp + __prec + 4
  	                              : __max_digits * 2 + __prec;
  	char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
@@ -15,7 +17,7 @@ Signed-off-by: Carmelo Amoroso <[email protected]>
  				      __prec, __v);
  #endif
  
-@@ -1777,7 +1777,7 @@ _GLIBCXX_BEGIN_LDBL_NAMESPACE
+@@ -1779,7 +1779,7 @@
        // max_exponent10 + 1 for the integer part, + 2 for sign and '\0'.
        const int __cs_size = numeric_limits<long double>::max_exponent10 + 3;
        char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));

+ 4 - 4
toolchain/gcc/patches/4.2.3/402-libbackend_dep_gcov-iov.h.patch

@@ -1,8 +1,8 @@
-Index: gcc-4.2/gcc/Makefile.in
+Index: gcc-4.2.3/gcc/Makefile.in
 ===================================================================
---- gcc-4.2/gcc/Makefile.in	(revision 121758)
-+++ gcc-4.2/gcc/Makefile.in	(working copy)
-@@ -2658,7 +2658,7 @@ mips-tdump.o : mips-tdump.c $(CONFIG_H) 
+--- gcc-4.2.3.orig/gcc/Makefile.in	2007-10-31 17:32:06.000000000 +0100
++++ gcc-4.2.3/gcc/Makefile.in	2008-05-21 13:45:52.537289723 +0200
+@@ -2660,7 +2660,7 @@
  # FIXME: writing proper dependencies for this is a *LOT* of work.
  libbackend.o : $(OBJS-common:.o=.c) $(out_file) \
    insn-config.h insn-flags.h insn-codes.h insn-constants.h \

+ 11 - 7
toolchain/gcc/patches/4.2.3/800-arm-bigendian.patch

@@ -3,9 +3,11 @@ Adds support for arm*b-linux* big-endian ARM targets
 
 See http://gcc.gnu.org/PR16350
 
---- gcc-4.2.0/gcc/config/arm/linux-elf.h
-+++ gcc-4.2.0/gcc/config/arm/linux-elf.h
-@@ -28,19 +28,33 @@
+Index: gcc-4.2.3/gcc/config/arm/linux-elf.h
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/arm/linux-elf.h	2007-09-01 17:28:30.000000000 +0200
++++ gcc-4.2.3/gcc/config/arm/linux-elf.h	2008-05-21 13:45:53.349289241 +0200
+@@ -27,19 +27,33 @@
  #undef  TARGET_VERSION
  #define TARGET_VERSION  fputs (" (ARM GNU/Linux with ELF)", stderr);
  
@@ -42,7 +44,7 @@ See http://gcc.gnu.org/PR16350
  
  /* Now we define the strings used to build the spec file.  */
  #undef  LIB_SPEC
-@@ -61,7 +75,7 @@
+@@ -60,7 +74,7 @@
     %{rdynamic:-export-dynamic} \
     %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
     -X \
@@ -51,9 +53,11 @@ See http://gcc.gnu.org/PR16350
     SUBTARGET_EXTRA_LINK_SPEC
  
  #undef  LINK_SPEC
---- gcc-4.2.0/gcc/config.gcc.orig	2006-09-22 14:53:41.000000000 +0200
-+++ gcc-4.2.0/gcc/config.gcc	2006-09-25 10:45:21.000000000 +0200
-@@ -696,6 +696,11 @@
+Index: gcc-4.2.3/gcc/config.gcc
+===================================================================
+--- gcc-4.2.3.orig/gcc/config.gcc	2008-05-21 13:45:43.333288320 +0200
++++ gcc-4.2.3/gcc/config.gcc	2008-05-21 13:45:53.353287795 +0200
+@@ -708,6 +708,11 @@
  	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
  	tmake_file="${tmake_file} t-linux arm/t-arm"
  	case ${target} in

Разница между файлами не показана из-за своего большого размера
+ 259 - 205
toolchain/gcc/patches/4.2.3/900-avr32_support.patch


+ 6 - 6
toolchain/gcc/patches/4.2.3/901-avr32_add_mno-pic.patch

@@ -1,7 +1,7 @@
-Index: gcc/gcc/config/avr32/avr32.opt
+Index: gcc-4.2.3/gcc/config/avr32/avr32.opt
 ===================================================================
---- gcc/gcc/config/avr32/avr32.opt	(revision 31583)
-+++ gcc/gcc/config/avr32/avr32.opt	(working copy)
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.opt	2008-05-21 13:45:54.165287871 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.opt	2008-05-21 13:45:57.194288771 +0200
 @@ -71,3 +71,6 @@
  Target Report Var(avr32_imm_in_const_pool) Init(-1)
  Put large immediates in constant pool. This is enabled by default for archs with insn-cache.
@@ -9,10 +9,10 @@ Index: gcc/gcc/config/avr32/avr32.opt
 +mno-pic
 +Target Report RejectNegative Mask(NO_PIC)
 +Do not generate position-independent code.
-Index: gcc/gcc/config/avr32/avr32.c
+Index: gcc-4.2.3/gcc/config/avr32/avr32.c
 ===================================================================
---- gcc/gcc/config/avr32/avr32.c	(revision 31583)
-+++ gcc/gcc/config/avr32/avr32.c	(working copy)
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:54.145288116 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:45:57.202289511 +0200
 @@ -230,6 +230,9 @@
            avr32_imm_in_const_pool = 0;
        }

+ 3 - 3
toolchain/gcc/patches/4.2.3/902-avr32_fix_pic_redefinition_warning.patch

@@ -1,7 +1,7 @@
-Index: gcc/gcc/config/avr32/linux-elf.h
+Index: gcc-4.2.3/gcc/config/avr32/linux-elf.h
 ===================================================================
---- gcc/gcc/config/avr32/linux-elf.h	(revision 31583)
-+++ gcc/gcc/config/avr32/linux-elf.h	(working copy)
+--- gcc-4.2.3.orig/gcc/config/avr32/linux-elf.h	2008-05-21 13:45:54.173288052 +0200
++++ gcc-4.2.3/gcc/config/avr32/linux-elf.h	2008-05-21 13:45:57.862288662 +0200
 @@ -122,11 +122,6 @@
  	builtin_define ("__AVR32_HAS_BRANCH_PRED__");		\
        if (TARGET_FAST_FLOAT)                                    \

+ 5 - 3
toolchain/gcc/patches/4.2.3/903-avr32_fix_expanding_builtin_xchg.patch

@@ -1,6 +1,8 @@
---- gcc-4.2.1.orig/gcc/config/avr32/avr32.c	2007-10-05 07:52:51.000000000 +0200
-+++ gcc-4.2.1/gcc/config/avr32/avr32.c	2007-10-05 07:54:49.000000000 +0200
-@@ -1388,7 +1388,8 @@ avr32_expand_builtin (tree exp,
+Index: gcc-4.2.3/gcc/config/avr32/avr32.c
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:57.202289511 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:45:58.533289214 +0200
+@@ -1388,7 +1388,8 @@
            op1 = copy_to_mode_reg (mode1, op1);
          }
  

+ 5 - 84
toolchain/gcc/patches/4.2.3/904-flatten-switch-stmt-00.patch

@@ -47,11 +47,11 @@ $ size switch-*.o
 Content-Type: text/x-diff; charset=us-ascii
 Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
 
-Index: gcc-4.2.0/gcc/stmt.c
+Index: gcc-4.2.3/gcc/stmt.c
 ===================================================================
---- gcc-4.2.0.orig/gcc/stmt.c	(revision 123843)
-+++ gcc-4.2.0/gcc/stmt.c	(working copy)
-@@ -2517,7 +2517,11 @@ expand_case (tree exp)
+--- gcc-4.2.3.orig/gcc/stmt.c	2007-09-01 17:28:30.000000000 +0200
++++ gcc-4.2.3/gcc/stmt.c	2008-05-21 13:45:59.137288494 +0200
+@@ -2511,7 +2511,11 @@
  	  use_cost_table
  	    = (TREE_CODE (orig_type) != ENUMERAL_TYPE
  	       && estimate_case_costs (case_list));
@@ -64,7 +64,7 @@ Index: gcc-4.2.0/gcc/stmt.c
  	  emit_case_nodes (index, case_list, default_label, index_type);
  	  emit_jump (default_label);
  	}
-@@ -3075,6 +3079,7 @@ emit_case_nodes (rtx index, case_node_pt
+@@ -3069,6 +3073,7 @@
  	    {
  	      if (!node_has_low_bound (node, index_type))
  		{
@@ -72,82 +72,3 @@ Index: gcc-4.2.0/gcc/stmt.c
  		  emit_cmp_and_jump_insns (index,
  					   convert_modes
  					   (mode, imode,
-
-
-Content-Type: text/x-csrc; charset=us-ascii
-Content-Disposition: attachment; filename="switch.c"
-
-int
-commutative_tree_code (int code)
-{
-#define CASE(val, ret) case val:/* __asm__("# val="#val ",ret="#ret);*/ return ret;
-#ifndef CHAIN
-  switch (code)
-    {
-# if 1
-  CASE(1,3)
-  CASE(3,2)
-  CASE(5,8)
-  CASE(7,1)
-  CASE(33,4)
-  CASE(44,9)
-  CASE(55,10)
-  CASE(66,-1)
-  CASE(77,99)
-  CASE(666,0)
-# else
-    case 1:
-      return 3;
-    case 3:
-      return 2;
-    case 5:
-      return 8;
-    case 7:
-      return 1;
-    case 33:
-      return 4;
-    case 44:
-      return 9;
-    case 55:
-      return 10;
-    case 66:
-      return -1;
-    case 77:
-      return 99;
-    case 666:
-      return 0;
-# endif
-    default:
-      break;
-    }
-  return 4711;
-
-#else
-   if (code == 1)
-	return 3;
-  else if (code == 3)
-	return 2;
-  else if (code == 5)
-	return 8;
-  else if (code == 7)
-	return 1;
-  else if (code == 33)
-	return 4;
-  else if (code == 44)
-	return 9;
-  else if (code == 55)
-	return 10;
-  else if (code == 66)
-	return -1;
-  else if (code == 77)
-	return 99;
-  else if (code == 666)
-	return 0;
-  else
-	return 4711;
-#endif
-}
-
-
---AhhlLboLdkugWU4S--
-

+ 8 - 10
toolchain/gcc/patches/4.2.3/905-avr32_fix_folding_machine_reorg_optimizations.patch

@@ -1,8 +1,8 @@
-Index: a/gcc/config/avr32/avr32.c
+Index: gcc-4.2.3/gcc/config/avr32/avr32.c
 ===================================================================
---- a/gcc/config/avr32/avr32.c	(revision 31997)
-+++ b/gcc/config/avr32/avr32.c	(working copy)
-@@ -6323,25 +6323,26 @@
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:58.533289214 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:45:59.762288215 +0200
+@@ -6323,23 +6323,24 @@
                  /* If used any other place than as a pointer or as the
  	         destination register we failed */
                  if (!(single_set (scan)
@@ -35,14 +35,12 @@ Index: a/gcc/config/avr32/avr32.c
 +                         && REG_P (SET_DEST (PATTERN (scan)))
 +                         && !regno_use_in (REGNO (reg),
 +                                           SET_SRC (PATTERN (scan)))))
-                   break;
- 
++                  break;
++
 +                /* We cannot replace the pointer in TImode insns
 +                   as these has a differene addressing mode than the other
 +                   memory insns. */
 +                if ( GET_MODE (SET_DEST (PATTERN (scan))) == TImode )
-+                  break;
-+
+                   break;
+ 
                  /* Check if register is dead or set in this insn */
-                 if (dead_or_set_p (scan, reg))
-                   {

+ 3 - 3
toolchain/gcc/patches/4.2.3/906-avr32_use_rjmp_instead_of_got_when_jumping.patch

@@ -1,7 +1,7 @@
-Index: a/gcc/config/avr32/avr32.c
+Index: gcc-4.2.3/gcc/config/avr32/avr32.c
 ===================================================================
---- a/gcc/config/avr32/avr32.c	(revision 32101)
-+++ b/gcc/config/avr32/avr32.c	(working copy)
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:59.762288215 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:46:00.342290304 +0200
 @@ -695,8 +695,7 @@
  
  

+ 5 - 4
toolchain/gcc/patches/4.2.3/908-avr32_fix_invalid_assembler_code_on_64bit_hosts.patch

@@ -1,7 +1,8 @@
-diff -Nrup gcc-4.2.1/gcc/config/avr32/avr32.c gcc-4.2.1-new/gcc/config/avr32/avr32.c
---- gcc-4.2.1/gcc/config/avr32/avr32.c  2007-11-15 18:20:25.000000000 +0100
-+++ gcc-4.2.1-new/gcc/config/avr32/avr32.c      2007-11-16 13:34:39.000000000 +0100
-@@ -705,8 +705,8 @@ avr32_output_mi_thunk (FILE * file,
+Index: gcc-4.2.3/gcc/config/avr32/avr32.c
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:46:00.342290304 +0200
++++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:46:00.930288105 +0200
+@@ -705,8 +705,8 @@
        {
          if (avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21"))
            {

+ 37 - 37
toolchain/gcc/patches/4.2.3/910-mbsd_multi.patch

@@ -17,11 +17,11 @@
 	This patch was authored by Thorsten Glaser <[email protected]>
 	with copyright assignment to the FSF in effect.
 
-Index: gcc-4.2.0/gcc/c-opts.c
+Index: gcc-4.2.3/gcc/c-opts.c
 ===================================================================
---- gcc-4.2.0.orig/gcc/c-opts.c	2007-07-31 02:27:12.007256629 +0200
-+++ gcc-4.2.0/gcc/c-opts.c	2007-07-31 02:27:39.324813371 +0200
-@@ -107,6 +107,9 @@
+--- gcc-4.2.3.orig/gcc/c-opts.c	2008-01-27 19:36:59.000000000 +0100
++++ gcc-4.2.3/gcc/c-opts.c	2008-05-21 13:46:01.550289703 +0200
+@@ -106,6 +106,9 @@
  /* Number of deferred options scanned for -include.  */
  static size_t include_cursor;
  
@@ -31,7 +31,7 @@ Index: gcc-4.2.0/gcc/c-opts.c
  static void set_Wimplicit (int);
  static void handle_OPT_d (const char *);
  static void set_std_cxx98 (int);
-@@ -449,6 +452,14 @@
+@@ -450,6 +453,14 @@
        mesg_implicit_function_declaration = 2;
        break;
  
@@ -46,7 +46,7 @@ Index: gcc-4.2.0/gcc/c-opts.c
      case OPT_Wformat:
        set_Wformat (value);
        break;
-@@ -691,6 +702,12 @@
+@@ -692,6 +703,12 @@
        flag_exceptions = value;
        break;
  
@@ -59,7 +59,7 @@ Index: gcc-4.2.0/gcc/c-opts.c
      case OPT_fimplement_inlines:
        flag_implement_inlines = value;
        break;
-@@ -1151,6 +1168,47 @@
+@@ -1157,6 +1174,47 @@
    /* Has to wait until now so that cpplib has its hash table.  */
    init_pragma ();
  
@@ -107,11 +107,11 @@ Index: gcc-4.2.0/gcc/c-opts.c
    return true;
  }
  
-Index: gcc-4.2.0/gcc/c.opt
+Index: gcc-4.2.3/gcc/c.opt
 ===================================================================
---- gcc-4.2.0.orig/gcc/c.opt	2007-07-31 02:27:12.015257093 +0200
-+++ gcc-4.2.0/gcc/c.opt	2007-07-31 02:27:39.328813597 +0200
-@@ -189,6 +189,10 @@
+--- gcc-4.2.3.orig/gcc/c.opt	2007-09-01 17:28:30.000000000 +0200
++++ gcc-4.2.3/gcc/c.opt	2008-05-21 13:46:01.550289703 +0200
+@@ -188,6 +188,10 @@
  C ObjC RejectNegative
  Make implicit function declarations an error
  
@@ -122,7 +122,7 @@ Index: gcc-4.2.0/gcc/c.opt
  Wfloat-equal
  C ObjC C++ ObjC++ Var(warn_float_equal)
  Warn if testing floating point numbers for equality
-@@ -544,6 +548,9 @@
+@@ -543,6 +547,9 @@
  fhonor-std
  C++ ObjC++
  
@@ -132,11 +132,11 @@ Index: gcc-4.2.0/gcc/c.opt
  fhosted
  C ObjC
  Assume normal C execution environment
-Index: gcc-4.2.0/gcc/common.opt
+Index: gcc-4.2.3/gcc/common.opt
 ===================================================================
---- gcc-4.2.0.orig/gcc/common.opt	2007-07-31 02:27:12.023257546 +0200
-+++ gcc-4.2.0/gcc/common.opt	2007-07-31 02:27:39.360815422 +0200
-@@ -81,6 +81,10 @@
+--- gcc-4.2.3.orig/gcc/common.opt	2008-01-27 19:36:59.000000000 +0100
++++ gcc-4.2.3/gcc/common.opt	2008-05-21 13:46:01.550289703 +0200
+@@ -80,6 +80,10 @@
  Common Joined
  Treat specified warning as error
  
@@ -147,7 +147,7 @@ Index: gcc-4.2.0/gcc/common.opt
  Wextra
  Common
  Print extra (possibly unwanted) warnings
-@@ -481,6 +485,9 @@
+@@ -480,6 +484,9 @@
  Common Report Var(flag_guess_branch_prob)
  Enable guessing of branch probabilities
  
@@ -157,11 +157,11 @@ Index: gcc-4.2.0/gcc/common.opt
  ; Nonzero means ignore `#ident' directives.  0 means handle them.
  ; Generate position-independent code for executables if possible
  ; On SVR4 targets, it also controls whether or not to emit a
-Index: gcc-4.2.0/gcc/opts.c
+Index: gcc-4.2.3/gcc/opts.c
 ===================================================================
---- gcc-4.2.0.orig/gcc/opts.c	2007-07-31 02:27:12.031257991 +0200
-+++ gcc-4.2.0/gcc/opts.c	2007-07-31 02:28:36.320061346 +0200
-@@ -492,9 +492,6 @@
+--- gcc-4.2.3.orig/gcc/opts.c	2008-01-27 19:36:59.000000000 +0100
++++ gcc-4.2.3/gcc/opts.c	2008-05-21 13:46:01.562288718 +0200
+@@ -483,9 +483,6 @@
        flag_schedule_insns_after_reload = 1;
  #endif
        flag_regmove = 1;
@@ -171,7 +171,7 @@ Index: gcc-4.2.0/gcc/opts.c
        flag_reorder_blocks = 1;
        flag_reorder_functions = 1;
        flag_tree_store_ccp = 1;
-@@ -510,6 +507,10 @@
+@@ -501,6 +498,10 @@
  
    if (optimize >= 3)
      {
@@ -182,7 +182,7 @@ Index: gcc-4.2.0/gcc/opts.c
        flag_inline_functions = 1;
        flag_unswitch_loops = 1;
        flag_gcse_after_reload = 1;
-@@ -711,6 +712,17 @@
+@@ -702,6 +703,17 @@
        }
        break;
  
@@ -200,10 +200,10 @@ Index: gcc-4.2.0/gcc/opts.c
      case OPT_Wextra:
        set_Wextra (value);
        break;
-Index: gcc-4.2.0/gcc/doc/cppopts.texi
+Index: gcc-4.2.3/gcc/doc/cppopts.texi
 ===================================================================
---- gcc-4.2.0.orig/gcc/doc/cppopts.texi	2007-07-31 02:27:12.039258455 +0200
-+++ gcc-4.2.0/gcc/doc/cppopts.texi	2007-07-31 02:27:39.408818157 +0200
+--- gcc-4.2.3.orig/gcc/doc/cppopts.texi	2006-08-16 22:36:23.000000000 +0200
++++ gcc-4.2.3/gcc/doc/cppopts.texi	2008-05-21 13:46:01.570286943 +0200
 @@ -166,6 +166,11 @@
  Make all warnings into hard errors.  Source code which triggers warnings
  will be rejected.
@@ -216,10 +216,10 @@ Index: gcc-4.2.0/gcc/doc/cppopts.texi
  @item -Wsystem-headers
  @opindex Wsystem-headers
  Issue warnings for code in system headers.  These are normally unhelpful
-Index: gcc-4.2.0/gcc/doc/invoke.texi
+Index: gcc-4.2.3/gcc/doc/invoke.texi
 ===================================================================
---- gcc-4.2.0.orig/gcc/doc/invoke.texi	2007-07-31 02:27:12.047258920 +0200
-+++ gcc-4.2.0/gcc/doc/invoke.texi	2007-07-31 02:29:13.218164047 +0200
+--- gcc-4.2.3.orig/gcc/doc/invoke.texi	2008-05-21 13:45:54.274288067 +0200
++++ gcc-4.2.3/gcc/doc/invoke.texi	2008-05-21 13:46:01.582288192 +0200
 @@ -226,7 +226,7 @@
  -Wc++-compat -Wcast-align  -Wcast-qual  -Wchar-subscripts  -Wcomment @gol
  -Wconversion  -Wno-deprecated-declarations @gol
@@ -229,7 +229,7 @@ Index: gcc-4.2.0/gcc/doc/invoke.texi
  -Wfatal-errors  -Wfloat-equal  -Wformat  -Wformat=2 @gol
  -Wno-format-extra-args -Wformat-nonliteral @gol
  -Wformat-security  -Wformat-y2k @gol
-@@ -3569,6 +3569,22 @@
+@@ -3566,6 +3566,22 @@
  @option{-W}@var{foo}.  However, @option{-Wno-error=}@var{foo} does not
  imply anything.
  
@@ -252,7 +252,7 @@ Index: gcc-4.2.0/gcc/doc/invoke.texi
  @item -Wstack-protector
  @opindex Wstack-protector
  This option is only active when @option{-fstack-protector} is active.  It
-@@ -4901,7 +4917,7 @@
+@@ -4893,7 +4909,7 @@
  second branch or a point immediately following it, depending on whether
  the condition is known to be true or false.
  
@@ -261,7 +261,7 @@ Index: gcc-4.2.0/gcc/doc/invoke.texi
  
  @item -fcse-follow-jumps
  @opindex fcse-follow-jumps
-@@ -5019,7 +5035,7 @@
+@@ -5011,7 +5027,7 @@
  @option{-fno-delete-null-pointer-checks} to disable this optimization
  for programs which depend on that behavior.
  
@@ -270,7 +270,7 @@ Index: gcc-4.2.0/gcc/doc/invoke.texi
  
  @item -fexpensive-optimizations
  @opindex fexpensive-optimizations
-@@ -5437,7 +5453,7 @@
+@@ -5460,7 +5476,7 @@
  allowed to alias.  For an example, see the C front-end function
  @code{c_get_alias_set}.
  
@@ -279,11 +279,11 @@ Index: gcc-4.2.0/gcc/doc/invoke.texi
  
  @item -fstrict-overflow
  @opindex fstrict-overflow
-Index: gcc-4.2.0/gcc/java/jvspec.c
+Index: gcc-4.2.3/gcc/java/jvspec.c
 ===================================================================
---- gcc-4.2.0.orig/gcc/java/jvspec.c	2007-07-31 02:27:12.055259364 +0200
-+++ gcc-4.2.0/gcc/java/jvspec.c	2007-07-31 02:27:39.484822490 +0200
-@@ -632,6 +632,7 @@
+--- gcc-4.2.3.orig/gcc/java/jvspec.c	2007-08-31 10:27:50.000000000 +0200
++++ gcc-4.2.3/gcc/java/jvspec.c	2008-05-21 13:46:01.582288192 +0200
+@@ -631,6 +631,7 @@
       class name.  Append dummy `.c' that can be stripped by set_input so %b
       is correct.  */ 
    set_input (concat (main_class_name, "main.c", NULL));

+ 17 - 14
toolchain/gcc/patches/4.2.3/910-soft-float.patch

@@ -1,5 +1,20 @@
---- gcc-4.2-20061205/gcc/config/arm/t-linux    2006-12-08 15:18:33.000000000 -0800
-+++ gcc-4.2-20061205/gcc/config/arm/t-linux    2006-12-08 15:18:33.000000000 -0800
+Index: gcc-4.2.3/gcc/config/arm/linux-elf.h
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/arm/linux-elf.h	2008-05-21 13:45:53.349289241 +0200
++++ gcc-4.2.3/gcc/config/arm/linux-elf.h	2008-05-21 13:46:02.426288993 +0200
+@@ -62,7 +62,7 @@
+    %{shared:-lc} \
+    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+ 
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+ 
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+ 
+Index: gcc-4.2.3/gcc/config/arm/t-linux
+===================================================================
+--- gcc-4.2.3.orig/gcc/config/arm/t-linux	2004-05-15 14:41:35.000000000 +0200
++++ gcc-4.2.3/gcc/config/arm/t-linux	2008-05-21 13:46:02.426288993 +0200
 @@ -4,7 +4,10 @@
  LIBGCC2_DEBUG_CFLAGS = -g0
  
@@ -12,15 +27,3 @@
  
  # MULTILIB_OPTIONS = mhard-float/msoft-float
  # MULTILIB_DIRNAMES = hard-float soft-float
-
---- gcc-4.2-20061205/gcc/config/arm/linux-elf.h        2006-12-08 15:18:33.000000000 -0800
-+++ gcc-4.2-20061205/gcc/config/arm/linux-elf.h        2006-12-08 15:18:33.000000000 -0800
-@@ -63,7 +63,7 @@
-    %{shared:-lc} \
-    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
- 
--#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
-+#define LIBGCC_SPEC "-lgcc"
- 
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
- 

+ 9 - 9
toolchain/gcc/patches/4.2.3/930-eabi_fixes.patch

@@ -1,8 +1,8 @@
-Index: gcc-4.2.0/gcc/config.gcc
+Index: gcc-4.2.3/gcc/config.gcc
 ===================================================================
---- gcc-4.2.0.orig/gcc/config.gcc	2008-02-13 00:19:06.507477329 +0100
-+++ gcc-4.2.0/gcc/config.gcc	2008-02-13 00:19:42.239640606 +0100
-@@ -701,7 +701,7 @@
+--- gcc-4.2.3.orig/gcc/config.gcc	2008-05-21 13:45:54.181287953 +0200
++++ gcc-4.2.3/gcc/config.gcc	2008-05-21 13:46:03.094289162 +0200
+@@ -704,7 +704,7 @@
  	extra_parts=""
  	use_collect2=yes
  	;;
@@ -11,7 +11,7 @@ Index: gcc-4.2.0/gcc/config.gcc
  	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
  	tmake_file="${tmake_file} t-linux arm/t-arm"
  	case ${target} in
-@@ -710,7 +710,7 @@
+@@ -713,7 +713,7 @@
  		;;
  	esac
  	case ${target} in
@@ -20,11 +20,11 @@ Index: gcc-4.2.0/gcc/config.gcc
  	    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
-Index: gcc-4.2.0/gcc/config/arm/linux-eabi.h
+Index: gcc-4.2.3/gcc/config/arm/linux-eabi.h
 ===================================================================
---- gcc-4.2.0.orig/gcc/config/arm/linux-eabi.h	2008-02-13 00:18:31.343062422 +0100
-+++ gcc-4.2.0/gcc/config/arm/linux-eabi.h	2008-02-13 00:19:11.825120518 +0100
-@@ -48,7 +48,8 @@
+--- gcc-4.2.3.orig/gcc/config/arm/linux-eabi.h	2007-09-01 17:28:30.000000000 +0200
++++ gcc-4.2.3/gcc/config/arm/linux-eabi.h	2008-05-21 13:46:03.094289162 +0200
+@@ -47,7 +47,8 @@
  #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
  
  #undef SUBTARGET_EXTRA_LINK_SPEC

Некоторые файлы не были показаны из-за большого количества измененных файлов