[oe] [meta-oe][toolchain-layer][PATCH] Remove toolchain-layer

Mike Looijmans mike.looijmans at topic.nl
Thu Oct 8 05:39:20 UTC 2015


Just including the toolchain-layer in a bblayers.conf results in:
  ERROR: ExpansionError during parsing .../meta-oe/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: SRCREV was used yet no valid SCM was found in SRC_URI

Since there is no maintainer, remove it from meta-openembedded.

Signed-off-by: Mike Looijmans <mike.looijmans at topic.nl>
---
 toolchain-layer/COPYING.MIT                        |   17 -
 toolchain-layer/README                             |   15 -
 toolchain-layer/conf/layer.conf                    |   30 -
 .../files/canadian-build-modules-configure.patch   |   22 -
 .../gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch      |   12 -
 .../gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch      |   13 -
 .../gcc/files/gcc-posix-open-fix.patch             |   11 -
 .../gcc/files/gcc4-mtune-compat.patch              |   14 -
 .../gcc/files/gfortran-4.3.x.patch                 |   40 -
 .../recipes-devtools/gcc/files/gfortran.patch      |   40 -
 .../gcc/files/pr22133-mingw-path-fixup.patch       |   29 -
 .../gcc/files/pr33281-mingw-host-fragment.patch    |   38 -
 ...35916-mingw-__USE_MINGW_ACCESS-everywhere.patch |   13 -
 toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc   |  119 -
 .../gcc/gcc-4.6/100-uclibc-conf.patch              |   39 -
 .../gcc/gcc-4.6/103-uclibc-conf-noupstream.patch   |   17 -
 .../gcc/gcc-4.6/200-uclibc-locale.patch            | 2842 --------------------
 .../gcc/gcc-4.6/203-uclibc-locale-no__x.patch      |  235 --
 .../gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch  |   54 -
 .../gcc/gcc-4.6/205-uclibc-locale-update.patch     |  521 ----
 .../gcc/gcc-4.6/301-missing-execinfo_h.patch       |   15 -
 .../gcc/gcc-4.6/302-c99-snprintf.patch             |   15 -
 .../gcc/gcc-4.6/303-c99-complex-ugly-hack.patch    |   16 -
 .../gcc/gcc-4.6/304-index_macro.patch              |   30 -
 .../gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch  |   51 -
 .../gcc/gcc-4.6/306-libstdc++-namespace.patch      |   40 -
 .../recipes-devtools/gcc/gcc-4.6/64bithack.patch   |   68 -
 .../gcc/gcc-4.6/740-sh-pr24836.patch               |   31 -
 .../gcc/gcc-4.6/800-arm-bigendian.patch            |   36 -
 .../gcc/gcc-4.6/904-flatten-switch-stmt-00.patch   |   76 -
 .../gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch          |   25 -
 .../GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch       |  186 --
 .../gcc/gcc-4.6/arm-nolibfloat.patch               |   26 -
 .../gcc/gcc-4.6/arm-softfloat.patch                |   18 -
 .../gcc/gcc-4.6/cache-amnesia.patch                |   33 -
 .../gcc/gcc-4.6/cpp-honour-sysroot.patch           |   40 -
 .../gcc/gcc-4.6/disable_relax_pic_calls_flag.patch |   48 -
 .../gcc/gcc-4.6/fix-for-ice-50099.patch            |   49 -
 .../gcc/gcc-4.6/fortran-cross-compile-hack.patch   |   32 -
 .../gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch  |   33 -
 .../gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch      |  116 -
 .../gcc/gcc-4.6/gcc-argument-list-too-long.patch   |   33 -
 .../gcc/gcc-4.6/gcc-arm-set-cost.patch             |   35 -
 .../gcc/gcc-4.6/gcc-flags-for-build.patch          |  189 --
 .../gcc/gcc-4.6/gcc-poison-dir-extend.patch        |   27 -
 .../gcc-4.6/gcc-poison-system-directories.patch    |  223 --
 .../gcc-uclibc-locale-ctype_touplow_t.patch        |   72 -
 .../gcc/gcc-4.6/gcc-with-linker-hash-style.patch   |  196 --
 .../gcc/gcc-4.6/mips64-default-n64.patch           |   32 -
 .../gcc/gcc-4.6/optional_libstdc.patch             |   86 -
 .../gcc/gcc-4.6/powerpc-e5500.patch                |  465 ----
 .../recipes-devtools/gcc/gcc-4.6/pr32219.patch     |   72 -
 .../recipes-devtools/gcc/gcc-4.6/pr46934.patch     |  393 ---
 .../recipes-devtools/gcc/gcc-4.6/pr47551.patch     |   64 -
 .../gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch |   80 -
 .../gcc/gcc-4.6/zecke-xgcc-cpp.patch               |   30 -
 .../recipes-devtools/gcc/gcc-common-4.6.inc        |    4 -
 .../recipes-devtools/gcc/gcc-cross-canadian_4.6.bb |    4 -
 .../recipes-devtools/gcc/gcc-cross-initial_4.6.bb  |    2 -
 .../recipes-devtools/gcc/gcc-cross_4.6.bb          |    2 -
 .../gcc/gcc-crosssdk-initial_4.6.bb                |    2 -
 .../recipes-devtools/gcc/gcc-crosssdk_4.6.bb       |    2 -
 .../recipes-devtools/gcc/gcc-runtime_4.6.bb        |    2 -
 toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb    |    2 -
 toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb |   71 -
 65 files changed, 7193 deletions(-)
 delete mode 100644 toolchain-layer/COPYING.MIT
 delete mode 100644 toolchain-layer/README
 delete mode 100644 toolchain-layer/conf/layer.conf
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/gfortran.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb
 delete mode 100644 toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb

diff --git a/toolchain-layer/COPYING.MIT b/toolchain-layer/COPYING.MIT
deleted file mode 100644
index fb950dc..0000000
--- a/toolchain-layer/COPYING.MIT
+++ /dev/null
@@ -1,17 +0,0 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy 
-of this software and associated documentation files (the "Software"), to deal 
-in the Software without restriction, including without limitation the rights 
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
-copies of the Software, and to permit persons to whom the Software is 
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in 
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
-THE SOFTWARE.
diff --git a/toolchain-layer/README b/toolchain-layer/README
deleted file mode 100644
index 7af26ec..0000000
--- a/toolchain-layer/README
+++ /dev/null
@@ -1,15 +0,0 @@
-This layer depends on:
-
-URI: git://github.com/openembedded/oe-core.git
-branch: master
-revision: HEAD
-
-Send pull requests to openembedded-devel at lists.openembedded.org with '[meta-oe][toolchain-layer]' in the subject'
-
-When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel at lists.openembedded.org --subject-prefix=meta-oe][toolchain-layer][PATCH'
-
-You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
-
-Main layer maintainer: Koen Kooi <koen at dominion.thruhere.net>
-
diff --git a/toolchain-layer/conf/layer.conf b/toolchain-layer/conf/layer.conf
deleted file mode 100644
index b377f12..0000000
--- a/toolchain-layer/conf/layer.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-# It really depends on order of the layers appearing in BBLAYERS
-# variable in toplevel bblayers.conf file, where bitbake will search
-# for .inc files and others where bitbake uses BBPATH since it will
-# search the directories from first to last as specified in BBPATH
-# Therefore if you want a given layer to be considered high priority
-# for the .inc and .conf etc. then consider it adding at the beginning
-# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve
-# the recipe contention so the order of directories in BBFILES does 
-# not matter.
-
-# We have a conf directory, append to BBPATH
-BBPATH .= ":${LAYERDIR}"
-
-# We have a recipes directory, add to BBFILES
-BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
-
-BBFILE_COLLECTIONS += "toolchain-layer"
-BBFILE_PATTERN_toolchain-layer := "^${LAYERDIR}/"
-
-# Define the priority for recipes (.bb files) from this layer,
-# choosing carefully how this layer interacts with all of the
-# other layers.
-
-BBFILE_PRIORITY_toolchain-layer = "6"
-
-# This should only be incremented on significant changes that will
-# cause compatibility issues with other layers
-LAYERVERSION_toolchain-layer = "1"
-
-LAYERDEPENDS_toolchain-layer = "core"
diff --git a/toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch b/toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch
deleted file mode 100644
index 8aede10..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/canadian-build-modules-configure.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -urN gcc-4.2.2-orig/gcc/configure gcc-4.2.2/gcc/configure
---- gcc-4.2.2-orig/gcc/configure	2008-08-31 23:10:56.000000000 +0200
-+++ gcc-4.2.2/gcc/configure	2008-08-31 23:03:02.000000000 +0200
-@@ -12716,6 +12716,7 @@
- 	esac
- 	saved_CFLAGS="${CFLAGS}"
- 	CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
-+	CPP="${CPP_FOR_BUILD}" CPPFLAGS="${CPPFLAGS_FOR_BUILD}" \
- 	CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
- 		--enable-languages=${enable_languages-all} \
- 		--target=$target_alias --host=$build_alias --build=$build_alias
-diff -urN gcc-4.2.2-orig/gcc/configure.ac gcc-4.2.2/gcc/configure.ac
---- gcc-4.2.2-orig/gcc/configure.ac	2008-08-31 23:10:53.000000000 +0200
-+++ gcc-4.2.2/gcc/configure.ac	2008-08-31 23:03:29.000000000 +0200
-@@ -1490,6 +1490,7 @@
- 	esac
- 	saved_CFLAGS="${CFLAGS}"
- 	CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
-+	CPP="${CPP_FOR_BUILD}" CPPFLAGS="${CPPFLAGS_FOR_BUILD}" \
- 	${realsrcdir}/configure \
- 		--enable-languages=${enable_languages-all} \
- 		--target=$target_alias --host=$build_alias --build=$build_alias
diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch
deleted file mode 100644
index 8a2a4c4..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.3-fix-EXTRA_BUILD.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: gcc-4.3.3/Makefile.in
-===================================================================
---- gcc-4.3.3.orig/Makefile.in	2010-06-16 18:04:38.379008150 +0400
-+++ gcc-4.3.3/Makefile.in	2010-06-16 18:05:29.115006261 +0400
-@@ -148,6 +148,7 @@
- # built for the build system to override those in BASE_FLAGS_TO_PASSS.
- EXTRA_BUILD_FLAGS = \
- 	CFLAGS="$(CFLAGS_FOR_BUILD)" \
-+	LIBCFLAGS="$(CFLAGS_FOR_BUILD)" \
- 	LDFLAGS="$(LDFLAGS_FOR_BUILD)"
- 
- # This is the list of directories to built for the host system.
diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch
deleted file mode 100644
index b375336..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/gcc-4.3.x-fix-EXTRA_BUILD.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: gcc-4.3.1/Makefile.in
-===================================================================
---- gcc-4.3.1.orig/Makefile.in	2010-07-07 13:08:44.000000000 +0200
-+++ gcc-4.3.1/Makefile.in	2010-07-07 13:11:59.246625709 +0200
-@@ -149,7 +149,7 @@
- EXTRA_BUILD_FLAGS = \
- 	CFLAGS="$(CFLAGS_FOR_BUILD)" \
- 	LDFLAGS="$(LDFLAGS_FOR_BUILD)" \
--	LIBCFLAGS=""
-+        LIBCFLAGS="$(CFLAGS_FOR_BUILD)"
- 
- # This is the list of directories to built for the host system.
- SUBDIRS = @configdirs@
diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch
deleted file mode 100644
index 99f813e..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/gcc-posix-open-fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- gcc-3.4.6/gcc/collect2.c	2008-10-04 18:17:17.796750393 +0400
-+++ gcc-3.4.6/gcc/collect2.new	2008-10-04 18:24:10.120748711 +0400
-@@ -1534,7 +1534,7 @@ collect_execute (const char *prog, char 
-   if (redir)
-     {
-       /* Open response file.  */
--      redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT);
-+      redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, S_IWUSR);
- 
-       /* Duplicate the stdout and stderr file handles
- 	 so they can be restored later.  */
diff --git a/toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch b/toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch
deleted file mode 100644
index 0da2811..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/gcc4-mtune-compat.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Patch for gcc3 to support gcc4-compatible (and consistent) values for -mtune= option.
-
---- gcc-3.4.4/gcc/config/arm/arm.c.org	2007-12-15 23:58:35.000000000 +0200
-+++ gcc-3.4.4/gcc/config/arm/arm.c	2007-12-16 00:20:39.000000000 +0200
-@@ -432,7 +432,9 @@
-   {"arm10tdmi",	                         FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED             | FL_ARCH5 },
-   {"arm1020t",	                         FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED             | FL_ARCH5 },
-   {"arm926ejs",                          FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB                          | FL_ARCH5 | FL_ARCH5E },
-+  {"arm926ej-s",                         FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB                          | FL_ARCH5 | FL_ARCH5E },
-   {"arm1026ejs",                         FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB                          | FL_ARCH5 | FL_ARCH5E },
-+  {"arm1026ej-s",                        FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB                          | FL_ARCH5 | FL_ARCH5E },
-   {"xscale",                             FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE },
-   {"iwmmxt",                             FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED | FL_STRONG | FL_ARCH5 | FL_ARCH5E | FL_XSCALE | FL_IWMMXT },
-   /* V6 Architecture Processors */
diff --git a/toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch b/toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch
deleted file mode 100644
index 0c42851..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/gfortran-4.3.x.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-The patch below fixes a crash building libgfortran on arm-linux-gnueabi.
-
-This target doesn't really have a 128-bit integer type, however it does use 
-TImode to represent the return value of certain special ABI defined library 
-functions. This results in type_for_size(TImode) being called.
-
-Because TImode deosn't correspond to any gfortran integer kind 
-gfc_type_for_size returns NULL and we segfault shortly after.
-
-The patch below fixes this by making gfc_type_for_size handle TImode in the 
-same way as the C frontend.
-
-Tested on x86_64-linux and arm-linux-gnueabi.
-Applied to trunk.
-
-Paul
-
-2007-05-15  Paul Brook  <paul at codesourcery.com>
-
-	gcc/fortran/
-	* trans-types.c (gfc_type_for_size): Handle signed TImode.
-
-Index: gcc-4.2.1/gcc/fortran/trans-types.c
-===================================================================
---- gcc-4.2.1/gcc/fortran/trans-types.c	(revision 170435)
-+++ gcc-4.2.1/gcc/fortran/trans-types.c	(working copy)
-@@ -1800,6 +1800,13 @@ gfc_type_for_size (unsigned bits, int un
- 	  if (type && bits == TYPE_PRECISION (type))
- 	    return type;
- 	}
-+
-+      /* Handle TImode as a special case because it is used by some backends
-+         (eg. ARM) even though it is not available for normal use.  */
-+#if HOST_BITS_PER_WIDE_INT >= 65
-+      if (bits == TYPE_PRECISION (intTI_type_node))
-+	return intTI_type_node;
-+#endif
-     }
-   else
-     {
diff --git a/toolchain-layer/recipes-devtools/gcc/files/gfortran.patch b/toolchain-layer/recipes-devtools/gcc/files/gfortran.patch
deleted file mode 100644
index 96905e5..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/gfortran.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-The patch below fixes a crash building libgfortran on arm-linux-gnueabi.
-
-This target doesn't really have a 128-bit integer type, however it does use 
-TImode to represent the return value of certain special ABI defined library 
-functions. This results in type_for_size(TImode) being called.
-
-Because TImode deosn't correspond to any gfortran integer kind 
-gfc_type_for_size returns NULL and we segfault shortly after.
-
-The patch below fixes this by making gfc_type_for_size handle TImode in the 
-same way as the C frontend.
-
-Tested on x86_64-linux and arm-linux-gnueabi.
-Applied to trunk.
-
-Paul
-
-2007-05-15  Paul Brook  <paul at codesourcery.com>
-
-	gcc/fortran/
-	* trans-types.c (gfc_type_for_size): Handle signed TImode.
-
-Index: gcc-4.2.1/gcc/fortran/trans-types.c
-===================================================================
---- gcc-4.2.1/gcc/fortran/trans-types.c	(revision 170435)
-+++ gcc-4.2.1/gcc/fortran/trans-types.c	(working copy)
-@@ -1800,6 +1800,13 @@ gfc_type_for_size (unsigned bits, int un
- 	  if (type && bits == TYPE_PRECISION (type))
- 	    return type;
- 	}
-+
-+      /* Handle TImode as a special case because it is used by some backends
-+         (eg. ARM) even though it is not available for normal use.  */
-+#if HOST_BITS_PER_WIDE_INT >= 64
-+      if (bits == TYPE_PRECISION (intTI_type_node))
-+	return intTI_type_node;
-+#endif
-     }
-   else
-     {
diff --git a/toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch b/toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch
deleted file mode 100644
index 429e9ff..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/pr22133-mingw-path-fixup.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -rupN gcc-4.2.orig/gcc/c-incpath.c gcc-4.2/gcc/c-incpath.c
---- gcc-4.2.orig/gcc/c-incpath.c	2007-09-01 11:28:30.000000000 -0400
-+++ gcc-4.2/gcc/c-incpath.c	2008-08-17 16:56:01.000000000 -0400
-@@ -340,13 +340,18 @@ add_path (char *path, int chain, int cxx
-   cpp_dir *p;
- 
- #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
--  /* Convert all backslashes to slashes.  The native CRT stat()
--     function does not recognize a directory that ends in a backslash
--     (unless it is a drive root dir, such "c:\").  Forward slashes,
--     trailing or otherwise, cause no problems for stat().  */
--  char* c;
--  for (c = path; *c; c++)
--    if (*c == '\\') *c = '/';
-+  /* Remove unnecessary trailing slashes.  On some versions of MS
-+     Windows, trailing  _forward_ slashes cause no problems for stat().
-+     On newer versions, stat() does not recognise a directory that ends
-+     in a '\\' or '/', unless it is a drive root dir, such as "c:/",
-+     where it is obligatory.  */
-+  int pathlen = strlen (path);
-+  char* end = path + pathlen - 1;
-+  /* Preserve the lead '/' or lead "c:/".  */
-+  char* start = path + (pathlen > 2 && path[1] == ':' ? 3 : 1);
-+  
-+  for (; end > start && IS_DIR_SEPARATOR (*end); end--)
-+    *end = 0;
- #endif
- 
-   p = XNEW (cpp_dir);
diff --git a/toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch b/toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch
deleted file mode 100644
index e16fb44..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/pr33281-mingw-host-fragment.patch
+++ /dev/null
@@ -1,38 +0,0 @@
----
- config/mh-mingw |    3 +++
- configure       |    1 +
- configure.in    |    1 +
- 3 files changed, 5 insertions(+)
-
-Index: gcc-4.2.3/config/mh-mingw
-===================================================================
---- /dev/null
-+++ gcc-4.2.3/config/mh-mingw
-@@ -0,0 +1,3 @@
-+# Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows
-+# Vista (see PR33281 for details).
-+BOOT_CFLAGS += -D__USE_MINGW_ACCESS
-Index: gcc-4.2.3/configure.in
-===================================================================
---- gcc-4.2.3.orig/configure.in
-+++ gcc-4.2.3/configure.in
-@@ -929,6 +929,7 @@ case "${host}" in
-     host_makefile_frag="config/mh-cygwin"
-     ;;
-   *-mingw32*)
-+    host_makefile_frag="config/mh-mingw"
-     ;;
-   *-interix*)
-     host_makefile_frag="config/mh-interix"
-Index: gcc-4.2.3/configure
-===================================================================
---- gcc-4.2.3.orig/configure
-+++ gcc-4.2.3/configure
-@@ -1769,6 +1769,7 @@ case "${host}" in
-     host_makefile_frag="config/mh-cygwin"
-     ;;
-   *-mingw32*)
-+    host_makefile_frag="config/mh-mingw"
-     ;;
-   *-interix*)
-     host_makefile_frag="config/mh-interix"
diff --git a/toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch b/toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch
deleted file mode 100644
index faf44c2..0000000
--- a/toolchain-layer/recipes-devtools/gcc/files/pr35916-mingw-__USE_MINGW_ACCESS-everywhere.patch
+++ /dev/null
@@ -1,13 +0,0 @@
----
- config/mh-mingw |    1 +
- 1 file changed, 1 insertion(+)
-
-Index: gcc-4.2.3/config/mh-mingw
-===================================================================
---- gcc-4.2.3.orig/config/mh-mingw
-+++ gcc-4.2.3/config/mh-mingw
-@@ -1,3 +1,4 @@
- # Add -D__USE_MINGW_ACCESS to enable the built compiler to work on Windows
- # Vista (see PR33281 for details).
- BOOT_CFLAGS += -D__USE_MINGW_ACCESS
-+CFLAGS += -D__USE_MINGW_ACCESS
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc b/toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc
deleted file mode 100644
index 83e9a9f..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6.inc
+++ /dev/null
@@ -1,119 +0,0 @@
-require recipes-devtools/gcc/gcc-common.inc
-
-PR = "r27"
-
-# Third digit in PV should be incremented after a minor release
-# happens from this branch on gcc e.g. currently its 4.6.0
-# when 4.6.1 is releases and we bump SRCREV beyond the release
-# on branch then PV should be incremented to 4.6.1+svnr${SRCPV}
-# to reflect that change
-
-PV = "4.6.3+svnr${SRCPV}"
-
-# BINV should be incremented after updating to a revision
-# after a minor gcc release (e.g. 4.6.1 or 4.6.2) has been made
-# the value will be minor-release+1 e.g. if current minor release was
-# 4.6.1 then the value below will have 2 which will mean 4.6.2
-# which will be next minor release and so on.
-
-BINV = "4.6.4"
-
-SRCREV = "184847"
-BRANCH = "gcc-4_6-branch"
-FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-4.6' ], d)}"
-
-DEPENDS =+ "mpfr gmp libmpc"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native"
-
-LICENSE="GPL-3.0-with-GCC-exception & GPLv3"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
-    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
-    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-    file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8"
-
-SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};protocol=http \
-    file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
-    file://100-uclibc-conf.patch \
-    file://gcc-uclibc-locale-ctype_touplow_t.patch \
-    file://cache-amnesia.patch \
-    file://gcc-flags-for-build.patch \
-    file://103-uclibc-conf-noupstream.patch  \
-    file://200-uclibc-locale.patch  \
-    file://203-uclibc-locale-no__x.patch; \
-    file://204-uclibc-locale-wchar_fix.patch; \
-    file://205-uclibc-locale-update.patch; \
-    file://301-missing-execinfo_h.patch  \
-    file://302-c99-snprintf.patch  \
-    file://303-c99-complex-ugly-hack.patch  \
-    file://304-index_macro.patch  \
-    file://305-libmudflap-susv3-legacy.patch  \
-    file://306-libstdc++-namespace.patch  \
-    file://740-sh-pr24836.patch  \
-    file://800-arm-bigendian.patch  \
-    file://904-flatten-switch-stmt-00.patch  \
-    file://arm-nolibfloat.patch  \
-    file://arm-softfloat.patch \
-    file://zecke-xgcc-cpp.patch \
-    file://gcc-poison-system-directories.patch \
-    file://gcc-poison-dir-extend.patch \
-    file://gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
-    file://64bithack.patch \
-    file://optional_libstdc.patch \
-    file://disable_relax_pic_calls_flag.patch \
-    file://COLLECT_GCC_OPTIONS.patch \
-    file://use-defaults.h-and-t-oe-in-B.patch \
-    file://powerpc-e5500.patch \
-    file://fix-for-ice-50099.patch \
-    file://gcc-with-linker-hash-style.patch \
-    file://pr46934.patch \
-    file://pr32219.patch \
-    file://pr47551.patch \
-    file://gcc-arm-set-cost.patch \
-    file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
-    file://fortran-cross-compile-hack.patch \
-    file://cpp-honour-sysroot.patch \
-    file://mips64-default-n64.patch \
-    file://gcc-argument-list-too-long.patch \
-"
-
-SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch "
-
-#S = "${WORKDIR}/${BRANCH}"
-S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${BRANCH}"
-B = "${WORKDIR}/${BRANCH}/build.${HOST_SYS}.${TARGET_SYS}"
-
-# Language Overrides
-FORTRAN = ""
-JAVA = ""
-
-EXTRA_OECONF_BASE = " --enable-lto \
-    --enable-libssp \
-    --disable-bootstrap \
-    --disable-libgomp \
-    --disable-libmudflap \
-    --with-system-zlib \
-    --with-linker-hash-style=${LINKER_HASH_STYLE} \
-    --with-ppl=no \
-    --with-cloog=no \
-    --enable-cheaders=c_global "
-
-EXTRA_OECONF_INITIAL = "--disable-libmudflap \
-    --disable-libgomp \
-    --disable-libssp \
-    --disable-libquadmath \
-    --with-system-zlib \
-    --disable-lto \
-    --disable-plugin \
-    --enable-decimal-float=no"
-
-EXTRA_OECONF_INTERMEDIATE = "--disable-libmudflap \
-    --disable-libgomp \
-    --disable-libquadmath \
-    --with-system-zlib \
-    --disable-lto \
-    --disable-plugin \
-    --disable-libssp"
-
-EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch
deleted file mode 100644
index b2981e0..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/100-uclibc-conf.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/contrib/regression/objs-gcc.sh
-===================================================================
---- gcc-4.6.0.orig/contrib/regression/objs-gcc.sh
-+++ gcc-4.6.0/contrib/regression/objs-gcc.sh
-@@ -106,6 +106,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
-Index: gcc-4.6.0/libjava/classpath/ltconfig
-===================================================================
---- gcc-4.6.0.orig/libjava/classpath/ltconfig
-+++ gcc-4.6.0/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1247,7 +1247,7 @@ linux-gnuoldld* | linux-gnuaout* | linux
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch
deleted file mode 100644
index 22c6580..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/103-uclibc-conf-noupstream.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-Corrects sub machine arch corectly
-
-Index: gcc-4.6.0/gcc/config.gcc
-===================================================================
---- gcc-4.6.0.orig/gcc/config.gcc
-+++ gcc-4.6.0/gcc/config.gcc
-@@ -2316,7 +2316,7 @@ score-*-elf)
-         ;;
- sh-*-elf* | sh[12346l]*-*-elf* | \
- sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
--  sh-*-linux* | sh[2346lbe]*-*-linux* | \
-+  sh*-*-linux* | sh[2346lbe]*-*-linux* | \
-   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
-    sh64-*-netbsd* | sh64l*-*-netbsd*)
- 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch
deleted file mode 100644
index b8ea78d..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/200-uclibc-locale.patch
+++ /dev/null
@@ -1,2842 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/acinclude.m4
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/acinclude.m4
-+++ gcc-4.6.0/libstdc++-v3/acinclude.m4
-@@ -1753,7 +1753,7 @@ dnl
- AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
-   GLIBCXX_ENABLE(clocale,auto,[[[=MODEL]]],
-     [use MODEL for target locale package],
--    [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
-+    [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
- 
-   # 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
-@@ -1774,6 +1774,9 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-+      *-uclibc*)
-+        enable_clocale_flag=uclibc
-+        ;;
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
- 	enable_clocale_flag=gnu
- 	;;
-@@ -1915,6 +1918,40 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
-       CTIME_CC=config/locale/generic/time_members.cc
-       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-       ;;
-+    uclibc)
-+      AC_MSG_RESULT(uclibc)
-+
-+      # Declare intention to use gettext, and add support for specific
-+      # languages.
-+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+      ALL_LINGUAS="de fr"
-+
-+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
-+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+        USE_NLS=yes
-+      fi
-+      # Export the build objects.
-+      for ling in $ALL_LINGUAS; do \
-+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+      done
-+      AC_SUBST(glibcxx_MOFILES)
-+      AC_SUBST(glibcxx_POFILES)
-+
-+      CLOCALE_H=config/locale/uclibc/c_locale.h
-+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+      CMESSAGES_H=config/locale/uclibc/messages_members.h
-+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+      CTIME_H=config/locale/uclibc/time_members.h
-+      CTIME_CC=config/locale/uclibc/time_members.cc
-+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+      ;;
-   esac
- 
-   # This is where the testsuite looks for locale catalogs, using the
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-@@ -0,0 +1,63 @@
-+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
-+
-+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+// Written by Jakub Jelinek <jakub at redhat.com>
-+
-+#include <bits/c++config.h>
-+#include <clocale>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning clean this up
-+#endif
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+
-+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
-+extern "C" __typeof(strcoll_l) __strcoll_l;
-+extern "C" __typeof(strftime_l) __strftime_l;
-+extern "C" __typeof(strtod_l) __strtod_l;
-+extern "C" __typeof(strtof_l) __strtof_l;
-+extern "C" __typeof(strtold_l) __strtold_l;
-+extern "C" __typeof(strxfrm_l) __strxfrm_l;
-+extern "C" __typeof(newlocale) __newlocale;
-+extern "C" __typeof(freelocale) __freelocale;
-+extern "C" __typeof(duplocale) __duplocale;
-+extern "C" __typeof(uselocale) __uselocale;
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+extern "C" __typeof(iswctype_l) __iswctype_l;
-+extern "C" __typeof(towlower_l) __towlower_l;
-+extern "C" __typeof(towupper_l) __towupper_l;
-+extern "C" __typeof(wcscoll_l) __wcscoll_l;
-+extern "C" __typeof(wcsftime_l) __wcsftime_l;
-+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
-+extern "C" __typeof(wctype_l) __wctype_l;
-+#endif
-+
-+#endif // GLIBC 2.3 and later
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
-@@ -0,0 +1,160 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8  Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#include <cerrno>  // For errno
-+#include <locale>
-+#include <stdexcept>
-+#include <langinfo.h>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
-+#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
-+#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
-+#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
-+#define __strtof_l(S, E, L)         strtof((S), (E))
-+#define __strtod_l(S, E, L)         strtod((S), (E))
-+#define __strtold_l(S, E, L)        strtold((S), (E))
-+#warning should dummy __newlocale check for C|POSIX ?
-+#define __newlocale(a, b, c)        NULL
-+#define __freelocale(a)             ((void)0)
-+#define __duplocale(a)              __c_locale()
-+#endif
-+
-+namespace std
-+{
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
-+		   const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+	{
-+	  char* __sanity;
-+	  errno = 0;
-+	  float __f = __strtof_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+	    __v = __f;
-+	  else
-+	    __err |= ios_base::failbit;
-+	}
-+    }
-+
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
-+		   const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+	{
-+	  char* __sanity;
-+	  errno = 0;
-+	  double __d = __strtod_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+	    __v = __d;
-+	  else
-+	    __err |= ios_base::failbit;
-+	}
-+    }
-+
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
-+		   const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+	{
-+	  char* __sanity;
-+	  errno = 0;
-+	  long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+	    __v = __ld;
-+	  else
-+	    __err |= ios_base::failbit;
-+	}
-+    }
-+
-+  void
-+  locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
-+				    __c_locale __old)
-+  {
-+    __cloc = __newlocale(1 << LC_ALL, __s, __old);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    if (!__cloc)
-+      {
-+	// This named locale is not supported by the underlying OS.
-+	__throw_runtime_error(__N("locale::facet::_S_create_c_locale "
-+			      "name not valid"));
-+      }
-+#endif
-+  }
-+
-+  void
-+  locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-+  {
-+    if (_S_get_c_locale() != __cloc)
-+      __freelocale(__cloc);
-+  }
-+
-+  __c_locale
-+  locale::facet::_S_clone_c_locale(__c_locale& __cloc)
-+  { return __duplocale(__cloc); }
-+} // namespace std
-+
-+namespace __gnu_cxx
-+{
-+  const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
-+    {
-+      "LC_CTYPE",
-+      "LC_NUMERIC",
-+      "LC_TIME",
-+      "LC_COLLATE",
-+      "LC_MONETARY",
-+      "LC_MESSAGES",
-+#if _GLIBCXX_NUM_CATEGORIES != 0
-+      "LC_PAPER",
-+      "LC_NAME",
-+      "LC_ADDRESS",
-+      "LC_TELEPHONE",
-+      "LC_MEASUREMENT",
-+      "LC_IDENTIFICATION"
-+#endif
-+    };
-+}
-+
-+namespace std
-+{
-+  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-+}  // namespace std
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h
-@@ -0,0 +1,117 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8  Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#ifndef _C_LOCALE_H
-+#define _C_LOCALE_H 1
-+
-+#pragma GCC system_header
-+
-+#include <cstring>              // get std::strlen
-+#include <cstdio>               // get std::snprintf or std::sprintf
-+#include <clocale>
-+#include <langinfo.h>		// For codecvt
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC_HAS_LOCALE__
-+#include <iconv.h>		// For codecvt using iconv, iconv_t
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#include <libintl.h> 		// For messages
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning what is _GLIBCXX_C_LOCALE_GNU for
-+#endif
-+#define _GLIBCXX_C_LOCALE_GNU 1
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix categories
-+#endif
-+// #define _GLIBCXX_NUM_CATEGORIES 6
-+#define _GLIBCXX_NUM_CATEGORIES 0
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+namespace __gnu_cxx
-+{
-+  extern "C" __typeof(uselocale) __uselocale;
-+}
-+#endif
-+
-+namespace std
-+{
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+  typedef __locale_t		__c_locale;
-+#else
-+  typedef int*			__c_locale;
-+#endif
-+
-+  // Convert numeric value of type _Tv to string and return length of
-+  // string.  If snprintf is available use it, otherwise fall back to
-+  // the unsafe sprintf which, in general, can be dangerous and should
-+  // be avoided.
-+  template<typename _Tv>
-+    int
-+    __convert_from_v(char* __out,
-+		     const int __size __attribute__ ((__unused__)),
-+		     const char* __fmt,
-+#ifdef __UCLIBC_HAS_XCLOCALE__
-+		     _Tv __v, const __c_locale& __cloc, int __prec)
-+    {
-+      __c_locale __old = __gnu_cxx::__uselocale(__cloc);
-+#else
-+		     _Tv __v, const __c_locale&, int __prec)
-+    {
-+# ifdef __UCLIBC_HAS_LOCALE__
-+      char* __old = std::setlocale(LC_ALL, NULL);
-+      char* __sav = new char[std::strlen(__old) + 1];
-+      std::strcpy(__sav, __old);
-+      std::setlocale(LC_ALL, "C");
-+# endif
-+#endif
-+
-+      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
-+
-+#ifdef __UCLIBC_HAS_XCLOCALE__
-+      __gnu_cxx::__uselocale(__old);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+      std::setlocale(LC_ALL, __sav);
-+      delete [] __sav;
-+#endif
-+      return __ret;
-+    }
-+}
-+
-+#endif
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
-@@ -0,0 +1,308 @@
-+// std::codecvt implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#include <locale>
-+#include <cstdlib>  // For MB_CUR_MAX
-+#include <climits>  // For MB_LEN_MAX
-+#include <bits/c++locale_internal.h>
-+
-+namespace std
-+{
-+  // Specializations.
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  codecvt_base::result
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_out(state_type& __state, const intern_type* __from,
-+	 const intern_type* __from_end, const intern_type*& __from_next,
-+	 extern_type* __to, extern_type* __to_end,
-+	 extern_type*& __to_next) const
-+  {
-+    result __ret = ok;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // wcsnrtombs is *very* fast but stops if encounters NUL characters:
-+    // in case we fall back to wcrtomb and then continue, in a loop.
-+    // NB: wcsnrtombs is a GNU extension
-+    for (__from_next = __from, __to_next = __to;
-+	 __from_next < __from_end && __to_next < __to_end
-+	 && __ret == ok;)
-+      {
-+	const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
-+						      __from_end - __from_next);
-+	if (!__from_chunk_end)
-+	  __from_chunk_end = __from_end;
-+
-+	__from = __from_next;
-+	const size_t __conv = wcsnrtombs(__to_next, &__from_next,
-+					 __from_chunk_end - __from_next,
-+					 __to_end - __to_next, &__state);
-+	if (__conv == static_cast<size_t>(-1))
-+	  {
-+	    // In case of error, in order to stop at the exact place we
-+	    // have to start again from the beginning with a series of
-+	    // wcrtomb.
-+	    for (; __from < __from_next; ++__from)
-+	      __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
-+	    __state = __tmp_state;
-+	    __ret = error;
-+	  }
-+	else if (__from_next && __from_next < __from_chunk_end)
-+	  {
-+	    __to_next += __conv;
-+	    __ret = partial;
-+	  }
-+	else
-+	  {
-+	    __from_next = __from_chunk_end;
-+	    __to_next += __conv;
-+	  }
-+
-+	if (__from_next < __from_end && __ret == ok)
-+	  {
-+	    extern_type __buf[MB_LEN_MAX];
-+	    __tmp_state = __state;
-+	    const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
-+	    if (__conv > static_cast<size_t>(__to_end - __to_next))
-+	      __ret = partial;
-+	    else
-+	      {
-+		memcpy(__to_next, __buf, __conv);
-+		__state = __tmp_state;
-+		__to_next += __conv;
-+		++__from_next;
-+	      }
-+	  }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret;
-+  }
-+
-+  codecvt_base::result
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_in(state_type& __state, const extern_type* __from,
-+	const extern_type* __from_end, const extern_type*& __from_next,
-+	intern_type* __to, intern_type* __to_end,
-+	intern_type*& __to_next) const
-+  {
-+    result __ret = ok;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+    // in case we store a L'\0' and then continue, in a loop.
-+    // NB: mbsnrtowcs is a GNU extension
-+    for (__from_next = __from, __to_next = __to;
-+	 __from_next < __from_end && __to_next < __to_end
-+	 && __ret == ok;)
-+      {
-+	const extern_type* __from_chunk_end;
-+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
-+								  __from_end
-+								  - __from_next));
-+	if (!__from_chunk_end)
-+	  __from_chunk_end = __from_end;
-+
-+	__from = __from_next;
-+	size_t __conv = mbsnrtowcs(__to_next, &__from_next,
-+				   __from_chunk_end - __from_next,
-+				   __to_end - __to_next, &__state);
-+	if (__conv == static_cast<size_t>(-1))
-+	  {
-+	    // In case of error, in order to stop at the exact place we
-+	    // have to start again from the beginning with a series of
-+	    // mbrtowc.
-+	    for (;; ++__to_next, __from += __conv)
-+	      {
-+		__conv = mbrtowc(__to_next, __from, __from_end - __from,
-+				 &__tmp_state);
-+		if (__conv == static_cast<size_t>(-1)
-+		    || __conv == static_cast<size_t>(-2))
-+		  break;
-+	      }
-+	    __from_next = __from;
-+	    __state = __tmp_state;
-+	    __ret = error;
-+	  }
-+	else if (__from_next && __from_next < __from_chunk_end)
-+	  {
-+	    // It is unclear what to return in this case (see DR 382).
-+	    __to_next += __conv;
-+	    __ret = partial;
-+	  }
-+	else
-+	  {
-+	    __from_next = __from_chunk_end;
-+	    __to_next += __conv;
-+	  }
-+
-+	if (__from_next < __from_end && __ret == ok)
-+	  {
-+	    if (__to_next < __to_end)
-+	      {
-+		// XXX Probably wrong for stateful encodings
-+		__tmp_state = __state;
-+		++__from_next;
-+		*__to_next++ = L'\0';
-+	      }
-+	    else
-+	      __ret = partial;
-+	  }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret;
-+  }
-+
-+  int
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_encoding() const throw()
-+  {
-+    // XXX This implementation assumes that the encoding is
-+    // stateless and is either single-byte or variable-width.
-+    int __ret = 0;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+    if (MB_CUR_MAX == 1)
-+      __ret = 1;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __ret;
-+  }
-+
-+  int
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_max_length() const throw()
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+    // XXX Probably wrong for stateful encodings.
-+    int __ret = MB_CUR_MAX;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __ret;
-+  }
-+
-+  int
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_length(state_type& __state, const extern_type* __from,
-+	    const extern_type* __end, size_t __max) const
-+  {
-+    int __ret = 0;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+    // in case we advance past it and then continue, in a loop.
-+    // NB: mbsnrtowcs is a GNU extension
-+
-+    // A dummy internal buffer is needed in order for mbsnrtocws to consider
-+    // its fourth parameter (it wouldn't with NULL as first parameter).
-+    wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t)
-+							   * __max));
-+    while (__from < __end && __max)
-+      {
-+	const extern_type* __from_chunk_end;
-+	__from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
-+								  __end
-+								  - __from));
-+	if (!__from_chunk_end)
-+	  __from_chunk_end = __end;
-+
-+	const extern_type* __tmp_from = __from;
-+	size_t __conv = mbsnrtowcs(__to, &__from,
-+				   __from_chunk_end - __from,
-+				   __max, &__state);
-+	if (__conv == static_cast<size_t>(-1))
-+	  {
-+	    // In case of error, in order to stop at the exact place we
-+	    // have to start again from the beginning with a series of
-+	    // mbrtowc.
-+	    for (__from = __tmp_from;; __from += __conv)
-+	      {
-+		__conv = mbrtowc(NULL, __from, __end - __from,
-+				 &__tmp_state);
-+		if (__conv == static_cast<size_t>(-1)
-+		    || __conv == static_cast<size_t>(-2))
-+		  break;
-+	      }
-+	    __state = __tmp_state;
-+	    __ret += __from - __tmp_from;
-+	    break;
-+	  }
-+	if (!__from)
-+	  __from = __from_chunk_end;
-+
-+	__ret += __from - __tmp_from;
-+	__max -= __conv;
-+
-+	if (__from < __end && __max)
-+	  {
-+	    // XXX Probably wrong for stateful encodings
-+	    __tmp_state = __state;
-+	    ++__from;
-+	    ++__ret;
-+	    --__max;
-+	  }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret;
-+  }
-+#endif
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
-@@ -0,0 +1,80 @@
-+// std::collate implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.4.1.2  collate virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
-+#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
-+#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
-+#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
-+#endif
-+
-+namespace std
-+{
-+  // These are basically extensions to char_traits, and perhaps should
-+  // be put there instead of here.
-+  template<>
-+    int
-+    collate<char>::_M_compare(const char* __one, const char* __two) const
-+    {
-+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
-+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+    }
-+
-+  template<>
-+    size_t
-+    collate<char>::_M_transform(char* __to, const char* __from,
-+				size_t __n) const
-+    { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    int
-+    collate<wchar_t>::_M_compare(const wchar_t* __one,
-+				 const wchar_t* __two) const
-+    {
-+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
-+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+    }
-+
-+  template<>
-+    size_t
-+    collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
-+				   size_t __n) const
-+    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+#endif
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-@@ -0,0 +1,300 @@
-+// std::ctype implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.1.2  ctype virtual functions.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __wctype_l(S, L)           wctype((S))
-+#define __towupper_l(C, L)         towupper((C))
-+#define __towlower_l(C, L)         towlower((C))
-+#define __iswctype_l(C, M, L)      iswctype((C), (M))
-+#endif
-+
-+namespace std
-+{
-+  // NB: The other ctype<char> specializations are in src/locale.cc and
-+  // various /config/os/* files.
-+  template<>
-+    ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-+    : ctype<char>(0, false, __refs)
-+    {
-+      if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+	{
-+	  this->_S_destroy_c_locale(this->_M_c_locale_ctype);
-+	  this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	  this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
-+	  this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
-+	  this->_M_table = this->_M_c_locale_ctype->__ctype_b;
-+#endif
-+	}
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  ctype<wchar_t>::__wmask_type
-+  ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
-+  {
-+    __wmask_type __ret;
-+    switch (__m)
-+      {
-+      case space:
-+	__ret = __wctype_l("space", _M_c_locale_ctype);
-+	break;
-+      case print:
-+	__ret = __wctype_l("print", _M_c_locale_ctype);
-+	break;
-+      case cntrl:
-+	__ret = __wctype_l("cntrl", _M_c_locale_ctype);
-+	break;
-+      case upper:
-+	__ret = __wctype_l("upper", _M_c_locale_ctype);
-+	break;
-+      case lower:
-+	__ret = __wctype_l("lower", _M_c_locale_ctype);
-+	break;
-+      case alpha:
-+	__ret = __wctype_l("alpha", _M_c_locale_ctype);
-+	break;
-+      case digit:
-+	__ret = __wctype_l("digit", _M_c_locale_ctype);
-+	break;
-+      case punct:
-+	__ret = __wctype_l("punct", _M_c_locale_ctype);
-+	break;
-+      case xdigit:
-+	__ret = __wctype_l("xdigit", _M_c_locale_ctype);
-+	break;
-+      case alnum:
-+	__ret = __wctype_l("alnum", _M_c_locale_ctype);
-+	break;
-+      case graph:
-+	__ret = __wctype_l("graph", _M_c_locale_ctype);
-+	break;
-+      default:
-+	__ret = __wmask_type();
-+      }
-+    return __ret;
-+  }
-+
-+  wchar_t
-+  ctype<wchar_t>::do_toupper(wchar_t __c) const
-+  { return __towupper_l(__c, _M_c_locale_ctype); }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi)
-+      {
-+        *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
-+        ++__lo;
-+      }
-+    return __hi;
-+  }
-+
-+  wchar_t
-+  ctype<wchar_t>::do_tolower(wchar_t __c) const
-+  { return __towlower_l(__c, _M_c_locale_ctype); }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi)
-+      {
-+        *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
-+        ++__lo;
-+      }
-+    return __hi;
-+  }
-+
-+  bool
-+  ctype<wchar_t>::
-+  do_is(mask __m, wchar_t __c) const
-+  {
-+    // Highest bitmask in ctype_base == 10, but extra in "C"
-+    // library for blank.
-+    bool __ret = false;
-+    const size_t __bitmasksize = 11;
-+    for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+      if (__m & _M_bit[__bitcur]
-+	  && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-+	{
-+	  __ret = true;
-+	  break;
-+	}
-+    return __ret;
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
-+  {
-+    for (; __lo < __hi; ++__vec, ++__lo)
-+      {
-+	// Highest bitmask in ctype_base == 10, but extra in "C"
-+	// library for blank.
-+	const size_t __bitmasksize = 11;
-+	mask __m = 0;
-+	for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+	  if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
-+	    __m |= _M_bit[__bitcur];
-+	*__vec = __m;
-+      }
-+    return __hi;
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi && !this->do_is(__m, *__lo))
-+      ++__lo;
-+    return __lo;
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
-+  {
-+    while (__lo < __hi && this->do_is(__m, *__lo) != 0)
-+      ++__lo;
-+    return __lo;
-+  }
-+
-+  wchar_t
-+  ctype<wchar_t>::
-+  do_widen(char __c) const
-+  { return _M_widen[static_cast<unsigned char>(__c)]; }
-+
-+  const char*
-+  ctype<wchar_t>::
-+  do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
-+  {
-+    while (__lo < __hi)
-+      {
-+	*__dest = _M_widen[static_cast<unsigned char>(*__lo)];
-+	++__lo;
-+	++__dest;
-+      }
-+    return __hi;
-+  }
-+
-+  char
-+  ctype<wchar_t>::
-+  do_narrow(wchar_t __wc, char __dfault) const
-+  {
-+    if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
-+      return _M_narrow[__wc];
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    const int __c = wctob(__wc);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return (__c == EOF ? __dfault : static_cast<char>(__c));
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
-+	    char* __dest) const
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    if (_M_narrow_ok)
-+      while (__lo < __hi)
-+	{
-+	  if (*__lo >= 0 && *__lo < 128)
-+	    *__dest = _M_narrow[*__lo];
-+	  else
-+	    {
-+	      const int __c = wctob(*__lo);
-+	      *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+	    }
-+	  ++__lo;
-+	  ++__dest;
-+	}
-+    else
-+      while (__lo < __hi)
-+	{
-+	  const int __c = wctob(*__lo);
-+	  *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+	  ++__lo;
-+	  ++__dest;
-+	}
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __hi;
-+  }
-+
-+  void
-+  ctype<wchar_t>::_M_initialize_ctype()
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    wint_t __i;
-+    for (__i = 0; __i < 128; ++__i)
-+      {
-+	const int __c = wctob(__i);
-+	if (__c == EOF)
-+	  break;
-+	else
-+	  _M_narrow[__i] = static_cast<char>(__c);
-+      }
-+    if (__i == 128)
-+      _M_narrow_ok = true;
-+    else
-+      _M_narrow_ok = false;
-+    for (size_t __j = 0;
-+	 __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
-+      _M_widen[__j] = btowc(__j);
-+
-+    for (size_t __k = 0; __k <= 11; ++__k)
-+      {
-+	_M_bit[__k] = static_cast<mask>(_ISbit(__k));
-+	_M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
-+      }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+  }
-+#endif //  _GLIBCXX_USE_WCHAR_T
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
-@@ -0,0 +1,100 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2  messages virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix gettext stuff
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__dcgettext(const char *domainname,
-+			     const char *msgid, int category);
-+#undef gettext
-+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#else
-+#undef gettext
-+#define gettext(msgid) (msgid)
-+#endif
-+
-+namespace std
-+{
-+  // Specializations.
-+  template<>
-+    string
-+    messages<char>::do_get(catalog, int, int, const string& __dfault) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __c_locale __old = __uselocale(_M_c_locale_messages);
-+      const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
-+      __uselocale(__old);
-+      return string(__msg);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_messages);
-+      const char* __msg = gettext(__dfault.c_str());
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+      return string(__msg);
-+#else
-+      const char* __msg = gettext(__dfault.c_str());
-+      return string(__msg);
-+#endif
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    wstring
-+    messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
-+    {
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+      __c_locale __old = __uselocale(_M_c_locale_messages);
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      __uselocale(__old);
-+      return _M_convert_from_char(__msg);
-+# elif defined __UCLIBC_HAS_LOCALE__
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_messages);
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+      return _M_convert_from_char(__msg);
-+# else
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      return _M_convert_from_char(__msg);
-+# endif
-+    }
-+#endif
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -0,0 +1,118 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2  messages functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix prototypes for *textdomain funcs
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__textdomain(const char *domainname);
-+extern "C" char *__bindtextdomain(const char *domainname,
-+				  const char *dirname);
-+#else
-+#undef __textdomain
-+#undef __bindtextdomain
-+#define __textdomain(D)           ((void)0)
-+#define __bindtextdomain(D,P)     ((void)0)
-+#endif
-+
-+  // Non-virtual member functions.
-+  template<typename _CharT>
-+     messages<_CharT>::messages(size_t __refs)
-+     : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
-+     _M_name_messages(_S_get_c_name())
-+     { }
-+
-+  template<typename _CharT>
-+     messages<_CharT>::messages(__c_locale __cloc, const char* __s,
-+				size_t __refs)
-+     : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
-+     _M_name_messages(__s)
-+     {
-+       char* __tmp = new char[std::strlen(__s) + 1];
-+       std::strcpy(__tmp, __s);
-+       _M_name_messages = __tmp;
-+     }
-+
-+  template<typename _CharT>
-+    typename messages<_CharT>::catalog
-+    messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
-+			   const char* __dir) const
-+    {
-+      __bindtextdomain(__s.c_str(), __dir);
-+      return this->do_open(__s, __loc);
-+    }
-+
-+  // Virtual member functions.
-+  template<typename _CharT>
-+    messages<_CharT>::~messages()
-+    {
-+      if (_M_name_messages != _S_get_c_name())
-+	delete [] _M_name_messages;
-+      _S_destroy_c_locale(_M_c_locale_messages);
-+    }
-+
-+  template<typename _CharT>
-+    typename messages<_CharT>::catalog
-+    messages<_CharT>::do_open(const basic_string<char>& __s,
-+			      const locale&) const
-+    {
-+      // No error checking is done, assume the catalog exists and can
-+      // be used.
-+      __textdomain(__s.c_str());
-+      return 0;
-+    }
-+
-+  template<typename _CharT>
-+    void
-+    messages<_CharT>::do_close(catalog) const
-+    { }
-+
-+   // messages_byname
-+   template<typename _CharT>
-+     messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
-+     : messages<_CharT>(__refs)
-+     {
-+       if (this->_M_name_messages != locale::facet::_S_get_c_name())
-+	 delete [] this->_M_name_messages;
-+       char* __tmp = new char[std::strlen(__s) + 1];
-+       std::strcpy(__tmp, __s);
-+       this->_M_name_messages = __tmp;
-+
-+       if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+	 {
-+	   this->_S_destroy_c_locale(this->_M_c_locale_messages);
-+	   this->_S_create_c_locale(this->_M_c_locale_messages, __s);
-+	 }
-+     }
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -0,0 +1,692 @@
-+// std::moneypunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.6.3.2  moneypunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning optimize this for uclibc
-+#warning tailor for stub locale support
-+#endif
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  // Construct and return valid pattern consisting of some combination of:
-+  // space none symbol sign value
-+  money_base::pattern
-+  money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
-+  {
-+    pattern __ret;
-+
-+    // This insanely complicated routine attempts to construct a valid
-+    // pattern for use with monyepunct. A couple of invariants:
-+
-+    // if (__precedes) symbol -> value
-+    // else value -> symbol
-+
-+    // if (__space) space
-+    // else none
-+
-+    // none == never first
-+    // space never first or last
-+
-+    // Any elegant implementations of this are welcome.
-+    switch (__posn)
-+      {
-+      case 0:
-+      case 1:
-+	// 1 The sign precedes the value and symbol.
-+	__ret.field[0] = sign;
-+	if (__space)
-+	  {
-+	    // Pattern starts with sign.
-+	    if (__precedes)
-+	      {
-+		__ret.field[1] = symbol;
-+		__ret.field[3] = value;
-+	      }
-+	    else
-+	      {
-+		__ret.field[1] = value;
-+		__ret.field[3] = symbol;
-+	      }
-+	    __ret.field[2] = space;
-+	  }
-+	else
-+	  {
-+	    // Pattern starts with sign and ends with none.
-+	    if (__precedes)
-+	      {
-+		__ret.field[1] = symbol;
-+		__ret.field[2] = value;
-+	      }
-+	    else
-+	      {
-+		__ret.field[1] = value;
-+		__ret.field[2] = symbol;
-+	      }
-+	    __ret.field[3] = none;
-+	  }
-+	break;
-+      case 2:
-+	// 2 The sign follows the value and symbol.
-+	if (__space)
-+	  {
-+	    // Pattern either ends with sign.
-+	    if (__precedes)
-+	      {
-+		__ret.field[0] = symbol;
-+		__ret.field[2] = value;
-+	      }
-+	    else
-+	      {
-+		__ret.field[0] = value;
-+		__ret.field[2] = symbol;
-+	      }
-+	    __ret.field[1] = space;
-+	    __ret.field[3] = sign;
-+	  }
-+	else
-+	  {
-+	    // Pattern ends with sign then none.
-+	    if (__precedes)
-+	      {
-+		__ret.field[0] = symbol;
-+		__ret.field[1] = value;
-+	      }
-+	    else
-+	      {
-+		__ret.field[0] = value;
-+		__ret.field[1] = symbol;
-+	      }
-+	    __ret.field[2] = sign;
-+	    __ret.field[3] = none;
-+	  }
-+	break;
-+      case 3:
-+	// 3 The sign immediately precedes the symbol.
-+	if (__precedes)
-+	  {
-+	    __ret.field[0] = sign;
-+	    __ret.field[1] = symbol;
-+	    if (__space)
-+	      {
-+		__ret.field[2] = space;
-+		__ret.field[3] = value;
-+	      }
-+	    else
-+	      {
-+		__ret.field[2] = value;
-+		__ret.field[3] = none;
-+	      }
-+	  }
-+	else
-+	  {
-+	    __ret.field[0] = value;
-+	    if (__space)
-+	      {
-+		__ret.field[1] = space;
-+		__ret.field[2] = sign;
-+		__ret.field[3] = symbol;
-+	      }
-+	    else
-+	      {
-+		__ret.field[1] = sign;
-+		__ret.field[2] = symbol;
-+		__ret.field[3] = none;
-+	      }
-+	  }
-+	break;
-+      case 4:
-+	// 4 The sign immediately follows the symbol.
-+	if (__precedes)
-+	  {
-+	    __ret.field[0] = symbol;
-+	    __ret.field[1] = sign;
-+	    if (__space)
-+	      {
-+		__ret.field[2] = space;
-+		__ret.field[3] = value;
-+	      }
-+	    else
-+	      {
-+		__ret.field[2] = value;
-+		__ret.field[3] = none;
-+	      }
-+	  }
-+	else
-+	  {
-+	    __ret.field[0] = value;
-+	    if (__space)
-+	      {
-+		__ret.field[1] = space;
-+		__ret.field[2] = symbol;
-+		__ret.field[3] = sign;
-+	      }
-+	    else
-+	      {
-+		__ret.field[1] = symbol;
-+		__ret.field[2] = sign;
-+		__ret.field[3] = none;
-+	      }
-+	  }
-+	break;
-+      default:
-+	;
-+      }
-+    return __ret;
-+  }
-+
-+  template<>
-+    void
-+    moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
-+						     const char*)
-+    {
-+      if (!_M_data)
-+	_M_data = new __moneypunct_cache<char, true>;
-+
-+      if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_data->_M_decimal_point = '.';
-+	  _M_data->_M_thousands_sep = ',';
-+	  _M_data->_M_grouping = "";
-+	  _M_data->_M_grouping_size = 0;
-+	  _M_data->_M_curr_symbol = "";
-+	  _M_data->_M_curr_symbol_size = 0;
-+	  _M_data->_M_positive_sign = "";
-+	  _M_data->_M_positive_sign_size = 0;
-+	  _M_data->_M_negative_sign = "";
-+	  _M_data->_M_negative_sign_size = 0;
-+	  _M_data->_M_frac_digits = 0;
-+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
-+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+	}
-+      else
-+	{
-+	  // Named locale.
-+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
-+							__cloc));
-+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
-+							__cloc));
-+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+	  char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+	  if (!__nposn)
-+	    _M_data->_M_negative_sign = "()";
-+	  else
-+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
-+							__cloc);
-+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+	  // _Intl == true
-+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
-+						      __cloc));
-+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+							__pposn);
-+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+							__nposn);
-+	}
-+    }
-+
-+  template<>
-+    void
-+    moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+						      const char*)
-+    {
-+      if (!_M_data)
-+	_M_data = new __moneypunct_cache<char, false>;
-+
-+      if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_data->_M_decimal_point = '.';
-+	  _M_data->_M_thousands_sep = ',';
-+	  _M_data->_M_grouping = "";
-+	  _M_data->_M_grouping_size = 0;
-+	  _M_data->_M_curr_symbol = "";
-+	  _M_data->_M_curr_symbol_size = 0;
-+	  _M_data->_M_positive_sign = "";
-+	  _M_data->_M_positive_sign_size = 0;
-+	  _M_data->_M_negative_sign = "";
-+	  _M_data->_M_negative_sign_size = 0;
-+	  _M_data->_M_frac_digits = 0;
-+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
-+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+	    _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+	}
-+      else
-+	{
-+	  // Named locale.
-+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
-+							__cloc));
-+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
-+							__cloc));
-+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+	  _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+	  _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+	  char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+	  if (!__nposn)
-+	    _M_data->_M_negative_sign = "()";
-+	  else
-+	    _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
-+							__cloc);
-+	  _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+	  // _Intl == false
-+	  _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+	  _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+							__pposn);
-+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+							__nposn);
-+	}
-+    }
-+
-+  template<>
-+    moneypunct<char, true>::~moneypunct()
-+    { delete _M_data; }
-+
-+  template<>
-+    moneypunct<char, false>::~moneypunct()
-+    { delete _M_data; }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    void
-+    moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+							const char*)
-+#else
-+							const char* __name)
-+#endif
-+    {
-+      if (!_M_data)
-+	_M_data = new __moneypunct_cache<wchar_t, true>;
-+
-+      if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_data->_M_decimal_point = L'.';
-+	  _M_data->_M_thousands_sep = L',';
-+	  _M_data->_M_grouping = "";
-+	  _M_data->_M_grouping_size = 0;
-+	  _M_data->_M_curr_symbol = L"";
-+	  _M_data->_M_curr_symbol_size = 0;
-+	  _M_data->_M_positive_sign = L"";
-+	  _M_data->_M_positive_sign_size = 0;
-+	  _M_data->_M_negative_sign = L"";
-+	  _M_data->_M_negative_sign_size = 0;
-+	  _M_data->_M_frac_digits = 0;
-+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
-+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+	  // Use ctype::widen code without the facet...
-+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+	    _M_data->_M_atoms[__i] =
-+	      static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+	}
-+      else
-+	{
-+	  // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	  __c_locale __old = __uselocale(__cloc);
-+#else
-+	  // Switch to named locale so that mbsrtowcs will work.
-+	  char* __old = strdup(setlocale(LC_ALL, NULL));
-+	  setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+	  union { char *__s; wchar_t __w; } __u;
-+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+	  _M_data->_M_decimal_point = __u.__w;
-+
-+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+	  _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+	  const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+
-+	  wchar_t* __wcs_ps = 0;
-+	  wchar_t* __wcs_ns = 0;
-+	  const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+	  try
-+	    {
-+	      mbstate_t __state;
-+	      size_t __len = strlen(__cpossign);
-+	      if (__len)
-+		{
-+		  ++__len;
-+		  memset(&__state, 0, sizeof(mbstate_t));
-+		  __wcs_ps = new wchar_t[__len];
-+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+		  _M_data->_M_positive_sign = __wcs_ps;
-+		}
-+	      else
-+		_M_data->_M_positive_sign = L"";
-+	      _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+
-+	      __len = strlen(__cnegsign);
-+	      if (!__nposn)
-+		_M_data->_M_negative_sign = L"()";
-+	      else if (__len)
-+		{
-+		  ++__len;
-+		  memset(&__state, 0, sizeof(mbstate_t));
-+		  __wcs_ns = new wchar_t[__len];
-+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+		  _M_data->_M_negative_sign = __wcs_ns;
-+		}
-+	      else
-+		_M_data->_M_negative_sign = L"";
-+	      _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+
-+	      // _Intl == true.
-+	      __len = strlen(__ccurr);
-+	      if (__len)
-+		{
-+		  ++__len;
-+		  memset(&__state, 0, sizeof(mbstate_t));
-+		  wchar_t* __wcs = new wchar_t[__len];
-+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+		  _M_data->_M_curr_symbol = __wcs;
-+		}
-+	      else
-+		_M_data->_M_curr_symbol = L"";
-+	      _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+	    }
-+	  catch (...)
-+	    {
-+	      delete _M_data;
-+	      _M_data = 0;
-+	      delete __wcs_ps;
-+	      delete __wcs_ns;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	      __uselocale(__old);
-+#else
-+	      setlocale(LC_ALL, __old);
-+	      free(__old);
-+#endif
-+	      __throw_exception_again;
-+	    }
-+
-+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
-+						      __cloc));
-+	  char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+	  char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+	  char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+							__pposn);
-+	  char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+	  char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+							__nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	  __uselocale(__old);
-+#else
-+	  setlocale(LC_ALL, __old);
-+	  free(__old);
-+#endif
-+	}
-+    }
-+
-+  template<>
-+  void
-+  moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+						       const char*)
-+#else
-+                                                       const char* __name)
-+#endif
-+  {
-+    if (!_M_data)
-+      _M_data = new __moneypunct_cache<wchar_t, false>;
-+
-+    if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_data->_M_decimal_point = L'.';
-+	  _M_data->_M_thousands_sep = L',';
-+	  _M_data->_M_grouping = "";
-+          _M_data->_M_grouping_size = 0;
-+	  _M_data->_M_curr_symbol = L"";
-+	  _M_data->_M_curr_symbol_size = 0;
-+	  _M_data->_M_positive_sign = L"";
-+	  _M_data->_M_positive_sign_size = 0;
-+	  _M_data->_M_negative_sign = L"";
-+	  _M_data->_M_negative_sign_size = 0;
-+	  _M_data->_M_frac_digits = 0;
-+	  _M_data->_M_pos_format = money_base::_S_default_pattern;
-+	  _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+	  // Use ctype::widen code without the facet...
-+	  for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+	    _M_data->_M_atoms[__i] =
-+	      static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+	}
-+      else
-+	{
-+	  // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	  __c_locale __old = __uselocale(__cloc);
-+#else
-+	  // Switch to named locale so that mbsrtowcs will work.
-+	  char* __old = strdup(setlocale(LC_ALL, NULL));
-+	  setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+          union { char *__s; wchar_t __w; } __u;
-+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+	  _M_data->_M_decimal_point = __u.__w;
-+
-+	  __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+	  _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+	  _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+          _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+	  const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+	  const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+	  const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+
-+	  wchar_t* __wcs_ps = 0;
-+	  wchar_t* __wcs_ns = 0;
-+	  const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+	  try
-+            {
-+              mbstate_t __state;
-+              size_t __len;
-+              __len = strlen(__cpossign);
-+              if (__len)
-+                {
-+		  ++__len;
-+		  memset(&__state, 0, sizeof(mbstate_t));
-+		  __wcs_ps = new wchar_t[__len];
-+		  mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+		  _M_data->_M_positive_sign = __wcs_ps;
-+		}
-+	      else
-+		_M_data->_M_positive_sign = L"";
-+              _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+
-+	      __len = strlen(__cnegsign);
-+	      if (!__nposn)
-+		_M_data->_M_negative_sign = L"()";
-+	      else if (__len)
-+		{
-+		  ++__len;
-+		  memset(&__state, 0, sizeof(mbstate_t));
-+		  __wcs_ns = new wchar_t[__len];
-+		  mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+		  _M_data->_M_negative_sign = __wcs_ns;
-+		}
-+	      else
-+		_M_data->_M_negative_sign = L"";
-+              _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+
-+	      // _Intl == true.
-+	      __len = strlen(__ccurr);
-+	      if (__len)
-+		{
-+		  ++__len;
-+		  memset(&__state, 0, sizeof(mbstate_t));
-+		  wchar_t* __wcs = new wchar_t[__len];
-+		  mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+		  _M_data->_M_curr_symbol = __wcs;
-+		}
-+	      else
-+		_M_data->_M_curr_symbol = L"";
-+              _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+	    }
-+          catch (...)
-+	    {
-+	      delete _M_data;
-+              _M_data = 0;
-+	      delete __wcs_ps;
-+	      delete __wcs_ns;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	      __uselocale(__old);
-+#else
-+	      setlocale(LC_ALL, __old);
-+	      free(__old);
-+#endif
-+              __throw_exception_again;
-+	    }
-+
-+	  _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+	  char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+	  char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+	  char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+	  _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+	                                                __pposn);
-+	  char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+	  char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+	  _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+	                                                __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+	  __uselocale(__old);
-+#else
-+	  setlocale(LC_ALL, __old);
-+	  free(__old);
-+#endif
-+	}
-+    }
-+
-+  template<>
-+    moneypunct<wchar_t, true>::~moneypunct()
-+    {
-+      if (_M_data->_M_positive_sign_size)
-+	delete [] _M_data->_M_positive_sign;
-+      if (_M_data->_M_negative_sign_size
-+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+	delete [] _M_data->_M_negative_sign;
-+      if (_M_data->_M_curr_symbol_size)
-+	delete [] _M_data->_M_curr_symbol;
-+      delete _M_data;
-+    }
-+
-+  template<>
-+    moneypunct<wchar_t, false>::~moneypunct()
-+    {
-+      if (_M_data->_M_positive_sign_size)
-+	delete [] _M_data->_M_positive_sign;
-+      if (_M_data->_M_negative_sign_size
-+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+	delete [] _M_data->_M_negative_sign;
-+      if (_M_data->_M_curr_symbol_size)
-+	delete [] _M_data->_M_curr_symbol;
-+      delete _M_data;
-+    }
-+#endif
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -0,0 +1,160 @@
-+// std::numpunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.3.1.2  numpunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  template<>
-+    void
-+    numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+	_M_data = new __numpunct_cache<char>;
-+
-+      if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_data->_M_grouping = "";
-+	  _M_data->_M_grouping_size = 0;
-+	  _M_data->_M_use_grouping = false;
-+
-+	  _M_data->_M_decimal_point = '.';
-+	  _M_data->_M_thousands_sep = ',';
-+
-+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+	    _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
-+
-+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+	    _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
-+	}
-+      else
-+	{
-+	  // Named locale.
-+	  _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT,
-+							__cloc));
-+	  _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
-+							__cloc));
-+
-+	  // Check for NULL, which implies no grouping.
-+	  if (_M_data->_M_thousands_sep == '\0')
-+	    _M_data->_M_grouping = "";
-+	  else
-+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+	}
-+
-+      // NB: There is no way to extact this info from posix locales.
-+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+      _M_data->_M_truename = "true";
-+      _M_data->_M_truename_size = 4;
-+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+      _M_data->_M_falsename = "false";
-+      _M_data->_M_falsename_size = 5;
-+    }
-+
-+  template<>
-+    numpunct<char>::~numpunct()
-+    { delete _M_data; }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    void
-+    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+	_M_data = new __numpunct_cache<wchar_t>;
-+
-+      if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_data->_M_grouping = "";
-+	  _M_data->_M_grouping_size = 0;
-+	  _M_data->_M_use_grouping = false;
-+
-+	  _M_data->_M_decimal_point = L'.';
-+	  _M_data->_M_thousands_sep = L',';
-+
-+	  // Use ctype::widen code without the facet...
-+	  for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+	    _M_data->_M_atoms_out[__i] =
-+	      static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
-+
-+	  for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+	    _M_data->_M_atoms_in[__j] =
-+	      static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
-+	}
-+      else
-+	{
-+	  // Named locale.
-+	  // NB: In the GNU model wchar_t is always 32 bit wide.
-+	  union { char *__s; wchar_t __w; } __u;
-+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
-+	  _M_data->_M_decimal_point = __u.__w;
-+
-+	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
-+	  _M_data->_M_thousands_sep = __u.__w;
-+
-+	  if (_M_data->_M_thousands_sep == L'\0')
-+	    _M_data->_M_grouping = "";
-+	  else
-+	    _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+	  _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+	}
-+
-+      // NB: There is no way to extact this info from posix locales.
-+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+      _M_data->_M_truename = L"true";
-+      _M_data->_M_truename_size = 4;
-+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+      _M_data->_M_falsename = L"false";
-+      _M_data->_M_falsename_size = 5;
-+    }
-+
-+  template<>
-+    numpunct<wchar_t>::~numpunct()
-+    { delete _M_data; }
-+ #endif
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc
-@@ -0,0 +1,406 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  template<>
-+    void
-+    __timepunct<char>::
-+    _M_put(char* __s, size_t __maxlen, const char* __format,
-+	   const tm* __tm) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
-+					_M_c_locale_timepunct);
-+#else
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_timepunct);
-+      const size_t __len = strftime(__s, __maxlen, __format, __tm);
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+#endif
-+      // Make sure __s is null terminated.
-+      if (__len == 0)
-+	__s[0] = '\0';
-+    }
-+
-+  template<>
-+    void
-+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+	_M_data = new __timepunct_cache<char>;
-+
-+      if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_c_locale_timepunct = _S_get_c_locale();
-+
-+	  _M_data->_M_date_format = "%m/%d/%y";
-+	  _M_data->_M_date_era_format = "%m/%d/%y";
-+	  _M_data->_M_time_format = "%H:%M:%S";
-+	  _M_data->_M_time_era_format = "%H:%M:%S";
-+	  _M_data->_M_date_time_format = "";
-+	  _M_data->_M_date_time_era_format = "";
-+	  _M_data->_M_am = "AM";
-+	  _M_data->_M_pm = "PM";
-+	  _M_data->_M_am_pm_format = "";
-+
-+	  // Day names, starting with "C"'s Sunday.
-+	  _M_data->_M_day1 = "Sunday";
-+	  _M_data->_M_day2 = "Monday";
-+	  _M_data->_M_day3 = "Tuesday";
-+	  _M_data->_M_day4 = "Wednesday";
-+	  _M_data->_M_day5 = "Thursday";
-+	  _M_data->_M_day6 = "Friday";
-+	  _M_data->_M_day7 = "Saturday";
-+
-+	  // Abbreviated day names, starting with "C"'s Sun.
-+	  _M_data->_M_aday1 = "Sun";
-+	  _M_data->_M_aday2 = "Mon";
-+	  _M_data->_M_aday3 = "Tue";
-+	  _M_data->_M_aday4 = "Wed";
-+	  _M_data->_M_aday5 = "Thu";
-+	  _M_data->_M_aday6 = "Fri";
-+	  _M_data->_M_aday7 = "Sat";
-+
-+	  // Month names, starting with "C"'s January.
-+	  _M_data->_M_month01 = "January";
-+	  _M_data->_M_month02 = "February";
-+	  _M_data->_M_month03 = "March";
-+	  _M_data->_M_month04 = "April";
-+	  _M_data->_M_month05 = "May";
-+	  _M_data->_M_month06 = "June";
-+	  _M_data->_M_month07 = "July";
-+	  _M_data->_M_month08 = "August";
-+	  _M_data->_M_month09 = "September";
-+	  _M_data->_M_month10 = "October";
-+	  _M_data->_M_month11 = "November";
-+	  _M_data->_M_month12 = "December";
-+
-+	  // Abbreviated month names, starting with "C"'s Jan.
-+	  _M_data->_M_amonth01 = "Jan";
-+	  _M_data->_M_amonth02 = "Feb";
-+	  _M_data->_M_amonth03 = "Mar";
-+	  _M_data->_M_amonth04 = "Apr";
-+	  _M_data->_M_amonth05 = "May";
-+	  _M_data->_M_amonth06 = "Jun";
-+	  _M_data->_M_amonth07 = "Jul";
-+	  _M_data->_M_amonth08 = "Aug";
-+	  _M_data->_M_amonth09 = "Sep";
-+	  _M_data->_M_amonth10 = "Oct";
-+	  _M_data->_M_amonth11 = "Nov";
-+	  _M_data->_M_amonth12 = "Dec";
-+	}
-+      else
-+	{
-+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
-+
-+	  _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
-+	  _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
-+	  _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
-+	  _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
-+	  _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
-+	  _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
-+							     __cloc);
-+	  _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
-+	  _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
-+	  _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
-+
-+	  // Day names, starting with "C"'s Sunday.
-+	  _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
-+	  _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
-+	  _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
-+	  _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
-+	  _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
-+	  _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
-+	  _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
-+
-+	  // Abbreviated day names, starting with "C"'s Sun.
-+	  _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
-+	  _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
-+	  _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
-+	  _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
-+	  _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
-+	  _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
-+	  _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
-+
-+	  // Month names, starting with "C"'s January.
-+	  _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
-+	  _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
-+	  _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
-+	  _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
-+	  _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
-+	  _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
-+	  _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
-+	  _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
-+	  _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
-+	  _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
-+	  _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
-+	  _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
-+
-+	  // Abbreviated month names, starting with "C"'s Jan.
-+	  _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
-+	  _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
-+	  _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
-+	  _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
-+	  _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
-+	  _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
-+	  _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
-+	  _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
-+	  _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
-+	  _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
-+	  _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
-+	  _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
-+	}
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    void
-+    __timepunct<wchar_t>::
-+    _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
-+	   const tm* __tm) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
-+      const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
-+					_M_c_locale_timepunct);
-+#else
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_timepunct);
-+      const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+#endif
-+      // Make sure __s is null terminated.
-+      if (__len == 0)
-+	__s[0] = L'\0';
-+    }
-+
-+  template<>
-+    void
-+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+	_M_data = new __timepunct_cache<wchar_t>;
-+
-+#warning wide time stuff
-+//       if (!__cloc)
-+	{
-+	  // "C" locale
-+	  _M_c_locale_timepunct = _S_get_c_locale();
-+
-+	  _M_data->_M_date_format = L"%m/%d/%y";
-+	  _M_data->_M_date_era_format = L"%m/%d/%y";
-+	  _M_data->_M_time_format = L"%H:%M:%S";
-+	  _M_data->_M_time_era_format = L"%H:%M:%S";
-+	  _M_data->_M_date_time_format = L"";
-+	  _M_data->_M_date_time_era_format = L"";
-+	  _M_data->_M_am = L"AM";
-+	  _M_data->_M_pm = L"PM";
-+	  _M_data->_M_am_pm_format = L"";
-+
-+	  // Day names, starting with "C"'s Sunday.
-+	  _M_data->_M_day1 = L"Sunday";
-+	  _M_data->_M_day2 = L"Monday";
-+	  _M_data->_M_day3 = L"Tuesday";
-+	  _M_data->_M_day4 = L"Wednesday";
-+	  _M_data->_M_day5 = L"Thursday";
-+	  _M_data->_M_day6 = L"Friday";
-+	  _M_data->_M_day7 = L"Saturday";
-+
-+	  // Abbreviated day names, starting with "C"'s Sun.
-+	  _M_data->_M_aday1 = L"Sun";
-+	  _M_data->_M_aday2 = L"Mon";
-+	  _M_data->_M_aday3 = L"Tue";
-+	  _M_data->_M_aday4 = L"Wed";
-+	  _M_data->_M_aday5 = L"Thu";
-+	  _M_data->_M_aday6 = L"Fri";
-+	  _M_data->_M_aday7 = L"Sat";
-+
-+	  // Month names, starting with "C"'s January.
-+	  _M_data->_M_month01 = L"January";
-+	  _M_data->_M_month02 = L"February";
-+	  _M_data->_M_month03 = L"March";
-+	  _M_data->_M_month04 = L"April";
-+	  _M_data->_M_month05 = L"May";
-+	  _M_data->_M_month06 = L"June";
-+	  _M_data->_M_month07 = L"July";
-+	  _M_data->_M_month08 = L"August";
-+	  _M_data->_M_month09 = L"September";
-+	  _M_data->_M_month10 = L"October";
-+	  _M_data->_M_month11 = L"November";
-+	  _M_data->_M_month12 = L"December";
-+
-+	  // Abbreviated month names, starting with "C"'s Jan.
-+	  _M_data->_M_amonth01 = L"Jan";
-+	  _M_data->_M_amonth02 = L"Feb";
-+	  _M_data->_M_amonth03 = L"Mar";
-+	  _M_data->_M_amonth04 = L"Apr";
-+	  _M_data->_M_amonth05 = L"May";
-+	  _M_data->_M_amonth06 = L"Jun";
-+	  _M_data->_M_amonth07 = L"Jul";
-+	  _M_data->_M_amonth08 = L"Aug";
-+	  _M_data->_M_amonth09 = L"Sep";
-+	  _M_data->_M_amonth10 = L"Oct";
-+	  _M_data->_M_amonth11 = L"Nov";
-+	  _M_data->_M_amonth12 = L"Dec";
-+	}
-+#if 0
-+      else
-+	{
-+	  _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
-+
-+	  union { char *__s; wchar_t *__w; } __u;
-+
-+	  __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
-+	  _M_data->_M_date_format = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
-+	  _M_data->_M_date_era_format = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
-+	  _M_data->_M_time_format = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
-+	  _M_data->_M_time_era_format = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
-+	  _M_data->_M_date_time_format = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
-+	  _M_data->_M_date_time_era_format = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
-+	  _M_data->_M_am = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
-+	  _M_data->_M_pm = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
-+	  _M_data->_M_am_pm_format = __u.__w;
-+
-+	  // Day names, starting with "C"'s Sunday.
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
-+	  _M_data->_M_day1 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
-+	  _M_data->_M_day2 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
-+	  _M_data->_M_day3 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
-+	  _M_data->_M_day4 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
-+	  _M_data->_M_day5 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
-+	  _M_data->_M_day6 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
-+	  _M_data->_M_day7 = __u.__w;
-+
-+	  // Abbreviated day names, starting with "C"'s Sun.
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
-+	  _M_data->_M_aday1 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
-+	  _M_data->_M_aday2 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
-+	  _M_data->_M_aday3 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
-+	  _M_data->_M_aday4 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
-+	  _M_data->_M_aday5 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
-+	  _M_data->_M_aday6 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
-+	  _M_data->_M_aday7 = __u.__w;
-+
-+	  // Month names, starting with "C"'s January.
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
-+	  _M_data->_M_month01 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
-+	  _M_data->_M_month02 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
-+	  _M_data->_M_month03 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
-+	  _M_data->_M_month04 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
-+	  _M_data->_M_month05 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
-+	  _M_data->_M_month06 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
-+	  _M_data->_M_month07 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
-+	  _M_data->_M_month08 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
-+	  _M_data->_M_month09 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
-+	  _M_data->_M_month10 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
-+	  _M_data->_M_month11 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
-+	  _M_data->_M_month12 = __u.__w;
-+
-+	  // Abbreviated month names, starting with "C"'s Jan.
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
-+	  _M_data->_M_amonth01 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
-+	  _M_data->_M_amonth02 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
-+	  _M_data->_M_amonth03 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
-+	  _M_data->_M_amonth04 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
-+	  _M_data->_M_amonth05 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
-+	  _M_data->_M_amonth06 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
-+	  _M_data->_M_amonth07 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
-+	  _M_data->_M_amonth08 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
-+	  _M_data->_M_amonth09 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
-+	  _M_data->_M_amonth10 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
-+	  _M_data->_M_amonth11 = __u.__w;
-+	  __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
-+	  _M_data->_M_amonth12 = __u.__w;
-+	}
-+#endif // 0
-+    }
-+#endif
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h
-===================================================================
---- /dev/null
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h
-@@ -0,0 +1,68 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz at redhat.com>
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(size_t __refs)
-+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-+    _M_name_timepunct(_S_get_c_name())
-+    { _M_initialize_timepunct(); }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
-+    : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
-+    _M_name_timepunct(_S_get_c_name())
-+    { _M_initialize_timepunct(); }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
-+				     size_t __refs)
-+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-+    _M_name_timepunct(__s)
-+    {
-+      char* __tmp = new char[std::strlen(__s) + 1];
-+      std::strcpy(__tmp, __s);
-+      _M_name_timepunct = __tmp;
-+      _M_initialize_timepunct(__cloc);
-+    }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::~__timepunct()
-+    {
-+      if (_M_name_timepunct != _S_get_c_name())
-+	delete [] _M_name_timepunct;
-+      delete _M_data;
-+      _S_destroy_c_locale(_M_c_locale_timepunct);
-+    }
-Index: gcc-4.6.0/libstdc++-v3/configure
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/configure
-+++ gcc-4.6.0/libstdc++-v3/configure
-@@ -15642,7 +15642,7 @@ $as_echo "stdio" >&6; }
- if test "${enable_clocale+set}" = set; then :
-   enableval=$enable_clocale;
-       case "$enableval" in
--       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
-+       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
-        *) as_fn_error "Unknown argument to enable/disable clocale" "$LINENO" 5 ;;
- 	  	        esac
- 
-@@ -15674,6 +15674,9 @@ fi
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-+      *-uclibc*)
-+        enable_clocale_flag=uclibc
-+        ;;
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
- 	enable_clocale_flag=gnu
- 	;;
-@@ -15907,6 +15910,76 @@ $as_echo "IEEE 1003.1" >&6; }
-       CTIME_CC=config/locale/generic/time_members.cc
-       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-       ;;
-+    uclibc)
-+      echo "$as_me:$LINENO: result: uclibc" >&5
-+echo "${ECHO_T}uclibc" >&6
-+
-+      # Declare intention to use gettext, and add support for specific
-+      # languages.
-+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+      ALL_LINGUAS="de fr"
-+
-+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+      # Extract the first word of "msgfmt", so it can be a program name with args.
-+set dummy msgfmt; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  if test -n "$check_msgfmt"; then
-+  ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+  for ac_exec_ext in '' $ac_executable_extensions; do
-+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_check_msgfmt="yes"
-+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+done
-+
-+  test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
-+fi
-+fi
-+check_msgfmt=$ac_cv_prog_check_msgfmt
-+if test -n "$check_msgfmt"; then
-+  echo "$as_me:$LINENO: result: $check_msgfmt" >&5
-+echo "${ECHO_T}$check_msgfmt" >&6
-+else
-+  echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+        USE_NLS=yes
-+      fi
-+      # Export the build objects.
-+      for ling in $ALL_LINGUAS; do \
-+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+      done
-+
-+
-+
-+      CLOCALE_H=config/locale/uclibc/c_locale.h
-+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+      CMESSAGES_H=config/locale/uclibc/messages_members.h
-+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+      CTIME_H=config/locale/uclibc/time_members.h
-+      CTIME_CC=config/locale/uclibc/time_members.cc
-+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+      ;;
-   esac
- 
-   # This is where the testsuite looks for locale catalogs, using the
-@@ -16957,6 +17030,7 @@ rm -f core conftest.err conftest.$ac_obj
- 
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
-+#line 17016 "configure"
- #include <wctype.h>
- int
- main ()
-@@ -64172,7 +64246,6 @@ $as_echo_n "checking for shared libgcc..
- fi
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
--
- int
- main ()
- {
-Index: gcc-4.6.0/libstdc++-v3/include/c_compatibility/wchar.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/include/c_compatibility/wchar.h
-+++ gcc-4.6.0/libstdc++-v3/include/c_compatibility/wchar.h
-@@ -101,7 +101,9 @@ using std::wmemcmp;
- using std::wmemcpy;
- using std::wmemmove;
- using std::wmemset;
-+#if _GLIBCXX_HAVE_WCSFTIME
- using std::wcsftime;
-+#endif
- 
- #if _GLIBCXX_USE_C99
- using std::wcstold;
-Index: gcc-4.6.0/libstdc++-v3/include/c_std/cwchar
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/include/c_std/cwchar
-+++ gcc-4.6.0/libstdc++-v3/include/c_std/cwchar
-@@ -177,7 +177,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
-   using ::wcscoll;
-   using ::wcscpy;
-   using ::wcscspn;
-+#if _GLIBCXX_HAVE_WCSFTIME
-   using ::wcsftime;
-+#endif
-   using ::wcslen;
-   using ::wcsncat;
-   using ::wcsncmp;
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch
deleted file mode 100644
index c602e91..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/203-uclibc-locale-no__x.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-@@ -60,4 +60,49 @@ extern "C" __typeof(wcsxfrm_l) __wcsxfrm
- extern "C" __typeof(wctype_l) __wctype_l;
- #endif
- 
-+# define __nl_langinfo_l nl_langinfo_l
-+# define __strcoll_l strcoll_l
-+# define __strftime_l strftime_l
-+# define __strtod_l strtod_l
-+# define __strtof_l strtof_l
-+# define __strtold_l strtold_l
-+# define __strxfrm_l strxfrm_l
-+# define __newlocale newlocale
-+# define __freelocale freelocale
-+# define __duplocale duplocale
-+# define __uselocale uselocale
-+
-+# ifdef _GLIBCXX_USE_WCHAR_T
-+#  define __iswctype_l iswctype_l
-+#  define __towlower_l towlower_l
-+#  define __towupper_l towupper_l
-+#  define __wcscoll_l wcscoll_l
-+#  define __wcsftime_l wcsftime_l
-+#  define __wcsxfrm_l wcsxfrm_l
-+#  define __wctype_l wctype_l
-+# endif
-+
-+#else
-+# define __nl_langinfo_l(N, L)       nl_langinfo((N))
-+# define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
-+# define __strtod_l(S, E, L)         strtod((S), (E))
-+# define __strtof_l(S, E, L)         strtof((S), (E))
-+# define __strtold_l(S, E, L)        strtold((S), (E))
-+# define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
-+# warning should dummy __newlocale check for C|POSIX ?
-+# define __newlocale(a, b, c)        NULL
-+# define __freelocale(a)             ((void)0)
-+# define __duplocale(a)              __c_locale()
-+//# define __uselocale ?
-+//
-+# ifdef _GLIBCXX_USE_WCHAR_T
-+#  define __iswctype_l(C, M, L)       iswctype((C), (M))
-+#  define __towlower_l(C, L)          towlower((C))
-+#  define __towupper_l(C, L)          towupper((C))
-+#  define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
-+//#  define __wcsftime_l(S, M, F, T, L)  wcsftime((S), (M), (F), (T))
-+#  define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
-+#  define __wctype_l(S, L)            wctype((S))
-+# endif
-+
- #endif // GLIBC 2.3 and later
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
-@@ -39,20 +39,6 @@
- #include <langinfo.h>
- #include <bits/c++locale_internal.h>
- 
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
--#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
--#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
--#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
--#define __strtof_l(S, E, L)         strtof((S), (E))
--#define __strtod_l(S, E, L)         strtod((S), (E))
--#define __strtold_l(S, E, L)        strtold((S), (E))
--#warning should dummy __newlocale check for C|POSIX ?
--#define __newlocale(a, b, c)        NULL
--#define __freelocale(a)             ((void)0)
--#define __duplocale(a)              __c_locale()
--#endif
--
- namespace std
- {
-   template<>
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/collate_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
-@@ -36,13 +36,6 @@
- #include <locale>
- #include <bits/c++locale_internal.h>
- 
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
--#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
--#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
--#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
--#endif
--
- namespace std
- {
-   // These are basically extensions to char_traits, and perhaps should
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -43,10 +43,6 @@
- #warning tailor for stub locale support
- #endif
- 
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __nl_langinfo_l(N, L)         nl_langinfo((N))
--#endif
--
- namespace std
- {
-   // Construct and return valid pattern consisting of some combination of:
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -41,9 +41,6 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning tailor for stub locale support
- #endif
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __nl_langinfo_l(N, L)         nl_langinfo((N))
--#endif
- 
- namespace std
- {
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc
-@@ -40,9 +40,6 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning tailor for stub locale support
- #endif
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __nl_langinfo_l(N, L)         nl_langinfo((N))
--#endif
- 
- namespace std
- {
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-@@ -38,13 +38,6 @@
- #undef _LIBC
- #include <bits/c++locale_internal.h>
- 
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __wctype_l(S, L)           wctype((S))
--#define __towupper_l(C, L)         towupper((C))
--#define __towlower_l(C, L)         towlower((C))
--#define __iswctype_l(C, M, L)      iswctype((C), (M))
--#endif
--
- namespace std
- {
-   // NB: The other ctype<char> specializations are in src/locale.cc and
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
-@@ -39,13 +39,10 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix gettext stuff
- #endif
--#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
--extern "C" char *__dcgettext(const char *domainname,
--			     const char *msgid, int category);
- #undef gettext
--#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
- #else
--#undef gettext
- #define gettext(msgid) (msgid)
- #endif
- 
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -36,15 +36,11 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix prototypes for *textdomain funcs
- #endif
--#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
--extern "C" char *__textdomain(const char *domainname);
--extern "C" char *__bindtextdomain(const char *domainname,
--				  const char *dirname);
--#else
--#undef __textdomain
--#undef __bindtextdomain
--#define __textdomain(D)           ((void)0)
--#define __bindtextdomain(D,P)     ((void)0)
-+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#undef textdomain
-+#undef bindtextdomain
-+#define textdomain(D)           ((void)0)
-+#define bindtextdomain(D,P)     ((void)0)
- #endif
- 
-   // Non-virtual member functions.
-@@ -70,7 +66,7 @@ extern "C" char *__bindtextdomain(const
-     messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
- 			   const char* __dir) const
-     {
--      __bindtextdomain(__s.c_str(), __dir);
-+      bindtextdomain(__s.c_str(), __dir);
-       return this->do_open(__s, __loc);
-     }
- 
-@@ -90,7 +86,7 @@ extern "C" char *__bindtextdomain(const
-     {
-       // No error checking is done, assume the catalog exists and can
-       // be used.
--      __textdomain(__s.c_str());
-+      textdomain(__s.c_str());
-       return 0;
-     }
- 
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h
-@@ -68,6 +68,7 @@ namespace __gnu_cxx
- {
-   extern "C" __typeof(uselocale) __uselocale;
- }
-+#define __uselocale uselocale
- #endif
- 
- namespace std
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch
deleted file mode 100644
index 896d2a5..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/204-uclibc-locale-wchar_fix.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -401,7 +401,7 @@ namespace std
- # ifdef __UCLIBC_HAS_XLOCALE__
- 	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
- 	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
--# else
-+# elif defined __UCLIBC_HAS_LOCALE__
- 	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
- 	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
- # endif
-@@ -556,7 +556,7 @@ namespace std
- # ifdef __UCLIBC_HAS_XLOCALE__
- 	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
- 	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
--# else
-+# elif defined __UCLIBC_HAS_LOCALE__
- 	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
- 	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
- # endif
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -127,12 +127,25 @@ namespace std
- 	{
- 	  // Named locale.
- 	  // NB: In the GNU model wchar_t is always 32 bit wide.
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be numeric
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+	  _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+	  _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# elif defined __UCLIBC_HAS_LOCALE__
-+	  _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+	  _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
- 	  union { char *__s; wchar_t __w; } __u;
- 	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
- 	  _M_data->_M_decimal_point = __u.__w;
- 
- 	  __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
- 	  _M_data->_M_thousands_sep = __u.__w;
-+#endif
- 
- 	  if (_M_data->_M_thousands_sep == L'\0')
- 	    _M_data->_M_grouping = "";
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch
deleted file mode 100644
index 743017b..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/205-uclibc-locale-update.patch
+++ /dev/null
@@ -1,521 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
-@@ -39,23 +39,20 @@
- #include <langinfo.h>
- #include <bits/c++locale_internal.h>
- 
--namespace std
--{
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
-   template<>
-     void
-     __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
- 		   const __c_locale& __cloc)
-     {
--      if (!(__err & ios_base::failbit))
--	{
--	  char* __sanity;
--	  errno = 0;
--	  float __f = __strtof_l(__s, &__sanity, __cloc);
--          if (__sanity != __s && errno != ERANGE)
--	    __v = __f;
--	  else
--	    __err |= ios_base::failbit;
--	}
-+      char* __sanity;
-+      errno = 0;
-+      float __f = __strtof_l(__s, &__sanity, __cloc);
-+      if (__sanity != __s && errno != ERANGE)
-+	__v = __f;
-+      else
-+	__err |= ios_base::failbit;
-     }
- 
-   template<>
-@@ -63,16 +60,13 @@ namespace std
-     __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
- 		   const __c_locale& __cloc)
-     {
--      if (!(__err & ios_base::failbit))
--	{
--	  char* __sanity;
--	  errno = 0;
--	  double __d = __strtod_l(__s, &__sanity, __cloc);
--          if (__sanity != __s && errno != ERANGE)
--	    __v = __d;
--	  else
--	    __err |= ios_base::failbit;
--	}
-+      char* __sanity;
-+      errno = 0;
-+      double __d = __strtod_l(__s, &__sanity, __cloc);
-+      if (__sanity != __s && errno != ERANGE)
-+	__v = __d;
-+      else
-+	__err |= ios_base::failbit;
-     }
- 
-   template<>
-@@ -80,16 +74,13 @@ namespace std
-     __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
- 		   const __c_locale& __cloc)
-     {
--      if (!(__err & ios_base::failbit))
--	{
--	  char* __sanity;
--	  errno = 0;
--	  long double __ld = __strtold_l(__s, &__sanity, __cloc);
--          if (__sanity != __s && errno != ERANGE)
--	    __v = __ld;
--	  else
--	    __err |= ios_base::failbit;
--	}
-+      char* __sanity;
-+      errno = 0;
-+      long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+      if (__sanity != __s && errno != ERANGE)
-+	__v = __ld;
-+      else
-+	__err |= ios_base::failbit;
-     }
- 
-   void
-@@ -110,17 +101,18 @@ namespace std
-   void
-   locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-   {
--    if (_S_get_c_locale() != __cloc)
-+    if (__cloc && _S_get_c_locale() != __cloc)
-       __freelocale(__cloc);
-   }
- 
-   __c_locale
-   locale::facet::_S_clone_c_locale(__c_locale& __cloc)
-   { return __duplocale(__cloc); }
--} // namespace std
- 
--namespace __gnu_cxx
--{
-+_GLIBCXX_END_NAMESPACE
-+
-+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-+
-   const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
-     {
-       "LC_CTYPE",
-@@ -138,9 +130,11 @@ namespace __gnu_cxx
-       "LC_IDENTIFICATION"
- #endif
-     };
--}
- 
--namespace std
--{
-+_GLIBCXX_END_NAMESPACE
-+
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
-   const char* const* const locale::_S_categories = __gnu_cxx::category_names;
--}  // namespace std
-+
-+_GLIBCXX_END_NAMESPACE
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-@@ -33,16 +33,20 @@
- 
- // Written by Benjamin Kosnik <bkoz at redhat.com>
- 
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_LOCALE__
- #define _LIBC
- #include <locale>
- #undef _LIBC
-+#else
-+#include <locale>
-+#endif
- #include <bits/c++locale_internal.h>
- 
--namespace std
--{
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
-   // NB: The other ctype<char> specializations are in src/locale.cc and
-   // various /config/os/* files.
--  template<>
-     ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-     : ctype<char>(0, false, __refs)
-     {
-@@ -57,6 +61,8 @@ namespace std
- #endif
- 	}
-     }
-+    ctype_byname<char>::~ctype_byname()
-+    { }
- 
- #ifdef _GLIBCXX_USE_WCHAR_T
-   ctype<wchar_t>::__wmask_type
-@@ -138,17 +144,33 @@ namespace std
-   ctype<wchar_t>::
-   do_is(mask __m, wchar_t __c) const
-   {
--    // Highest bitmask in ctype_base == 10, but extra in "C"
--    // library for blank.
-+    // The case of __m == ctype_base::space is particularly important,
-+    // due to its use in many istream functions.  Therefore we deal with
-+    // it first, exploiting the knowledge that on GNU systems _M_bit[5]
-+    // is the mask corresponding to ctype_base::space.  NB: an encoding
-+    // change would not affect correctness!
-+
-     bool __ret = false;
--    const size_t __bitmasksize = 11;
--    for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
--      if (__m & _M_bit[__bitcur]
--	  && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
--	{
--	  __ret = true;
--	  break;
--	}
-+    if (__m == _M_bit[5])
-+      __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
-+    else
-+      {
-+	// Highest bitmask in ctype_base == 10, but extra in "C"
-+	// library for blank.
-+	const size_t __bitmasksize = 11;
-+	for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+	  if (__m & _M_bit[__bitcur])
-+	    {
-+	      if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-+		{
-+		  __ret = true;
-+		  break;
-+		}
-+	      else if (__m == _M_bit[__bitcur])
-+		break;
-+	    }
-+      }
-+
-     return __ret;
-   }
- 
-@@ -290,4 +312,5 @@ namespace std
- #endif
-   }
- #endif //  _GLIBCXX_USE_WCHAR_T
--}
-+
-+_GLIBCXX_END_NAMESPACE
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -53,12 +53,16 @@
-   template<typename _CharT>
-      messages<_CharT>::messages(__c_locale __cloc, const char* __s,
- 				size_t __refs)
--     : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
--     _M_name_messages(__s)
-+     : facet(__refs), _M_c_locale_messages(NULL),
-+     _M_name_messages(NULL)
-      {
--       char* __tmp = new char[std::strlen(__s) + 1];
--       std::strcpy(__tmp, __s);
-+       const size_t __len = std::strlen(__s) + 1;
-+       char* __tmp = new char[__len];
-+       std::memcpy(__tmp, __s, __len);
-        _M_name_messages = __tmp;
-+
-+       // Last to avoid leaking memory if new throws.
-+       _M_c_locale_messages = _S_clone_c_locale(__cloc);
-      }
- 
-   template<typename _CharT>
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -33,9 +33,14 @@
- 
- // Written by Benjamin Kosnik <bkoz at redhat.com>
- 
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_LOCALE__
- #define _LIBC
- #include <locale>
- #undef _LIBC
-+#else
-+#include <locale>
-+#endif
- #include <bits/c++locale_internal.h>
- 
- #ifdef __UCLIBC_MJN3_ONLY__
-@@ -206,7 +211,7 @@ namespace std
- 	  }
- 	break;
-       default:
--	;
-+	__ret = pattern();
-       }
-     return __ret;
-   }
-@@ -390,7 +395,9 @@ namespace std
- 	  __c_locale __old = __uselocale(__cloc);
- #else
- 	  // Switch to named locale so that mbsrtowcs will work.
--	  char* __old = strdup(setlocale(LC_ALL, NULL));
-+  	  char* __old = setlocale(LC_ALL, NULL);
-+          const size_t __llen = strlen(__old) + 1;
-+          char* __sav = new char[__llen];
- 	  setlocale(LC_ALL, __name);
- #endif
- 
-@@ -477,8 +484,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- 	      __uselocale(__old);
- #else
--	      setlocale(LC_ALL, __old);
--	      free(__old);
-+	      setlocale(LC_ALL, __sav);
-+	      delete [] __sav;
- #endif
- 	      __throw_exception_again;
- 	    }
-@@ -498,8 +505,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- 	  __uselocale(__old);
- #else
--	  setlocale(LC_ALL, __old);
--	  free(__old);
-+	  setlocale(LC_ALL, __sav);
-+	  delete [] __sav;
- #endif
- 	}
-     }
-@@ -545,8 +552,11 @@ namespace std
- 	  __c_locale __old = __uselocale(__cloc);
- #else
- 	  // Switch to named locale so that mbsrtowcs will work.
--	  char* __old = strdup(setlocale(LC_ALL, NULL));
--	  setlocale(LC_ALL, __name);
-+          char* __old = setlocale(LC_ALL, NULL);
-+          const size_t __llen = strlen(__old) + 1;
-+          char* __sav = new char[__llen];
-+          memcpy(__sav, __old, __llen);
-+          setlocale(LC_ALL, __name);
- #endif
- 
- #ifdef __UCLIBC_MJN3_ONLY__
-@@ -633,8 +643,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- 	      __uselocale(__old);
- #else
--	      setlocale(LC_ALL, __old);
--	      free(__old);
-+	      setlocale(LC_ALL, __sav);
-+	      delete [] __sav;
- #endif
-               __throw_exception_again;
- 	    }
-@@ -653,8 +663,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- 	  __uselocale(__old);
- #else
--	  setlocale(LC_ALL, __old);
--	  free(__old);
-+	  setlocale(LC_ALL, __sav);
-+	  delete [] __sav;
- #endif
- 	}
-     }
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -33,9 +33,14 @@
- 
- // Written by Benjamin Kosnik <bkoz at redhat.com>
- 
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_LOCALE__
- #define _LIBC
- #include <locale>
- #undef _LIBC
-+#else
-+#include <locale>
-+#endif
- #include <bits/c++locale_internal.h>
- 
- #ifdef __UCLIBC_MJN3_ONLY__
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h
-@@ -50,12 +50,21 @@
-     __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
- 				     size_t __refs)
-     : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
--    _M_name_timepunct(__s)
-+    _M_name_timepunct(NULL)
-     {
--      char* __tmp = new char[std::strlen(__s) + 1];
--      std::strcpy(__tmp, __s);
-+      const size_t __len = std::strlen(__s) + 1;
-+      char* __tmp = new char[__len];
-+      std::memcpy(__tmp, __s, __len);
-       _M_name_timepunct = __tmp;
--      _M_initialize_timepunct(__cloc);
-+
-+      try
-+	{ _M_initialize_timepunct(__cloc); }
-+      catch(...)
-+	{
-+	  delete [] _M_name_timepunct;
-+	  __throw_exception_again;
-+	}
-+
-     }
- 
-   template<typename _CharT>
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c_locale.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c_locale.h
-@@ -39,21 +39,23 @@
- #pragma GCC system_header
- 
- #include <cstring>              // get std::strlen
--#include <cstdio>               // get std::snprintf or std::sprintf
-+#include <cstdio>               // get std::vsnprintf or std::vsprintf
- #include <clocale>
- #include <langinfo.h>		// For codecvt
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix this
- #endif
--#ifdef __UCLIBC_HAS_LOCALE__
-+#ifdef _GLIBCXX_USE_ICONV
- #include <iconv.h>		// For codecvt using iconv, iconv_t
- #endif
--#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
--#include <libintl.h> 		// For messages
-+#ifdef HAVE_LIBINTL_H
-+#include <libintl.h>		// For messages
- #endif
-+#include <cstdarg>
- 
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning what is _GLIBCXX_C_LOCALE_GNU for
-+// psm: used in os/gnu-linux/ctype_noninline.h
- #endif
- #define _GLIBCXX_C_LOCALE_GNU 1
- 
-@@ -78,23 +80,25 @@ namespace std
- #else
-   typedef int*			__c_locale;
- #endif
--
--  // Convert numeric value of type _Tv to string and return length of
--  // string.  If snprintf is available use it, otherwise fall back to
--  // the unsafe sprintf which, in general, can be dangerous and should
-+  // Convert numeric value of type double to string and return length of
-+  // string.  If vsnprintf is available use it, otherwise fall back to
-+  // the unsafe vsprintf which, in general, can be dangerous and should
-   // be avoided.
--  template<typename _Tv>
--    int
--    __convert_from_v(char* __out,
--		     const int __size __attribute__ ((__unused__)),
--		     const char* __fmt,
--#ifdef __UCLIBC_HAS_XCLOCALE__
--		     _Tv __v, const __c_locale& __cloc, int __prec)
-+    inline int
-+    __convert_from_v(const __c_locale&
-+#ifndef __UCLIBC_HAS_XCLOCALE__
-+	__cloc __attribute__ ((__unused__))
-+#endif
-+		     ,
-+		     char* __out,
-+		     const int __size,
-+		     const char* __fmt, ...)
-     {
-+      va_list __args;
-+#ifdef __UCLIBC_HAS_XCLOCALE__
-+
-       __c_locale __old = __gnu_cxx::__uselocale(__cloc);
- #else
--		     _Tv __v, const __c_locale&, int __prec)
--    {
- # ifdef __UCLIBC_HAS_LOCALE__
-       char* __old = std::setlocale(LC_ALL, NULL);
-       char* __sav = new char[std::strlen(__old) + 1];
-@@ -103,7 +107,9 @@ namespace std
- # endif
- #endif
- 
--      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
-+      va_start(__args, __fmt);
-+      const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
-+      va_end(__args);
- 
- #ifdef __UCLIBC_HAS_XCLOCALE__
-       __gnu_cxx::__uselocale(__old);
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.cc
-@@ -53,11 +53,14 @@ namespace std
-       const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
- 					_M_c_locale_timepunct);
- #else
--      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      char* __old = setlocale(LC_ALL, NULL);
-+      const size_t __llen = strlen(__old) + 1;
-+      char* __sav = new char[__llen];
-+      memcpy(__sav, __old, __llen);
-       setlocale(LC_ALL, _M_name_timepunct);
-       const size_t __len = strftime(__s, __maxlen, __format, __tm);
--      setlocale(LC_ALL, __old);
--      free(__old);
-+      setlocale(LC_ALL, __sav);
-+      delete [] __sav;
- #endif
-       // Make sure __s is null terminated.
-       if (__len == 0)
-@@ -207,11 +210,14 @@ namespace std
-       const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
- 					_M_c_locale_timepunct);
- #else
--      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      char* __old = setlocale(LC_ALL, NULL);
-+      const size_t __llen = strlen(__old) + 1;
-+      char* __sav = new char[__llen];
-+      memcpy(__sav, __old, __llen);
-       setlocale(LC_ALL, _M_name_timepunct);
-       const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
--      setlocale(LC_ALL, __old);
--      free(__old);
-+      setlocale(LC_ALL, __sav);
-+      delete [] __sav;
- #endif
-       // Make sure __s is null terminated.
-       if (__len == 0)
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-@@ -31,6 +31,9 @@
- 
- #include <bits/c++config.h>
- #include <clocale>
-+#include <cstdlib>
-+#include <cstring>
-+#include <cstddef>
- 
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning clean this up
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch
deleted file mode 100644
index 9589822..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/301-missing-execinfo_h.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/boehm-gc/include/gc.h
-===================================================================
---- gcc-4.6.0.orig/boehm-gc/include/gc.h
-+++ gcc-4.6.0/boehm-gc/include/gc.h
-@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_of
- #if defined(__linux__) || defined(__GLIBC__)
- # 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
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch
deleted file mode 100644
index f02c98d..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/302-c99-snprintf.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/include/c_std/cstdio
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/include/c_std/cstdio
-+++ gcc-4.6.0/libstdc++-v3/include/c_std/cstdio
-@@ -136,7 +136,7 @@ namespace std
-   using ::vsprintf;
- } // namespace std
- 
--#if _GLIBCXX_USE_C99
-+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
- 
- #undef snprintf
- #undef vfscanf
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch
deleted file mode 100644
index db594cb..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/303-c99-complex-ugly-hack.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Index: gcc-4.6.0/libstdc++-v3/configure
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/configure
-+++ gcc-4.6.0/libstdc++-v3/configure
-@@ -18302,6 +18302,9 @@ $as_echo_n "checking for ISO C99 support
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* 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 ()
- {
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch
deleted file mode 100644
index f103765..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/304-index_macro.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/include/ext/rope
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/include/ext/rope
-+++ gcc-4.6.0/libstdc++-v3/include/ext/rope
-@@ -54,6 +54,9 @@
- #include <bits/gthr.h>
- #include <tr1/functional>
- 
-+/* cope w/ index defined as macro, SuSv3 proposal */
-+#undef index
-+
- # ifdef __GC
- #   define __GC_CONST const
- # else
-Index: gcc-4.6.0/libstdc++-v3/include/ext/ropeimpl.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/include/ext/ropeimpl.h
-+++ gcc-4.6.0/libstdc++-v3/include/ext/ropeimpl.h
-@@ -49,6 +49,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 _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch
deleted file mode 100644
index 8d9a4d8..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/305-libmudflap-susv3-legacy.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Index: gcc-4.6.0/libmudflap/mf-hooks2.c
-===================================================================
---- gcc-4.6.0.orig/libmudflap/mf-hooks2.c
-+++ gcc-4.6.0/libmudflap/mf-hooks2.c
-@@ -421,7 +421,7 @@ WRAPPER2(void, bzero, void *s, size_t n)
- {
-   TRACE ("%s\n", __PRETTY_FUNCTION__);
-   MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
--  bzero (s, n);
-+  memset (s, 0, n);
- }
- 
- 
-@@ -431,7 +431,7 @@ WRAPPER2(void, bcopy, const void *src, v
-   TRACE ("%s\n", __PRETTY_FUNCTION__);
-   MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
-   MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
--  bcopy (src, dest, n);
-+  memmove (dest, src, n);
- }
- 
- 
-@@ -441,7 +441,7 @@ WRAPPER2(int, bcmp, const void *s1, cons
-   TRACE ("%s\n", __PRETTY_FUNCTION__);
-   MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
-   MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
--  return bcmp (s1, s2, n);
-+  return n == 0 ? 0 : memcmp (s1, s2, n);
- }
- 
- 
-@@ -450,7 +450,7 @@ WRAPPER2(char *, index, const char *s, i
-   size_t n = strlen (s);
-   TRACE ("%s\n", __PRETTY_FUNCTION__);
-   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
--  return index (s, c);
-+  return strchr (s, c);
- }
- 
- 
-@@ -459,7 +459,7 @@ WRAPPER2(char *, rindex, const char *s,
-   size_t n = strlen (s);
-   TRACE ("%s\n", __PRETTY_FUNCTION__);
-   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
--  return rindex (s, c);
-+  return strrchr (s, c);
- }
- 
- /* XXX:  stpcpy, memccpy */
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch
deleted file mode 100644
index e99bf96..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/306-libstdc++-namespace.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -32,7 +32,8 @@
- //
- 
- // Written by Benjamin Kosnik <bkoz at redhat.com>
--
-+namespace std
-+{
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix prototypes for *textdomain funcs
- #endif
-@@ -116,3 +117,4 @@
- 	   this->_S_create_c_locale(this->_M_c_locale_messages, __s);
- 	 }
-      }
-+}
-Index: gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/uclibc/time_members.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/uclibc/time_members.h
-@@ -33,7 +33,8 @@
- //
- 
- // Written by Benjamin Kosnik <bkoz at redhat.com>
--
-+namespace std
-+{
-   template<typename _CharT>
-     __timepunct<_CharT>::__timepunct(size_t __refs)
-     : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-@@ -75,3 +76,4 @@
-       delete _M_data;
-       _S_destroy_c_locale(_M_c_locale_timepunct);
-     }
-+}
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch
deleted file mode 100644
index d35753a..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/64bithack.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-GCC has internal multilib handling code but it assumes a very specific rigid directory
-layout. The build system implementation of multilib layout is very generic and allows
-complete customisation of the library directories.
-
-This patch is a partial solution to allow any custom directories to be passed into gcc
-and handled correctly. It forces gcc to use the base_libdir (which is the current 
-directory, "."). We need to do this for each multilib that is configured as we don't
-know which compiler options may be being passed into the compiler. Since we have a compiler
-per mulitlib at this point that isn't an issue.
-
-The one problem is the target compiler is only going to work for the default multlilib at
-this point. Ideally we'd figure out which multilibs were being enabled with which paths
-and be able to patch these entries with a complete set of correct paths but this we
-don't have such code at this point. This is something the target gcc recipe should do 
-and override these platform defaults in its build config.
-
-RP 15/8/11
-
-Index: gcc-4_6-branch/gcc/config/i386/t-linux64
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/i386/t-linux64	2011-06-23 15:15:29.000000000 +0100
-+++ gcc-4_6-branch/gcc/config/i386/t-linux64	2011-08-15 13:09:03.772415848 +0100
-@@ -24,8 +24,8 @@
- # MULTILIB_OSDIRNAMES according to what is found on the target.
- 
- MULTILIB_OPTIONS = m64/m32
--MULTILIB_DIRNAMES = 64 32 
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_DIRNAMES = . .
-+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
- 
- LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
-Index: gcc-4_6-branch/gcc/config/mips/t-linux64
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/mips/t-linux64	2011-08-15 13:06:13.732415763 +0100
-+++ gcc-4_6-branch/gcc/config/mips/t-linux64	2011-08-15 13:09:11.452419446 +0100
-@@ -17,8 +17,8 @@
- # <http://www.gnu.org/licenses/>.
- 
- MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
--MULTILIB_DIRNAMES = n32 32 64
--MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
-+MULTILIB_DIRNAMES = . . .
-+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
- 
- EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
- 
-Index: gcc-4_6-branch/gcc/config/rs6000/t-linux64
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/rs6000/t-linux64	2011-08-15 13:06:25.272415822 +0100
-+++ gcc-4_6-branch/gcc/config/rs6000/t-linux64	2011-08-15 13:09:21.062415878 +0100
-@@ -32,11 +32,11 @@
- # MULTILIB_OSDIRNAMES according to what is found on the target.
- 
- MULTILIB_OPTIONS        = m64/m32 msoft-float
--MULTILIB_DIRNAMES       = 64 32 nof
-+MULTILIB_DIRNAMES       = . . .
- MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
- MULTILIB_EXCEPTIONS     = m64/msoft-float
- MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
--MULTILIB_OSDIRNAMES	= ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib) nof
-+MULTILIB_OSDIRNAMES	= ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
- MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
- 
- softfp_wrap_start := '\#ifndef __powerpc64__'
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch
deleted file mode 100644
index bc4ea5d..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/740-sh-pr24836.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Upstream-Status: Pending
-
-http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836
-
-Index: gcc-4.6.0/gcc/configure.ac
-===================================================================
---- gcc-4.6.0.orig/gcc/configure.ac
-+++ gcc-4.6.0/gcc/configure.ac
-@@ -2926,7 +2926,7 @@ foo:	.long	25
- 	tls_first_minor=14
- 	tls_as_opt="-m64 -Aesame --fatal-warnings"
- 	;;
--  sh-*-* | sh[34]-*-*)
-+  sh-*-* | sh[34]*-*-*)
-     conftest_s='
- 	.section ".tdata","awT", at progbits
- foo:	.long	25
-Index: gcc-4.6.0/gcc/configure
-===================================================================
---- gcc-4.6.0.orig/gcc/configure
-+++ gcc-4.6.0/gcc/configure
-@@ -22756,7 +22756,7 @@ foo:	.long	25
- 	tls_first_minor=14
- 	tls_as_opt="-m64 -Aesame --fatal-warnings"
- 	;;
--  sh-*-* | sh[34]-*-*)
-+  sh-*-* | sh[34]*-*-*)
-     conftest_s='
- 	.section ".tdata","awT", at progbits
- foo:	.long	25
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch
deleted file mode 100644
index 8c8046d..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/800-arm-bigendian.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Pending
-
-By Lennert Buytenhek <buytenh at wantstofly.org>
-Adds support for arm*b-linux* big-endian ARM targets
-
-See http://gcc.gnu.org/PR16350
-
-Index: gcc-4.6.0/gcc/config/arm/linux-elf.h
-===================================================================
---- gcc-4.6.0.orig/gcc/config/arm/linux-elf.h
-+++ gcc-4.6.0/gcc/config/arm/linux-elf.h
-@@ -51,7 +51,7 @@
- 
- #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
-Index: gcc-4.6.0/gcc/config.gcc
-===================================================================
---- gcc-4.6.0.orig/gcc/config.gcc
-+++ gcc-4.6.0/gcc/config.gcc
-@@ -822,6 +822,11 @@ arm*-*-linux*)			# ARM GNU/Linux with EL
- 	esac
- 	tmake_file="${tmake_file} t-linux arm/t-arm"
- 	case ${target} in
-+	arm*b-*)
-+		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
-+		;;
-+	esac
-+	case ${target} in
- 	arm*-*-linux-*eabi)
- 	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
- 	    tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch
deleted file mode 100644
index ce3e6b5..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/904-flatten-switch-stmt-00.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-Upstream-Status: Pending
-
-Hi,
-
-The attached patch makes sure that we create smaller object code for
-simple switch statements. We just make sure to flatten the switch
-statement into an if-else chain, basically.
-
-This fixes a size-regression as compared to gcc-3.4, as can be seen
-below.
-
-2007-04-15  Bernhard Fischer  <..>
-
-	* stmt.c (expand_case): Do not create a complex binary tree when
-	optimizing for size but rather use the simple ordered list.
-	(emit_case_nodes): do not emit jumps to the default_label when
-	optimizing for size.
-
-Not regtested so far.
-Comments?
-
-Attached is the test switch.c mentioned below.
-
-$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
-gcc-$i  -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
-$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
-gcc-$i  -UCHAIN -Os -o switch-$i.o -c switch.c ;done
-
-$ size switch-*.o
-   text	   data	    bss	    dec	    hex	filename
-    169	      0	      0	    169	     a9	switch-2.95.o
-    115	      0	      0	    115	     73	switch-3.3.o
-    103	      0	      0	    103	     67	switch-3.4.o
-    124	      0	      0	    124	     7c	switch-4.0.o
-    124	      0	      0	    124	     7c	switch-4.1.o
-    124	      0	      0	    124	     7c	switch-4.2.orig-HEAD.o
-     95	      0	      0	     95	     5f	switch-4.3-HEAD.o
-    124	      0	      0	    124	     7c	switch-4.3.orig-HEAD.o
-    166	      0	      0	    166	     a6	switch-CHAIN-2.95.o
-    111	      0	      0	    111	     6f	switch-CHAIN-3.3.o
-     95	      0	      0	     95	     5f	switch-CHAIN-3.4.o
-     95	      0	      0	     95	     5f	switch-CHAIN-4.0.o
-     95	      0	      0	     95	     5f	switch-CHAIN-4.1.o
-     95	      0	      0	     95	     5f	switch-CHAIN-4.2.orig-HEAD.o
-     95	      0	      0	     95	     5f	switch-CHAIN-4.3-HEAD.o
-     95	      0	      0	     95	     5f	switch-CHAIN-4.3.orig-HEAD.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.6.0/gcc/stmt.c
-===================================================================
---- gcc-4.6.0.orig/gcc/stmt.c
-+++ gcc-4.6.0/gcc/stmt.c
-@@ -2478,7 +2478,11 @@ expand_case (gimple stmt)
- 	     default code is emitted.  */
- 
- 	  use_cost_table = estimate_case_costs (case_list);
--	  balance_case_nodes (&case_list, NULL);
-+	  /* When optimizing for size, we want a straight list to avoid
-+	     jumps as much as possible. This basically creates an if-else
-+	     chain.  */
-+	  if (!optimize_size)
-+	    balance_case_nodes (&case_list, NULL);
- 	  emit_case_nodes (index, case_list, default_label, index_type);
- 	  if (default_label)
- 	    emit_jump (default_label);
-@@ -3046,6 +3050,7 @@ emit_case_nodes (rtx index, case_node_pt
- 	    {
- 	      if (!node_has_low_bound (node, index_type))
- 		{
-+		  if (!optimize_size) /* don't jl to the .default_label. */
- 		  emit_cmp_and_jump_insns (index,
- 					   convert_modes
- 					   (mode, imode,
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch
deleted file mode 100644
index 38856c2..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/COLLECT_GCC_OPTIONS.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream-Status: Pending
-
-#This patck added --sysroot into COLLECT_GCC_OPTIONS which is used to
-#invoke collect2.
-
-Index: gcc-4.6.0/gcc/gcc.c
-===================================================================
---- gcc-4.6.0.orig/gcc/gcc.c
-+++ gcc-4.6.0/gcc/gcc.c
-@@ -3948,6 +3948,15 @@ set_collect_gcc_options (void)
- 		sizeof ("COLLECT_GCC_OPTIONS=") - 1);
- 
-   first_time = TRUE;
-+#ifdef HAVE_LD_SYSROOT
-+  if (target_system_root_changed && target_system_root)
-+    {
-+      obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1);
-+      obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root));
-+      obstack_grow (&collect_obstack, "'", 1);
-+      first_time = FALSE;
-+    }
-+#endif
-   for (i = 0; (int) i < n_switches; i++)
-     {
-       const char *const *args;
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch
deleted file mode 100644
index 575e0e4..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-source: http://patchwork.ozlabs.org/patch/129800/
-Upstream-Status: Submitted
-
-ChangeLog
-        * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
-          (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
-
-        * cppdefault.c (cpp_include_defaults): replace hard coded "1" with
-          GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
-
-        * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
-          control whether sysroot should be prepended to gxx include dir.
-
-        * configure: Regenerate.
-
-Hi, this is a follow up for issue "http://codereview.appspot.com/4641076".
-
-The rationale for the patch copied from previous thread:
-=======================================
-The setup:
-
-Configuring a toolchain targeting x86-64 GNU Linux (Ubuntu Lucid), as a
-cross-compiler.  Using a sysroot to provide the Lucid headers+libraries,
-with the sysroot path being within the GCC install tree.  Want to use the
-Lucid system libstdc++ and headers, which means that I'm not
-building/installing libstdc++-v3.
-
-So, configuring with:
-  --with-sysroot="$SYSROOT"
-  --disable-libstdc++-v3 \
-  --with-gxx-include-dir="$SYSROOT/usr/include/c++/4.4" \
-(among other options).
-
-Hoping to support two usage models with this configuration, w.r.t. use of
-the sysroot:
-
-(1) somebody installs the sysroot in the normal location relative to the
-GCC install, and relocates the whole bundle (sysroot+GCC).  This works
-great AFAICT, GCC finds its includes (including the C++ includes) thanks
-to the add_standard_paths iprefix handling.
-
-(2) somebody installs the sysroot in a non-standard location, and uses
---sysroot to try to access it.  This works fine for the C headers, but
-doesn't work.
-
-For the C headers, add_standard_paths prepends the sysroot location to
-the /usr/include path (since that's what's specified in cppdefault.c for
-that path).  It doesn't do the same for the C++ include path, though
-(again, as specified in cppdefault.c).
-
-add_standard_paths doesn't attempt to relocate built-in include paths that
-start with the compiled-in sysroot location (e.g., the g++ include dir, in
-this case).  This isn't surprising really: normally you either prepend the
-sysroot location or you don't (as specified by cppdefault.c); none of the
-built-in paths normally *start* with the sysroot location and need to be
-relocated.  However, in this odd-ball case of trying to use the C++ headers
-from the sysroot, one of the paths *does* need to be relocated in this way.
-===========================
-Index: gcc-4_6-branch/gcc/Makefile.in
-===================================================================
---- gcc-4_6-branch.orig/gcc/Makefile.in	2012-03-04 09:33:36.000000000 -0800
-+++ gcc-4_6-branch/gcc/Makefile.in	2012-03-04 09:41:06.858672113 -0800
-@@ -587,6 +587,7 @@
- build_tooldir = $(exec_prefix)/$(target_noncanonical)
- # Directory in which the compiler finds target-independent g++ includes.
- gcc_gxx_include_dir = @gcc_gxx_include_dir@
-+gcc_gxx_include_dir_add_sysroot = @gcc_gxx_include_dir_add_sysroot@
- # Directory to search for site-specific includes.
- local_includedir = $(local_prefix)/include
- includedir = $(prefix)/include
-@@ -3964,6 +3965,7 @@
-   -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
-   -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
-   -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-+  -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
-   -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-   -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-Index: gcc-4_6-branch/gcc/configure.ac
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure.ac	2012-03-04 09:33:36.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure.ac	2012-03-04 09:41:06.862671939 -0800
-@@ -144,6 +144,15 @@
-   fi
- fi
- 
-+gcc_gxx_include_dir_add_sysroot=0
-+if test "${with_sysroot+set}" = set; then :
-+  gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
-+  if test "${gcc_gxx_without_sysroot}"; then :
-+    gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
-+    gcc_gxx_include_dir_add_sysroot=1
-+  fi
-+fi
-+
- AC_ARG_WITH(cpp_install_dir,
- [  --with-cpp-install-dir=DIR
-                           install the user visible C preprocessor in DIR
-@@ -4727,6 +4736,7 @@
- AC_SUBST(float_h_file)
- AC_SUBST(gcc_config_arguments)
- AC_SUBST(gcc_gxx_include_dir)
-+AC_SUBST(gcc_gxx_include_dir_add_sysroot)
- AC_SUBST(host_exeext)
- AC_SUBST(host_xm_file_list)
- AC_SUBST(host_xm_include_list)
-Index: gcc-4_6-branch/gcc/cppdefault.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/cppdefault.c	2012-03-03 01:03:17.000000000 -0800
-+++ gcc-4_6-branch/gcc/cppdefault.c	2012-03-04 09:41:06.862671939 -0800
-@@ -48,15 +48,18 @@
- = {
- #ifdef GPLUSPLUS_INCLUDE_DIR
-     /* Pick up GNU C++ generic include files.  */
--    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
-+    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
-+      GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- #endif
- #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
-     /* Pick up GNU C++ target-dependent include files.  */
--    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 1 },
-+    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
-+      GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
- #endif
- #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
-     /* Pick up GNU C++ backward and deprecated include files.  */
--    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
-+    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
-+      GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- #endif
- #ifdef GCC_INCLUDE_DIR
-     /* This is the dir for gcc's private headers.  */
-Index: gcc-4_6-branch/gcc/configure
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure	2012-03-04 09:33:36.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure	2012-03-04 09:41:12.462671816 -0800
-@@ -636,6 +636,7 @@
- host_xm_include_list
- host_xm_file_list
- host_exeext
-+gcc_gxx_include_dir_add_sysroot
- gcc_gxx_include_dir
- gcc_config_arguments
- float_h_file
-@@ -3313,6 +3314,15 @@
-   fi
- fi
- 
-+gcc_gxx_include_dir_add_sysroot=0
-+if test "${with_sysroot+set}" = set; then :
-+  gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
-+  if test "${gcc_gxx_without_sysroot}"; then :
-+    gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
-+    gcc_gxx_include_dir_add_sysroot=1
-+  fi
-+fi
-+
- 
- # Check whether --with-cpp_install_dir was given.
- if test "${with_cpp_install_dir+set}" = set; then :
-@@ -17504,7 +17514,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17507 "configure"
-+#line 17517 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -17610,7 +17620,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17613 "configure"
-+#line 17623 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -26141,6 +26151,7 @@
- 
- 
- 
-+
- 
- 
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch
deleted file mode 100644
index 59a9ec3..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-nolibfloat.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Upstream-Status: Pending
-
-# Dimitry Andric <dimitry at andric.com>, 2004-05-01
-#
-# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed
-#   anymore.  (The required functions are now in libgcc.)
-# 
-# Fixes errors like
-# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat
-# collect2: ld returned 1 exit status
-# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1
-# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat
-
-Index: gcc-4.6.0/gcc/config/arm/linux-elf.h
-===================================================================
---- gcc-4.6.0.orig/gcc/config/arm/linux-elf.h
-+++ gcc-4.6.0/gcc/config/arm/linux-elf.h
-@@ -60,7 +60,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"
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch
deleted file mode 100644
index 01bf80d..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/arm-softfloat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/gcc/config/arm/t-linux
-===================================================================
---- gcc-4.6.0.orig/gcc/config/arm/t-linux
-+++ gcc-4.6.0/gcc/config/arm/t-linux
-@@ -23,7 +23,10 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi
- 
- LIB1ASMSRC = arm/lib1funcs.asm
- LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
--	_arm_addsubdf3 _arm_addsubsf3
-+    _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
-+    _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
-+    _fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundisf _floatundidf
-+#	_arm_addsubdf3 _arm_addsubsf3
- 
- # MULTILIB_OPTIONS = mhard-float/msoft-float
- # MULTILIB_DIRNAMES = hard-float soft-float
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch
deleted file mode 100644
index 72ead31..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cache-amnesia.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
----
- gcc/configure    |    2 +-
- gcc/configure.ac |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: gcc-4.6.0/gcc/configure
-===================================================================
---- gcc-4.6.0.orig/gcc/configure
-+++ gcc-4.6.0/gcc/configure
-@@ -10898,7 +10898,7 @@ else
- 	saved_CFLAGS="${CFLAGS}"
- 	CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
- 	LDFLAGS="${LDFLAGS_FOR_BUILD}" \
--	${realsrcdir}/configure \
-+	CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
- 		--enable-languages=${enable_languages-all} \
- 		--target=$target_alias --host=$build_alias --build=$build_alias
- 	CFLAGS="${saved_CFLAGS}"
-Index: gcc-4.6.0/gcc/configure.ac
-===================================================================
---- gcc-4.6.0.orig/gcc/configure.ac
-+++ gcc-4.6.0/gcc/configure.ac
-@@ -1435,7 +1435,7 @@ else
- 	saved_CFLAGS="${CFLAGS}"
- 	CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
- 	LDFLAGS="${LDFLAGS_FOR_BUILD}" \
--	${realsrcdir}/configure \
-+	CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
- 		--enable-languages=${enable_languages-all} \
- 		--target=$target_alias --host=$build_alias --build=$build_alias
- 	CFLAGS="${saved_CFLAGS}"
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch
deleted file mode 100644
index 7310677..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/cpp-honour-sysroot.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
-preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location 
-rather than the --sysroot option specified on the commandline. If access to that directory is 
-permission denied (unreadable), gcc will error.
-
-This happens when ccache is in use due to the fact it uses preprocessed source files.
-
-The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix, 
--isystem, -isysroot happen and the correct sysroot is used.
-
-[YOCTO #2074]
-
-Upstream-Status: Pending
-
-RP 2012/04/13
-
-Index: gcc-4_6-branch/gcc/gcc.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/gcc.c	2012-04-13 12:24:37.939671140 +0000
-+++ gcc-4_6-branch/gcc/gcc.c	2012-04-13 12:24:54.439670688 +0000
-@@ -953,7 +953,7 @@
-                     %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0},
-   {".i", "@cpp-output", 0, 0, 0},
-   {"@cpp-output",
--   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-+   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-   {".s", "@assembler", 0, 0, 0},
-   {"@assembler",
-    "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
-Index: gcc-4_6-branch/gcc/cp/lang-specs.h
-===================================================================
---- gcc-4_6-branch.orig/gcc/cp/lang-specs.h	2012-04-13 12:25:01.019670594 +0000
-+++ gcc-4_6-branch/gcc/cp/lang-specs.h	2012-04-13 12:25:07.567670180 +0000
-@@ -64,5 +64,5 @@
-   {".ii", "@c++-cpp-output", 0, 0, 0},
-   {"@c++-cpp-output",
-    "%{!M:%{!MM:%{!E:\
--    cc1plus -fpreprocessed %i %(cc1_options) %2\
-+    cc1plus -fpreprocessed %i %I %(cc1_options) %2\
-     %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch
deleted file mode 100644
index 22c106d..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/disable_relax_pic_calls_flag.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-GCC: disable MASK_RELAX_PIC_CALLS bit
-
-The new feature added after 4.3.3
-"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html"
-will cause cc1plus eat up all the system memory when build webkit-gtk.
-The function mips_get_pic_call_symbol keeps on recursively calling itself.
-Disable this feature to walk aside the bug.
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu at intel.com>
-
-Index: gcc-4.6.0/gcc/configure
-===================================================================
---- gcc-4.6.0.orig/gcc/configure
-+++ gcc-4.6.0/gcc/configure
-@@ -24887,13 +24887,6 @@ $as_echo_n "checking assembler and linke
-         rm -f conftest.*
-       fi
-     fi
--    if test $gcc_cv_as_ld_jalr_reloc = yes; then
--      if test x$target_cpu_default = x; then
--        target_cpu_default=MASK_RELAX_PIC_CALLS
--      else
--        target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
--      fi
--    fi
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5
- $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; }
- 
-Index: gcc-4.6.0/gcc/configure.ac
-===================================================================
---- gcc-4.6.0.orig/gcc/configure.ac
-+++ gcc-4.6.0/gcc/configure.ac
-@@ -3764,13 +3764,6 @@ x:
-         rm -f conftest.*
-       fi
-     fi
--    if test $gcc_cv_as_ld_jalr_reloc = yes; then
--      if test x$target_cpu_default = x; then
--        target_cpu_default=MASK_RELAX_PIC_CALLS
--      else
--        target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
--      fi
--    fi
-     AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc)
- 
-     AC_CACHE_CHECK([linker for .eh_frame personality relaxation],
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch
deleted file mode 100644
index 57b03d2..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fix-for-ice-50099.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-
-This patch address an issue with the compiler generating an ICE
-during compliation of lttng-ust.
-
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50099
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <khem.raj at gmail.com>
-Signed-off-by: Saul Wold <sgw at linux.intel.com>
-
-Index: gcc/config/arm/arm.md
-===================================================================
---- gcc-4.6.0/gcc/config/arm/arm.md	(revision 178135)
-+++ gcc-4.6.0/gcc/config/arm/arm.md	(working copy)
-@@ -4217,6 +4217,7 @@ (define_split
-   "TARGET_32BIT"
-   [(set (match_dup 0) (ashiftrt:SI (match_dup 1) (const_int 31)))]
- {
-+  rtx srcop = operands[1];
-   rtx lo_part = gen_lowpart (SImode, operands[0]);
-   enum machine_mode src_mode = GET_MODE (operands[1]);
- 
-@@ -4224,14 +4225,21 @@ (define_split
-       && !reg_overlap_mentioned_p (operands[0], operands[1]))
-     emit_clobber (operands[0]);
- 
-+  if (TARGET_ARM && src_mode == QImode
-+      && !arm_reg_or_extendqisi_mem_op (srcop, QImode))
-+    {
-+      rtx dest = gen_lowpart (QImode, lo_part);
-+      emit_move_insn (dest, srcop);
-+      srcop = dest;
-+    }
-   if (!REG_P (lo_part) || src_mode != SImode
--      || !rtx_equal_p (lo_part, operands[1]))
-+      || !rtx_equal_p (lo_part, srcop))
-     {
-       if (src_mode == SImode)
--        emit_move_insn (lo_part, operands[1]);
-+        emit_move_insn (lo_part, srcop);
-       else
-         emit_insn (gen_rtx_SET (VOIDmode, lo_part,
--				gen_rtx_SIGN_EXTEND (SImode, operands[1])));
-+				gen_rtx_SIGN_EXTEND (SImode, srcop)));
-       operands[1] = lo_part;
-     }
-   operands[0] = gen_highpart (SImode, operands[0]);
-
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch
deleted file mode 100644
index 5a89559..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/fortran-cross-compile-hack.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
-  used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
-  directory.
-
-Index: gcc-4.5+svnr155514/libgfortran/configure
-===================================================================
---- gcc-4.5+svnr155514.orig/libgfortran/configure	2009-12-29 22:02:01.000000000 -0800
-+++ gcc-4.5+svnr155514/libgfortran/configure	2009-12-30 08:12:40.889091657 -0800
-@@ -11655,7 +11655,7 @@ CC="$lt_save_CC"
- 
- # We need gfortran to compile parts of the library
- #AC_PROG_FC(gfortran)
--FC="$GFORTRAN"
-+#FC="$GFORTRAN"
- ac_ext=${ac_fc_srcext-f}
- ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
- ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-Index: gcc-4.5+svnr155514/libgfortran/configure.ac
-===================================================================
---- gcc-4.5+svnr155514.orig/libgfortran/configure.ac	2009-12-29 22:02:01.000000000 -0800
-+++ gcc-4.5+svnr155514/libgfortran/configure.ac	2009-12-30 08:12:13.453094218 -0800
-@@ -187,7 +187,7 @@ AC_SUBST(enable_static)
- 
- # We need gfortran to compile parts of the library
- #AC_PROG_FC(gfortran)
--FC="$GFORTRAN"
-+#FC="$GFORTRAN"
- AC_PROG_FC(gfortran)
- 
- # extra LD Flags which are required for targets
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
deleted file mode 100644
index ce82740..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
----
- configure    |    2 +-
- configure.ac |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: gcc-4.6.0/configure.ac
-===================================================================
---- gcc-4.6.0.orig/configure.ac
-+++ gcc-4.6.0/configure.ac
-@@ -3073,7 +3073,7 @@ fi
- # for target_alias and gcc doesn't manage it consistently.
- target_configargs="--cache-file=./config.cache ${target_configargs}"
- 
--FLAGS_FOR_TARGET=
-+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
- case " $target_configdirs " in
-  *" newlib "*)
-   case " $target_configargs " in
-Index: gcc-4.6.0/configure
-===================================================================
---- gcc-4.6.0.orig/configure
-+++ gcc-4.6.0/configure
-@@ -7594,7 +7594,7 @@ fi
- # for target_alias and gcc doesn't manage it consistently.
- target_configargs="--cache-file=./config.cache ${target_configargs}"
- 
--FLAGS_FOR_TARGET=
-+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
- case " $target_configdirs " in
-  *" newlib "*)
-   case " $target_configargs " in
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
deleted file mode 100644
index 6d02f71..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-Upstream-Status: Pending
-
-Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it.
-
-This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET.
-
-Other changes I had to do include:
-
-- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though.
-
-- passing the right CFLAGS to configure scripts as exported environment variables
-
-I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do.
-
-Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3?
-
-Paolo
-
-2008-02-19  Paolo Bonzini  <bonzini at gnu.org>
-
-        PR bootstrap/32009
-        PR bootstrap/32161
-
-	* configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Compute here.
-	* configure: Regenerate.
-
-	* Makefile.def: Define stage_libcflags for all bootstrap stages.
-	* Makefile.tpl (BOOT_LIBCFLAGS, STAGE2_LIBCFLAGS, STAGE3_LIBCFLAGS,
-	STAGE4_LIBCFLAGS): New.
-	(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Subst from autoconf, without
-	$(SYSROOT_CFLAGS_FOR_TARGET) and $(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
-	(BASE_TARGET_EXPORTS): Append them here to C{,XX}FLAGS.
-	(EXTRA_TARGET_FLAGS): Append them here to {LIB,}C{,XX}FLAGS.
-	(configure-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags
-	for target modules.  Don't export LIBCFLAGS.
-	(all-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags; pass
-	$(BASE_FLAGS_TO_PASS) where [+args+] was passed, and [+args+] after
-	the overridden CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
-	(invocations of `all'): Replace $(TARGET_FLAGS_TO_PASS) with
-	$(EXTRA_TARGET_FLAGS), $(FLAGS_TO_PASS) with $(EXTRA_HOST_FLAGS).
-	* Makefile.in: Regenerate.
-
-config:
-2008-02-19  Paolo Bonzini  <bonzini at gnu.org>
-
-	PR bootstrap/32009
-	* mh-ppc-darwin (BOOT_CFLAGS): Reenable.
-
-gcc:
-2008-02-19  Paolo Bonzini  <bonzini at gnu.org>
-
-	PR bootstrap/32009
-	* doc/install.texi: Correct references to CFLAGS, replacing them
-	with BOOT_CFLAGS.  Document flags used during bootstrap for
-	target libraries.
-
-
----
- Makefile.def           |   25 
- Makefile.in            | 1845 ++++++++++++++++++++++++++++++-------------------
- Makefile.tpl           |   91 +-
- config/mh-ppc-darwin   |    3 
- configure              |   36 
- configure.ac           |   32 
- gcc/Makefile.in        |    2 
- gcc/configure          |    6 
- gcc/configure.ac       |    3 
- gcc/doc/install.texi   |   56 -
- libiberty/Makefile.in  |  162 ++--
- libiberty/configure    |   46 -
- libiberty/configure.ac |   43 -
- 13 files changed, 1454 insertions(+), 896 deletions(-)
-
-Index: gcc-4.6.0/configure
-===================================================================
---- gcc-4.6.0.orig/configure
-+++ gcc-4.6.0/configure
-@@ -6785,6 +6785,38 @@ if test "x$CXXFLAGS_FOR_TARGET" = x; the
- fi
- 
- 
-+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
-+# might be empty or "-g".  We don't require a C++ compiler, so CXXFLAGS
-+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
-+# We want to ensure that TARGET libraries (which we know are built with
-+# gcc) are built with "-O2 -g", so include those options when setting
-+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
-+if test "x$CFLAGS_FOR_TARGET" = x; then
-+  CFLAGS_FOR_TARGET=$CFLAGS
-+  case " $CFLAGS " in
-+    *" -O2 "*) ;;
-+    *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
-+  esac
-+  case " $CFLAGS " in
-+    *" -g "* | *" -g3 "*) ;;
-+    *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
-+  esac
-+fi
-+
-+
-+if test "x$CXXFLAGS_FOR_TARGET" = x; then
-+  CXXFLAGS_FOR_TARGET=$CXXFLAGS
-+  case " $CXXFLAGS " in
-+    *" -O2 "*) ;;
-+    *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
-+  esac
-+  case " $CXXFLAGS " in
-+    *" -g "* | *" -g3 "*) ;;
-+    *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
-+  esac
-+fi
-+
-+
- # Handle --with-headers=XXX.  If the value is not "yes", the contents of
- # the named directory are copied to $(tooldir)/sys-include.
- if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch
deleted file mode 100644
index 70d3c53..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-There would be an "Argument list too long" error when the
-build directory is longer than 200, this is caused by:
-
-headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`
-
-The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
-it, use the $(sort list) of GNU make which can handle the too long list
-would fix the problem, the header would be short enough after sorted.
-The "tr ' ' '\012'" was used for translating the space to "\n", the
-$(sort list) doesn't need this.
-
-Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
-
-Upstream-Status: Pending
----
- gcc/Makefile.in |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -4553,7 +4553,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
- # We keep the directory structure for files in config or c-family and .def
- # files. All other files are flattened to a single directory.
- 	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
--	headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \
-+	headers="$(sort $(PLUGIN_HEADERS))"; \
- 	srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
- 	for file in $$headers; do \
- 	  if [ -f $$file ] ; then \
--- 
-1.7.10.2
-
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch
deleted file mode 100644
index 4419a20..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-arm-set-cost.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status:Backport
-2011-08-18  Richard Sandiford  <richard.sandiford at linaro.org>
-
- 	gcc/
- 	Backport from mainline:
- 
-	2011-08-18  Richard Sandiford  <richard.sandiford at linaro.org>
-
-	* config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
-	(arm_size_rtx_costs): Likewise.
-
-=== modified file 'gcc/config/arm/arm.c'
---- old/gcc/config/arm/arm.c	2011-08-12 08:08:31 +0000
-+++ new/gcc/config/arm/arm.c	2011-08-18 13:53:37 +0000
-@@ -7464,6 +7464,9 @@
- 	*total = COSTS_N_INSNS (4);
-       return true;
- 
-+    case SET:
-+      return false;
-+
-     default:
-       *total = COSTS_N_INSNS (4);
-       return false;
-@@ -7811,6 +7814,9 @@
-       *total = COSTS_N_INSNS (1) + 1;
-       return true;
- 
-+    case SET:
-+      return false;
-+
-     default:
-       if (mode != VOIDmode)
- 	*total = COSTS_N_INSNS (ARM_NUM_REGS (mode));
-
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch
deleted file mode 100644
index 5eaeb05..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-flags-for-build.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4_6-branch/Makefile.def
-===================================================================
---- gcc-4_6-branch.orig/Makefile.def	2012-03-03 01:08:03.000000000 -0800
-+++ gcc-4_6-branch/Makefile.def	2012-03-04 09:19:02.430607447 -0800
-@@ -242,6 +242,7 @@
- flags_to_pass = { flag= BISON ; };
- flags_to_pass = { flag= CC_FOR_BUILD ; };
- flags_to_pass = { flag= CFLAGS_FOR_BUILD ; };
-+flags_to_pass = { flag= CPPFLAGS_FOR_BUILD ; };
- flags_to_pass = { flag= CXX_FOR_BUILD ; };
- flags_to_pass = { flag= EXPECT ; };
- flags_to_pass = { flag= FLEX ; };
-Index: gcc-4_6-branch/gcc/Makefile.in
-===================================================================
---- gcc-4_6-branch.orig/gcc/Makefile.in	2012-03-03 01:03:17.000000000 -0800
-+++ gcc-4_6-branch/gcc/Makefile.in	2012-03-04 09:19:02.430607447 -0800
-@@ -770,7 +770,7 @@
- 
- # Native linker and preprocessor flags.  For x-fragment overrides.
- BUILD_LDFLAGS=@BUILD_LDFLAGS@
--BUILD_CPPFLAGS=$(ALL_CPPFLAGS)
-+BUILD_CPPFLAGS=$(INCLUDES) @BUILD_CPPFLAGS@ $(X_CPPFLAGS)
- 
- # Actual name to use when installing a native compiler.
- GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
-Index: gcc-4_6-branch/gcc/configure.ac
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure.ac	2012-03-03 01:17:45.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure.ac	2012-03-04 09:19:02.430607447 -0800
-@@ -1774,16 +1774,18 @@
- # Also, we cannot run fixincludes.
- 
- # These are the normal (build=host) settings:
--CC_FOR_BUILD='$(CC)'		AC_SUBST(CC_FOR_BUILD)
--BUILD_CFLAGS='$(ALL_CFLAGS)'	AC_SUBST(BUILD_CFLAGS)
--BUILD_LDFLAGS='$(LDFLAGS)'	AC_SUBST(BUILD_LDFLAGS)
--STMP_FIXINC=stmp-fixinc		AC_SUBST(STMP_FIXINC)
-+CC_FOR_BUILD='$(CC)'			AC_SUBST(CC_FOR_BUILD)
-+BUILD_CFLAGS='$(ALL_CFLAGS)'		AC_SUBST(BUILD_CFLAGS)
-+BUILD_LDFLAGS='$(LDFLAGS)'		AC_SUBST(BUILD_LDFLAGS)
-+BUILD_CPPFLAGS='$(ALL_CPPFLAGS)'	AC_SUBST(BUILD_CPPFLAGS)
-+STMP_FIXINC=stmp-fixinc			AC_SUBST(STMP_FIXINC)
- 
- # And these apply if build != host, or we are generating coverage data
- if test x$build != x$host || test "x$coverage_flags" != x
- then
-     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
-     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
-+    BUILD_CPPFLAGS='$(CPPFLAGS_FOR_BUILD)'
- fi
- 
- # Expand extra_headers to include complete path.
-Index: gcc-4_6-branch/Makefile.in
-===================================================================
---- gcc-4_6-branch.orig/Makefile.in	2012-03-03 01:08:03.000000000 -0800
-+++ gcc-4_6-branch/Makefile.in	2012-03-04 09:19:02.446607448 -0800
-@@ -338,6 +338,7 @@
- AS_FOR_BUILD = @AS_FOR_BUILD@
- CC_FOR_BUILD = @CC_FOR_BUILD@
- CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
-+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
- CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
- CXX_FOR_BUILD = @CXX_FOR_BUILD@
- DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
-@@ -691,6 +692,7 @@
- 	"BISON=$(BISON)" \
- 	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- 	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
-+	"CPPFLAGS_FOR_BUILD=$(CPPFLAGS_FOR_BUILD)" \
- 	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
- 	"EXPECT=$(EXPECT)" \
- 	"FLEX=$(FLEX)" \
-Index: gcc-4_6-branch/gcc/configure
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure	2012-03-03 01:17:45.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure	2012-03-04 09:19:15.638608087 -0800
-@@ -703,6 +703,7 @@
- LIBTOOL
- collect2
- STMP_FIXINC
-+BUILD_CPPFLAGS
- BUILD_LDFLAGS
- BUILD_CFLAGS
- CC_FOR_BUILD
-@@ -4842,7 +4843,7 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
- $as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
- 
--if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
-+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
-   have_gnat=yes
- else
-   have_gnat=no
-@@ -11372,6 +11373,7 @@
- CC_FOR_BUILD='$(CC)'
- BUILD_CFLAGS='$(ALL_CFLAGS)'
- BUILD_LDFLAGS='$(LDFLAGS)'
-+BUILD_CPPFLAGS='$(ALL_CPPFLAGS)'
- STMP_FIXINC=stmp-fixinc
- 
- # And these apply if build != host, or we are generating coverage data
-@@ -11379,6 +11381,7 @@
- then
-     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
-     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
-+    BUILD_CPPFLAGS='$(CPPFLAGS_FOR_BUILD)'
- fi
- 
- # Expand extra_headers to include complete path.
-@@ -17495,7 +17498,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17498 "configure"
-+#line 17501 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -17601,7 +17604,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17604 "configure"
-+#line 17607 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-Index: gcc-4_6-branch/Makefile.tpl
-===================================================================
---- gcc-4_6-branch.orig/Makefile.tpl	2012-03-03 01:08:03.000000000 -0800
-+++ gcc-4_6-branch/Makefile.tpl	2012-03-04 09:19:02.454607448 -0800
-@@ -341,6 +341,7 @@
- AS_FOR_BUILD = @AS_FOR_BUILD@
- CC_FOR_BUILD = @CC_FOR_BUILD@
- CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
-+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
- CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
- CXX_FOR_BUILD = @CXX_FOR_BUILD@
- DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
-Index: gcc-4_6-branch/configure.ac
-===================================================================
---- gcc-4_6-branch.orig/configure.ac	2012-03-03 01:17:45.000000000 -0800
-+++ gcc-4_6-branch/configure.ac	2012-03-04 09:19:02.454607448 -0800
-@@ -3123,6 +3123,7 @@
- # our build compiler if desired.
- if test x"${build}" = x"${host}" ; then
-   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
-+  CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
-   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
-   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
- fi
-@@ -3189,6 +3190,7 @@
- AC_SUBST(AS_FOR_BUILD)
- AC_SUBST(CC_FOR_BUILD)
- AC_SUBST(CFLAGS_FOR_BUILD)
-+AC_SUBST(CPPFLAGS_FOR_BUILD)
- AC_SUBST(CXXFLAGS_FOR_BUILD)
- AC_SUBST(CXX_FOR_BUILD)
- AC_SUBST(DLLTOOL_FOR_BUILD)
-Index: gcc-4_6-branch/configure
-===================================================================
---- gcc-4_6-branch.orig/configure	2012-03-03 01:17:45.000000000 -0800
-+++ gcc-4_6-branch/configure	2012-03-04 09:19:02.458607448 -0800
-@@ -617,6 +617,7 @@
- DLLTOOL_FOR_BUILD
- CXX_FOR_BUILD
- CXXFLAGS_FOR_BUILD
-+CPPFLAGS_FOR_BUILD
- CFLAGS_FOR_BUILD
- CC_FOR_BUILD
- AS_FOR_BUILD
-@@ -7644,6 +7645,7 @@
- # our build compiler if desired.
- if test x"${build}" = x"${host}" ; then
-   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
-+  CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
-   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
-   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
- fi
-@@ -7709,6 +7711,7 @@
- 
- 
- 
-+
- 
- 
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch
deleted file mode 100644
index 35170e2..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-dir-extend.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Upstream-Status: Pending
-
-Add /sw/include and /opt/include based on the original
-zecke-no-host-includes.patch patch.  The original patch checked for
-/usr/include, /sw/include and /opt/include and then triggered a failure and
-aborted.
-
-Instead, we add the two missing items to the current scan.  If the user
-wants this to be a failure, they can add "-Werror=poison-system-directories".
-
-Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
-
-Index: gcc-4.6.0/gcc/incpath.c
-===================================================================
---- gcc-4.6.0.orig/gcc/incpath.c
-+++ gcc-4.6.0/gcc/incpath.c
-@@ -363,7 +363,9 @@ merge_include_chains (const char *sysroo
-          {
-           if ((!strncmp (p->name, "/usr/include", 12))
-               || (!strncmp (p->name, "/usr/local/include", 18))
--              || (!strncmp (p->name, "/usr/X11R6/include", 18)))
-+              || (!strncmp (p->name, "/usr/X11R6/include", 18))
-+              || (!strncmp (p->name, "/sw/include", 11))
-+              || (!strncmp (p->name, "/opt/include", 12)))
-             warning (OPT_Wpoison_system_directories,
-                      "include location \"%s\" is unsafe for "
-                      "cross-compilation",
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch
deleted file mode 100644
index a44e86c..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-poison-system-directories.patch
+++ /dev/null
@@ -1,223 +0,0 @@
-Upstream-Status: Inappropriate [distribution: codesourcery]
-
-       gcc/
-       2008-07-02  Joseph Myers  <joseph at codesourcery.com>
-       * c-incpath.c: Include toplev.h.
-       (merge_include_chains): Use warning instead of cpp_error for
-       system directory poisoning diagnostic.
-       * Makefile.in (c-incpath.o): Depend on toplev.h.
-       * gcc.c (LINK_COMMAND_SPEC): Pass
-       --error-poison-system-directories if
-       -Werror=poison-system-directories.
-
-       2007-06-13  Joseph Myers  <joseph at codesourcery.com>
-       * common.opt (--Wno-poison-system-directories): New.
-       * doc/invoke.texi (-Wno-poison-system-directories): Document.
-       * c-incpath.c: Include flags.h.
-       (merge_include_chains): Check flag_poison_system_directories.
-       * gcc.c (LINK_COMMAND_SPEC): Pass --no-poison-system-directories
-       to linker if -Wno-poison-system-directories.
-       * Makefile.in (c-incpath.o): Depend on $(FLAGS_H).
-
-       2007-03-20  Daniel Jacobowitz  <dan at codesourcery.com>
-                   Joseph Myers  <joseph at codesourcery.com>
-       * configure.ac (--enable-poison-system-directories): New option.
-       * configure, config.in: Regenerate.
-       * c-incpath.c (merge_include_chains): If
-       ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of
-       /usr/include, /usr/local/include or /usr/X11R6/include.
-
-Index: gcc-4_6-branch/gcc/common.opt
-===================================================================
---- gcc-4_6-branch.orig/gcc/common.opt	2012-03-03 01:03:17.000000000 -0800
-+++ gcc-4_6-branch/gcc/common.opt	2012-03-04 09:24:54.410624483 -0800
-@@ -567,6 +567,10 @@
- Common Var(warn_padded) Warning
- Warn when padding is required to align structure members
- 
-+Wpoison-system-directories
-+Common Var(flag_poison_system_directories) Init(1) Warning
-+Warn for -I and -L options using system directories if cross compiling
-+
- Wshadow
- Common Var(warn_shadow) Warning
- Warn when one local variable shadows another
-Index: gcc-4_6-branch/gcc/config.in
-===================================================================
---- gcc-4_6-branch.orig/gcc/config.in	2012-03-03 01:03:17.000000000 -0800
-+++ gcc-4_6-branch/gcc/config.in	2012-03-04 09:24:54.410624483 -0800
-@@ -144,6 +144,12 @@
- #endif
- 
- 
-+/* Define to warn for use of native system header directories */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+#endif
-+
-+
- /* Define if you want all operations on RTL (the basic data structure of the
-    optimizer and back end) to be checked for dynamic type safety at runtime.
-    This is quite expensive. */
-Index: gcc-4_6-branch/gcc/configure.ac
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure.ac	2012-03-04 09:22:07.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure.ac	2012-03-04 09:24:54.410624483 -0800
-@@ -4692,6 +4692,16 @@
- fi)
- AC_SUBST(slibdir)
- 
-+AC_ARG_ENABLE([poison-system-directories],
-+             AS_HELP_STRING([--enable-poison-system-directories],
-+                            [warn for use of native system header directories]),,
-+             [enable_poison_system_directories=no])
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+           [1],
-+           [Define to warn for use of native system header directories])
-+fi
-+
- # Substitute configuration variables
- AC_SUBST(subdirs)
- AC_SUBST(srcdir)
-Index: gcc-4_6-branch/gcc/doc/invoke.texi
-===================================================================
---- gcc-4_6-branch.orig/gcc/doc/invoke.texi	2012-03-03 00:46:39.000000000 -0800
-+++ gcc-4_6-branch/gcc/doc/invoke.texi	2012-03-04 09:24:54.414624482 -0800
-@@ -257,6 +257,7 @@
- -Woverlength-strings  -Wpacked  -Wpacked-bitfield-compat  -Wpadded @gol
- -Wparentheses  -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
- -Wpointer-arith  -Wno-pointer-to-int-cast @gol
-+-Wno-poison-system-directories @gol
- -Wredundant-decls @gol
- -Wreturn-type  -Wsequence-point  -Wshadow @gol
- -Wsign-compare  -Wsign-conversion  -Wstack-protector @gol
-@@ -3782,6 +3783,14 @@
-  for most targets, it is made up of code and thus requires the stack
-  to be made executable in order for the program to work properly.
- 
-+ at item -Wno-poison-system-directories
-+ at opindex Wno-poison-system-directories
-+Do not warn for @option{-I} or @option{-L} options using system
-+directories such as @file{/usr/include} when cross compiling.  This
-+option is intended for use in chroot environments when such
-+directories contain the correct headers and libraries for the target
-+system rather than the host.
-+
- @item -Wfloat-equal
- @opindex Wfloat-equal
- @opindex Wno-float-equal
-Index: gcc-4_6-branch/gcc/gcc.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/gcc.c	2012-03-03 01:03:17.000000000 -0800
-+++ gcc-4_6-branch/gcc/gcc.c	2012-03-04 09:24:54.418624482 -0800
-@@ -659,6 +659,8 @@
-     %{flto} %{flto=*} %l " LINK_PIE_SPEC \
-    "%X %{o*} %{e*} %{N} %{n} %{r}\
-     %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\
-+    %{Wno-poison-system-directories:--no-poison-system-directories}\
-+    %{Werror=poison-system-directories:--error-poison-system-directories}\
-     %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
-     %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
-     %(mflib) " STACK_SPLIT_SPEC "\
-Index: gcc-4_6-branch/gcc/incpath.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/incpath.c	2012-03-03 01:03:17.000000000 -0800
-+++ gcc-4_6-branch/gcc/incpath.c	2012-03-04 09:24:54.418624482 -0800
-@@ -353,6 +353,24 @@
- 	}
-       fprintf (stderr, _("End of search list.\n"));
-     }
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+  if (flag_poison_system_directories)
-+    {
-+       struct cpp_dir *p;
-+
-+       for (p = heads[QUOTE]; p; p = p->next)
-+         {
-+          if ((!strncmp (p->name, "/usr/include", 12))
-+              || (!strncmp (p->name, "/usr/local/include", 18))
-+              || (!strncmp (p->name, "/usr/X11R6/include", 18)))
-+            warning (OPT_Wpoison_system_directories,
-+                     "include location \"%s\" is unsafe for "
-+                     "cross-compilation",
-+                     p->name);
-+         }
-+    }
-+#endif
- }
- 
- /* Use given -I paths for #include "..." but not #include <...>, and
-Index: gcc-4_6-branch/gcc/Makefile.in
-===================================================================
---- gcc-4_6-branch.orig/gcc/Makefile.in	2012-03-04 09:22:05.000000000 -0800
-+++ gcc-4_6-branch/gcc/Makefile.in	2012-03-04 09:24:54.418624482 -0800
-@@ -2179,7 +2179,7 @@
- 
- incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
- 		intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
--		$(MACHMODE_H)
-+		$(MACHMODE_H) $(FLAGS_H) toplev.h
- 
- prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \
- 	Makefile $(BASEVER)
-Index: gcc-4_6-branch/gcc/configure
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure	2012-03-04 09:22:07.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure	2012-03-04 09:25:31.502626277 -0800
-@@ -912,6 +912,7 @@
- enable_maintainer_mode
- enable_version_specific_runtime_libs
- with_slibdir
-+enable_poison_system_directories
- enable_plugin
- enable_libquadmath_support
- '
-@@ -1623,6 +1624,8 @@
-   --enable-version-specific-runtime-libs
-                           specify that runtime libraries should be
-                           installed in a compiler-specific directory
-+  --enable-poison-system-directories
-+                          warn for use of native system header directories
-   --enable-plugin         enable plugin support
-   --disable-libquadmath-support
-                           disable libquadmath support for Fortran
-@@ -17498,7 +17501,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17501 "configure"
-+#line 17504 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -17604,7 +17607,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17607 "configure"
-+#line 17610 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -26125,6 +26128,19 @@
- 
- 
- 
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+  enableval=$enable_poison_system_directories;
-+else
-+  enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+
-+fi
-+
- # Substitute configuration variables
- 
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch
deleted file mode 100644
index 1648b3b..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-uclibc-locale-ctype_touplow_t.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Upstream-Status: Pending
-
-Index: gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/generic/c_locale.h
-+++ gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.h
-@@ -41,13 +41,22 @@
- 
- #include <clocale>
- 
-+#ifdef __UCLIBC__
-+#include <features.h>
-+#include <ctype.h>
-+#endif
-+
- #define _GLIBCXX_NUM_CATEGORIES 0
- 
- namespace std _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
- 
-+#ifdef __UCLIBC__
-+  typedef __ctype_touplow_t*	__c_locale;
-+#else
-   typedef int*			__c_locale;
-+#endif
- 
-   // Convert numeric value of type double and long double to string and
-   // return length of string.  If vsnprintf is available use it, otherwise
-Index: gcc-4.6.0/libstdc++-v3/config/os/gnu-linux/ctype_base.h
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/os/gnu-linux/ctype_base.h
-+++ gcc-4.6.0/libstdc++-v3/config/os/gnu-linux/ctype_base.h
-@@ -34,6 +34,11 @@
- 
- // Information as gleaned from /usr/include/ctype.h
- 
-+#ifdef __UCLIBC__
-+#include <features.h>
-+#include <ctype.h>
-+#endif
-+
- namespace std _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
-@@ -42,7 +47,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
-   struct ctype_base
-   {
-     // Non-standard typedefs.
-+#ifdef __UCLIBC__
-+    typedef const __ctype_touplow_t*	__to_type;
-+#else
-     typedef const int* 		__to_type;
-+#endif
- 
-     // NB: Offsets into ctype<char>::_M_table force a particular size
-     // on the mask type. Because of this, we don't use an enum.
-Index: gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.cc
-===================================================================
---- gcc-4.6.0.orig/libstdc++-v3/config/locale/generic/c_locale.cc
-+++ gcc-4.6.0/libstdc++-v3/config/locale/generic/c_locale.cc
-@@ -264,5 +264,10 @@ _GLIBCXX_END_NAMESPACE_VERSION
- #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
- #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
-   extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
-+#ifdef __UCLIBC__
-+// This is because __c_locale is of type __ctype_touplow_t* which is short on uclibc. for glibc its int*
-+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPs, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPs);
-+#else
- _GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
-+#endif
- #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch
deleted file mode 100644
index 94b61cd..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/gcc-with-linker-hash-style.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem at gmail.com>
-
-commit 3cb9bbfa927aa187048534f9069202c017a78e38
-Author: ppluzhnikov <ppluzhnikov at 138bc75d-0d04-0410-961f-82ee72b054a4>
-Date:   Wed May 11 18:28:14 2011 +0000
-
-    2011-05-11  Satoru Takabayashi  <satorux at google.com>
-    	    Paul Pluzhnikov  <ppluzhnikov at google.com>
-    
-    	* gcc/doc/install.texi (Configuration): Document
-    	--with-linker-hash-style.
-    	* gcc/gcc.c (init_spec): Handle LINKER_HASH_STYLE.
-    	* gcc/config.in: Add LINKER_HASH_STYLE.
-    	* gcc/configure.ac: Add --with-linker-hash-style.
-    	* gcc/configure: Regenerate.
-    
-    
-    
-    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173668 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Index: gcc-4_6-branch/gcc/config.in
-===================================================================
---- gcc-4_6-branch.orig/gcc/config.in	2012-03-04 09:30:04.000000000 -0800
-+++ gcc-4_6-branch/gcc/config.in	2012-03-04 09:32:30.878646575 -0800
-@@ -1583,6 +1583,12 @@
- #endif
- 
- 
-+/* The linker hash style */
-+#ifndef USED_FOR_TARGET
-+#undef LINKER_HASH_STYLE
-+#endif
-+
-+
- /* Define to the name of the LTO plugin DSO that must be passed to the
-    linker's -plugin=LIB option. */
- #ifndef USED_FOR_TARGET
-Index: gcc-4_6-branch/gcc/configure
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure	2012-03-04 09:30:05.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure	2012-03-04 09:32:39.918647011 -0800
-@@ -915,6 +915,7 @@
- enable_poison_system_directories
- enable_plugin
- enable_libquadmath_support
-+with_linker_hash_style
- '
-       ac_precious_vars='build_alias
- host_alias
-@@ -1667,6 +1668,8 @@
-                           with the compiler
-   --with-system-zlib      use installed libz
-   --with-slibdir=DIR      shared libraries in DIR [LIBDIR]
-+  --with-linker-hash-style={sysv,gnu,both}
-+                          specify the linker hash style
- 
- Some influential environment variables:
-   CC          C compiler command
-@@ -17501,7 +17504,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17504 "configure"
-+#line 17507 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -17607,7 +17610,7 @@
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 17610 "configure"
-+#line 17613 "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -26432,6 +26435,36 @@
- fi
- 
- 
-+# Specify what hash style to use by default.
-+
-+# Check whether --with-linker-hash-style was given.
-+if test "${with_linker_hash_style+set}" = set; then :
-+  withval=$with_linker_hash_style; case x"$withval" in
-+   xsysv)
-+     LINKER_HASH_STYLE=sysv
-+     ;;
-+   xgnu)
-+     LINKER_HASH_STYLE=gnu
-+     ;;
-+   xboth)
-+     LINKER_HASH_STYLE=both
-+     ;;
-+   *)
-+     as_fn_error "$withval is an invalid option to --with-linker-hash-style" "$LINENO" 5
-+     ;;
-+ esac
-+else
-+  LINKER_HASH_STYLE=''
-+fi
-+
-+if test x"${LINKER_HASH_STYLE}" != x; then
-+
-+cat >>confdefs.h <<_ACEOF
-+#define LINKER_HASH_STYLE "$LINKER_HASH_STYLE"
-+_ACEOF
-+
-+fi
-+
- # Configure the subdirectories
- # AC_CONFIG_SUBDIRS($subdirs)
- 
-Index: gcc-4_6-branch/gcc/configure.ac
-===================================================================
---- gcc-4_6-branch.orig/gcc/configure.ac	2012-03-04 09:30:05.000000000 -0800
-+++ gcc-4_6-branch/gcc/configure.ac	2012-03-04 09:32:30.890646574 -0800
-@@ -4905,6 +4905,30 @@
- fi
- 
- 
-+# Specify what hash style to use by default.
-+AC_ARG_WITH([linker-hash-style],
-+[AC_HELP_STRING([--with-linker-hash-style={sysv,gnu,both}],
-+                [specify the linker hash style])],
-+[case x"$withval" in
-+   xsysv)
-+     LINKER_HASH_STYLE=sysv
-+     ;;
-+   xgnu)
-+     LINKER_HASH_STYLE=gnu
-+     ;;
-+   xboth)
-+     LINKER_HASH_STYLE=both
-+     ;;
-+   *)
-+     AC_MSG_ERROR([$withval is an invalid option to --with-linker-hash-style])
-+     ;;
-+ esac],
-+[LINKER_HASH_STYLE=''])
-+if test x"${LINKER_HASH_STYLE}" != x; then
-+  AC_DEFINE_UNQUOTED(LINKER_HASH_STYLE, "$LINKER_HASH_STYLE",
-+                                         [The linker hash style])
-+fi
-+
- # Configure the subdirectories
- # AC_CONFIG_SUBDIRS($subdirs)
- 
-Index: gcc-4_6-branch/gcc/doc/install.texi
-===================================================================
---- gcc-4_6-branch.orig/gcc/doc/install.texi	2012-03-03 00:46:39.000000000 -0800
-+++ gcc-4_6-branch/gcc/doc/install.texi	2012-03-04 09:32:30.894646574 -0800
-@@ -1665,6 +1665,11 @@
- support @option{--build-id} option, a warning is issued and the
- @option{--enable-linker-build-id} option is ignored.  The default is off.
- 
-+ at item --with-linker-hash-style=@var{choice}
-+Tells GCC to pass @option{--hash-style=@var{choice}} option to the
-+linker for all final links. @var{choice} can be one of
-+ at samp{sysv}, @samp{gnu}, and @samp{both} where @samp{sysv} is the default.
-+
- @item --enable-gnu-unique-object
- @itemx --disable-gnu-unique-object
- Tells GCC to use the gnu_unique_object relocation for C++ template
-Index: gcc-4_6-branch/gcc/gcc.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/gcc.c	2012-03-04 09:30:04.000000000 -0800
-+++ gcc-4_6-branch/gcc/gcc.c	2012-03-04 09:32:30.894646574 -0800
-@@ -1427,7 +1427,8 @@
-   }
- #endif
- 
--#if defined LINK_EH_SPEC || defined LINK_BUILDID_SPEC
-+#if defined LINK_EH_SPEC || defined LINK_BUILDID_SPEC || \
-+    defined LINKER_HASH_STYLE
- # ifdef LINK_BUILDID_SPEC
-   /* Prepend LINK_BUILDID_SPEC to whatever link_spec we had before.  */
-   obstack_grow (&obstack, LINK_BUILDID_SPEC, sizeof(LINK_BUILDID_SPEC) - 1);
-@@ -1436,6 +1437,16 @@
-   /* Prepend LINK_EH_SPEC to whatever link_spec we had before.  */
-   obstack_grow (&obstack, LINK_EH_SPEC, sizeof(LINK_EH_SPEC) - 1);
- # endif
-+# ifdef LINKER_HASH_STYLE
-+  /* Prepend --hash-style=LINKER_HASH_STYLE to whatever link_spec we had
-+     before.  */
-+  {
-+    static const char hash_style[] = "--hash-style=";
-+    obstack_grow (&obstack, hash_style, sizeof(hash_style) - 1);
-+    obstack_grow (&obstack, LINKER_HASH_STYLE, sizeof(LINKER_HASH_STYLE) - 1);
-+    obstack_1grow (&obstack, ' ');
-+  }
-+# endif
-   obstack_grow0 (&obstack, link_spec, strlen (link_spec));
-   link_spec = XOBFINISH (&obstack, const char *);
- #endif
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
deleted file mode 100644
index bf930ec..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-MIPS64 defaults to n32 ABI, this patch makes it
-so that it defaults to N64 ABI
-
-Upstream-Status: Inappropriate [OE config specific]
-
-Signed-off-by: Khem Raj <raj.khem at gmail.com>
-Index: gcc-4_6-branch/gcc/config.gcc
-===================================================================
---- gcc-4_6-branch.orig/gcc/config.gcc	2012-04-22 19:12:12.431061229 -0700
-+++ gcc-4_6-branch/gcc/config.gcc	2012-04-22 19:13:36.307065289 -0700
-@@ -1882,7 +1882,7 @@
- mips64*-*-linux* | mipsisa64*-*-linux*)
- 	tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h"
- 	tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16"
--	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
-+	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_64"
- 	case ${target} in
- 		mips64el-st-linux-gnu)
- 			tm_file="${tm_file} mips/st.h"
-Index: gcc-4_6-branch/gcc/config/mips/linux64.h
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/mips/linux64.h	2012-04-22 19:10:59.743057711 -0700
-+++ gcc-4_6-branch/gcc/config/mips/linux64.h	2012-04-22 19:11:56.919060479 -0700
-@@ -26,7 +26,7 @@
-   BASE_DRIVER_SELF_SPECS, \
-   LINUX_DRIVER_SELF_SPECS \
-   " %{!EB:%{!EL:%(endian_spec)}}" \
--  " %{!mabi=*: -mabi=n32}"
-+  " %{!mabi=*: -mabi=64}"
- 
- #undef LIB_SPEC
- #define LIB_SPEC "\
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch
deleted file mode 100644
index fe157a8..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/optional_libstdc.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++ 
-will not run correctly since by default the linker will try to link against libstdc++
-which shouldn't exist yet. We need an option to disable -lstdc++
-option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc 
-driver. This patch adds such an option which only disables the -lstdc++.
-
-A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to 
-do this officially, the likely answer is don't build libstdc++ separately.
-
-RP 29/6/10
-
-Index: gcc-4.6.0/gcc/cp/g++spec.c
-===================================================================
---- gcc-4.6.0.orig/gcc/cp/g++spec.c
-+++ gcc-4.6.0/gcc/cp/g++spec.c
-@@ -127,6 +127,7 @@ lang_specific_driver (struct cl_decoded_
-       switch (decoded_options[i].opt_index)
- 	{
- 	case OPT_nostdlib:
-+	case OPT_nostdlib__:
- 	case OPT_nodefaultlibs:
- 	  library = -1;
- 	  break;
-Index: gcc-4.6.0/gcc/doc/invoke.texi
-===================================================================
---- gcc-4.6.0.orig/gcc/doc/invoke.texi
-+++ gcc-4.6.0/gcc/doc/invoke.texi
-@@ -193,7 +193,7 @@ in the following sections.
- -fno-pretty-templates @gol
- -frepo  -fno-rtti  -fstats  -ftemplate-depth=@var{n} @gol
- -fno-threadsafe-statics -fuse-cxa-atexit  -fno-weak  -nostdinc++ @gol
---fno-default-inline  -fvisibility-inlines-hidden @gol
-+-nostdlib++ -fno-default-inline  -fvisibility-inlines-hidden @gol
- -fvisibility-ms-compat @gol
- -Wabi  -Wconversion-null  -Wctor-dtor-privacy @gol
- -Wnoexcept -Wnon-virtual-dtor  -Wreorder @gol
-@@ -431,7 +431,7 @@ Objective-C and Objective-C++ Dialects}.
- @gccoptlist{@var{object-file-name}  -l at var{library} @gol
- -nostartfiles  -nodefaultlibs  -nostdlib -pie -rdynamic @gol
- -s  -static  -static-libgcc  -static-libstdc++ -shared  @gol
---shared-libgcc  -symbolic @gol
-+-shared-libgcc  -symbolic -nostdlib++ @gol
- -T @var{script}  -Wl, at var{option}  -Xlinker @var{option} @gol
- -u @var{symbol}}
- 
-@@ -9069,6 +9069,11 @@ These entries are usually resolved by en
- libc.  These entry points should be supplied through some other
- mechanism when this option is specified.
- 
-+ at item -nostdlib++
-+ at opindex nostdlib++
-+Do not use the standard system C++ runtime libraries when linking.
-+Only the libraries you specify will be passed to the linker.
-+
- @cindex @option{-lgcc}, use with @option{-nostdlib}
- @cindex @option{-nostdlib} and unresolved references
- @cindex unresolved references and @option{-nostdlib}
-Index: gcc-4.6.0/gcc/c-family/c.opt
-===================================================================
---- gcc-4.6.0.orig/gcc/c-family/c.opt
-+++ gcc-4.6.0/gcc/c-family/c.opt
-@@ -1111,6 +1111,10 @@ nostdinc++
- C++ ObjC++
- Do not search standard system include directories for C++
- 
-+nostdlib++
-+Driver
-+Do not link standard C++ runtime library
-+
- o
- C ObjC C++ ObjC++ Joined Separate
- ; Documented in common.opt
-Index: gcc-4.6.0/gcc/gcc.c
-===================================================================
---- gcc-4.6.0.orig/gcc/gcc.c
-+++ gcc-4.6.0/gcc/gcc.c
-@@ -666,6 +666,7 @@ proper position among the other output f
-     %(mflib) " STACK_SPLIT_SPEC "\
-     %{fprofile-arcs|fprofile-generate*|coverage:-lgcov}\
-     %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
-+    %{!nostdlib++:}\
-     %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}"
- #endif
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch
deleted file mode 100644
index 1f478f3..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/powerpc-e5500.patch
+++ /dev/null
@@ -1,465 +0,0 @@
-Upstream-Status: Pending
-
-Implements basic e5500 enablement in gcc, with a scheduler, -mcpu
-flag, etc...
-
-Also splits the masks for popcntb, popcntd, and cmpb. Originally those
-masks would also control other instructions that e5500 does not
-support (so, we either get none or all).
-
-For the lack of means to do tests, those instructions were never
-enabled until now. The new instructions enabled with this patch are:
-popcntb, popcntw, popcntd, bpermd, prtyw, prtyd, cmpb, ldbrx, and
-stdbrx.
-
-Signed-off-by: Edmar Wienskoski <edmar at freescale.com>
-Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
-
-Index: gcc-4_6-branch/gcc/config.gcc
-===================================================================
---- gcc-4_6-branch.orig/gcc/config.gcc
-+++ gcc-4_6-branch/gcc/config.gcc
-@@ -395,7 +395,7 @@ powerpc*-*-*)
- 	extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h"
- 	need_64bit_hwint=yes
- 	case x$with_cpu in
--	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell|xa2|xe500mc64)
-+	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500)
- 		cpu_is_64bit=yes
- 		;;
- 	esac
-@@ -3493,7 +3493,7 @@ case "${target}" in
- 			| 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
- 			| 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
- 			| 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
--			| a2 | e300c[23] | 854[08] | e500mc | e500mc64 | titan\
-+			| a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | titan\
- 			| 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
- 				# OK
- 				;;
-Index: gcc-4_6-branch/gcc/config/rs6000/e5500.md
-===================================================================
---- /dev/null
-+++ gcc-4_6-branch/gcc/config/rs6000/e5500.md
-@@ -0,0 +1,176 @@
-+;; Pipeline description for Freescale PowerPC e5500 core.
-+;;   Copyright (C) 2011 Free Software Foundation, Inc.
-+;;   Contributed by Edmar Wienskoski (edmar at freescale.com)
-+;;
-+;; This file is part of GCC.
-+;;
-+;; GCC is free software; you can redistribute it and/or modify it
-+;; under the terms of the GNU General Public License as published
-+;; by the Free Software Foundation; either version 3, or (at your
-+;; option) any later version.
-+;;
-+;; GCC is distributed in the hope that it will be useful, but WITHOUT
-+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-+;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-+;; License for more details.
-+;;
-+;; You should have received a copy of the GNU General Public License
-+;; along with GCC; see the file COPYING3.  If not see
-+;; <http://www.gnu.org/licenses/>.
-+;;
-+;; e5500 64-bit SFX(2), CFX, LSU, FPU, BU
-+;; Max issue 3 insns/clock cycle (includes 1 branch)
-+
-+(define_automaton "e5500_most,e5500_long")
-+(define_cpu_unit "e5500_decode_0,e5500_decode_1" "e5500_most")
-+
-+;; SFX.
-+(define_cpu_unit "e5500_sfx_0,e5500_sfx_1" "e5500_most")
-+
-+;; CFX.
-+(define_cpu_unit "e5500_cfx_stage0,e5500_cfx_stage1" "e5500_most")
-+
-+;; Non-pipelined division.
-+(define_cpu_unit "e5500_cfx_div" "e5500_long")
-+
-+;; LSU.
-+(define_cpu_unit "e5500_lsu" "e5500_most")
-+
-+;; FPU.
-+(define_cpu_unit "e5500_fpu" "e5500_long")
-+
-+;; BU.
-+(define_cpu_unit "e5500_bu" "e5500_most")
-+
-+;; The following units are used to make the automata deterministic.
-+(define_cpu_unit "present_e5500_decode_0" "e5500_most")
-+(define_cpu_unit "present_e5500_sfx_0" "e5500_most")
-+(presence_set "present_e5500_decode_0" "e5500_decode_0")
-+(presence_set "present_e5500_sfx_0" "e5500_sfx_0")
-+
-+;; Some useful abbreviations.
-+(define_reservation "e5500_decode"
-+    "e5500_decode_0|e5500_decode_1+present_e5500_decode_0")
-+(define_reservation "e5500_sfx"
-+   "e5500_sfx_0|e5500_sfx_1+present_e5500_sfx_0")
-+
-+;; SFX.
-+(define_insn_reservation "e5500_sfx" 1
-+  (and (eq_attr "type" "integer,insert_word,insert_dword,delayed_compare,\
-+	shift,cntlz,exts")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_sfx")
-+
-+(define_insn_reservation "e5500_sfx2" 2
-+  (and (eq_attr "type" "cmp,compare,fast_compare,trap")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_sfx")
-+
-+(define_insn_reservation "e5500_delayed" 2
-+  (and (eq_attr "type" "var_shift_rotate,var_delayed_compare,popcnt")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_sfx*2")
-+
-+(define_insn_reservation "e5500_two" 2
-+  (and (eq_attr "type" "two")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_decode+e5500_sfx,e5500_sfx")
-+
-+(define_insn_reservation "e5500_three" 3
-+  (and (eq_attr "type" "three")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,(e5500_decode+e5500_sfx)*2,e5500_sfx")
-+
-+;; SFX - Mfcr.
-+(define_insn_reservation "e5500_mfcr" 4
-+  (and (eq_attr "type" "mfcr")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_sfx_0*4")
-+
-+;; SFX - Mtcrf.
-+(define_insn_reservation "e5500_mtcrf" 1
-+  (and (eq_attr "type" "mtcr")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_sfx_0")
-+
-+;; SFX - Mtjmpr.
-+(define_insn_reservation "e5500_mtjmpr" 1
-+  (and (eq_attr "type" "mtjmpr,mfjmpr")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_sfx")
-+
-+;; CFX - Multiply.
-+(define_insn_reservation "e5500_multiply" 4
-+  (and (eq_attr "type" "imul")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_cfx_stage0,e5500_cfx_stage1")
-+
-+(define_insn_reservation "e5500_multiply_i" 5
-+  (and (eq_attr "type" "imul2,imul3,imul_compare")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_cfx_stage0,\
-+   e5500_cfx_stage0+e5500_cfx_stage1,e5500_cfx_stage1")
-+
-+;; CFX - Divide.
-+(define_insn_reservation "e5500_divide" 16
-+  (and (eq_attr "type" "idiv")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_cfx_stage0+e5500_cfx_div,\
-+   e5500_cfx_div*15")
-+
-+(define_insn_reservation "e5500_divide_d" 26
-+  (and (eq_attr "type" "ldiv")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_cfx_stage0+e5500_cfx_div,\
-+   e5500_cfx_div*25")
-+
-+;; LSU - Loads.
-+(define_insn_reservation "e5500_load" 3
-+  (and (eq_attr "type" "load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,\
-+			load_l,sync")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_lsu")
-+
-+(define_insn_reservation "e5500_fpload" 4
-+  (and (eq_attr "type" "fpload,fpload_ux,fpload_u")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_lsu")
-+
-+;; LSU - Stores.
-+(define_insn_reservation "e5500_store" 3
-+  (and (eq_attr "type" "store,store_ux,store_u,store_c")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_lsu")
-+
-+(define_insn_reservation "e5500_fpstore" 3
-+  (and (eq_attr "type" "fpstore,fpstore_ux,fpstore_u")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_lsu")
-+
-+;; FP.
-+(define_insn_reservation "e5500_float" 7
-+  (and (eq_attr "type" "fpsimple,fp,fpcompare,dmul")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_fpu")
-+
-+(define_insn_reservation "e5500_sdiv" 20
-+  (and (eq_attr "type" "sdiv")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_fpu*20")
-+
-+(define_insn_reservation "e5500_ddiv" 35
-+  (and (eq_attr "type" "ddiv")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_fpu*35")
-+
-+;; BU.
-+(define_insn_reservation "e5500_branch" 1
-+  (and (eq_attr "type" "jmpreg,branch,isync")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_bu")
-+
-+;; BU - CR logical.
-+(define_insn_reservation "e5500_cr_logical" 1
-+  (and (eq_attr "type" "cr_logical,delayed_cr")
-+       (eq_attr "cpu" "ppce5500"))
-+  "e5500_decode,e5500_bu")
-Index: gcc-4_6-branch/gcc/config/rs6000/rs6000-opts.h
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000-opts.h
-+++ gcc-4_6-branch/gcc/config/rs6000/rs6000-opts.h
-@@ -53,6 +53,7 @@ enum processor_type
-    PROCESSOR_PPCE300C3,
-    PROCESSOR_PPCE500MC,
-    PROCESSOR_PPCE500MC64,
-+   PROCESSOR_PPCE5500,
-    PROCESSOR_POWER4,
-    PROCESSOR_POWER5,
-    PROCESSOR_POWER6,
-Index: gcc-4_6-branch/gcc/config/rs6000/rs6000.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000.c
-+++ gcc-4_6-branch/gcc/config/rs6000/rs6000.c
-@@ -779,6 +779,25 @@ struct processor_costs ppce500mc64_cost 
-   1,			/* prefetch streams /*/
- };
- 
-+/* Instruction costs on PPCE5500 processors.  */
-+static const
-+struct processor_costs ppce5500_cost = {
-+  COSTS_N_INSNS (5),    /* mulsi */
-+  COSTS_N_INSNS (5),    /* mulsi_const */
-+  COSTS_N_INSNS (5),    /* mulsi_const9 */
-+  COSTS_N_INSNS (5),    /* muldi */
-+  COSTS_N_INSNS (14),   /* divsi */
-+  COSTS_N_INSNS (14),   /* divdi */
-+  COSTS_N_INSNS (7),    /* fp */
-+  COSTS_N_INSNS (10),   /* dmul */
-+  COSTS_N_INSNS (36),   /* sdiv */
-+  COSTS_N_INSNS (66),   /* ddiv */
-+  64,			/* cache line size */
-+  32,			/* l1 cache */
-+  128,			/* l2 cache */
-+  1,			/* prefetch streams /*/
-+};
-+
- /* Instruction costs on AppliedMicro Titan processors.  */
- static const
- struct processor_costs titan_cost = {
-@@ -1784,6 +1803,9 @@ static struct rs6000_ptt const processor
-    | MASK_ISEL},
-   {"e500mc64", PROCESSOR_PPCE500MC64, POWERPC_BASE_MASK | MASK_POWERPC64
-    | MASK_PPC_GFXOPT | MASK_ISEL},
-+  {"e5500", PROCESSOR_PPCE5500, POWERPC_BASE_MASK | MASK_POWERPC64
-+   | MASK_PPC_GFXOPT | MASK_ISEL | MASK_CMPB | MASK_POPCNTB
-+   | MASK_POPCNTD},
-   {"860", PROCESSOR_MPCCORE, POWERPC_BASE_MASK | MASK_SOFT_FLOAT},
-   {"970", PROCESSOR_POWER4,
-    POWERPC_7400_MASK | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64},
-@@ -2741,7 +2763,8 @@ rs6000_option_override_internal (bool gl
- 		   : PROCESSOR_DEFAULT));
- 
-   if (rs6000_cpu == PROCESSOR_PPCE300C2 || rs6000_cpu == PROCESSOR_PPCE300C3
--      || rs6000_cpu == PROCESSOR_PPCE500MC || rs6000_cpu == PROCESSOR_PPCE500MC64)
-+      || rs6000_cpu == PROCESSOR_PPCE500MC || rs6000_cpu == PROCESSOR_PPCE500MC64
-+      || rs6000_cpu == PROCESSOR_PPCE5500)
-     {
-       if (TARGET_ALTIVEC)
- 	error ("AltiVec not supported in this target");
-@@ -2842,9 +2865,14 @@ rs6000_option_override_internal (bool gl
-      user's opinion, though.  */
-   if (rs6000_block_move_inline_limit == 0
-       && (rs6000_cpu == PROCESSOR_PPCE500MC
--	  || rs6000_cpu == PROCESSOR_PPCE500MC64))
-+	  || rs6000_cpu == PROCESSOR_PPCE500MC64
-+	  || rs6000_cpu == PROCESSOR_PPCE5500))
-     rs6000_block_move_inline_limit = 128;
- 
-+  /* Those machines does not have fsqrt instruction */
-+  if (rs6000_cpu == PROCESSOR_PPCE5500)
-+    target_flags &= ~MASK_PPC_GPOPT;
-+
-   /* store_one_arg depends on expand_block_move to handle at least the
-      size of reg_parm_stack_space.  */
-   if (rs6000_block_move_inline_limit < (TARGET_POWERPC64 ? 64 : 32))
-@@ -2976,7 +3004,8 @@ rs6000_option_override_internal (bool gl
- #endif
- 
-   if (TARGET_E500 || rs6000_cpu == PROCESSOR_PPCE500MC
--      || rs6000_cpu == PROCESSOR_PPCE500MC64)
-+      || rs6000_cpu == PROCESSOR_PPCE500MC64
-+      || rs6000_cpu == PROCESSOR_PPCE5500)
-     {
-       /* The e500 and e500mc do not have string instructions, and we set
- 	 MASK_STRING above when optimizing for size.  */
-@@ -3023,7 +3052,8 @@ rs6000_option_override_internal (bool gl
- 				 || rs6000_cpu == PROCESSOR_POWER6
- 				 || rs6000_cpu == PROCESSOR_POWER7
- 				 || rs6000_cpu == PROCESSOR_PPCE500MC
--				 || rs6000_cpu == PROCESSOR_PPCE500MC64);
-+				 || rs6000_cpu == PROCESSOR_PPCE500MC64
-+				 || rs6000_cpu == PROCESSOR_PPCE5500);
- 
-   /* Allow debug switches to override the above settings.  These are set to -1
-      in rs6000.opt to indicate the user hasn't directly set the switch.  */
-@@ -3245,6 +3275,10 @@ rs6000_option_override_internal (bool gl
- 	rs6000_cost = &ppce500mc64_cost;
- 	break;
- 
-+      case PROCESSOR_PPCE5500:
-+	rs6000_cost = &ppce5500_cost;
-+	break;
-+
-       case PROCESSOR_TITAN:
- 	rs6000_cost = &titan_cost;
- 	break;
-@@ -23227,6 +23261,7 @@ rs6000_adjust_cost (rtx insn, rtx link, 
-                  || rs6000_cpu_attr == CPU_PPC750
-                  || rs6000_cpu_attr == CPU_PPC7400
-                  || rs6000_cpu_attr == CPU_PPC7450
-+                 || rs6000_cpu_attr == CPU_PPCE5500
-                  || rs6000_cpu_attr == CPU_POWER4
-                  || rs6000_cpu_attr == CPU_POWER5
- 		 || rs6000_cpu_attr == CPU_POWER7
-@@ -23771,6 +23806,7 @@ rs6000_issue_rate (void)
-   case CPU_PPCE300C3:
-   case CPU_PPCE500MC:
-   case CPU_PPCE500MC64:
-+  case CPU_PPCE5500:
-   case CPU_TITAN:
-     return 2;
-   case CPU_RIOS2:
-Index: gcc-4_6-branch/gcc/config/rs6000/rs6000.h
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000.h
-+++ gcc-4_6-branch/gcc/config/rs6000/rs6000.h
-@@ -168,6 +168,7 @@
- %{mcpu=e300c3: -me300} \
- %{mcpu=e500mc: -me500mc} \
- %{mcpu=e500mc64: -me500mc64} \
-+%{mcpu=e5500: -me5500} \
- %{maltivec: -maltivec} \
- %{mvsx: -mvsx %{!maltivec: -maltivec} %{!mcpu*: %(asm_cpu_power7)}} \
- -many"
-@@ -477,13 +478,13 @@ extern int rs6000_vector_align[];
- 
- #define TARGET_FCTIDZ	TARGET_FCFID
- #define TARGET_STFIWX	TARGET_PPC_GFXOPT
--#define TARGET_LFIWAX	TARGET_CMPB
--#define TARGET_LFIWZX	TARGET_POPCNTD
--#define TARGET_FCFIDS	TARGET_POPCNTD
--#define TARGET_FCFIDU	TARGET_POPCNTD
--#define TARGET_FCFIDUS	TARGET_POPCNTD
--#define TARGET_FCTIDUZ	TARGET_POPCNTD
--#define TARGET_FCTIWUZ	TARGET_POPCNTD
-+#define TARGET_LFIWAX	(TARGET_CMPB && rs6000_cpu != PROCESSOR_PPCE5500)
-+#define TARGET_LFIWZX	(TARGET_POPCNTD && rs6000_cpu != PROCESSOR_PPCE5500)
-+#define TARGET_FCFIDS	TARGET_LFIWZX
-+#define TARGET_FCFIDU	TARGET_LFIWZX
-+#define TARGET_FCFIDUS	TARGET_LFIWZX
-+#define TARGET_FCTIDUZ	TARGET_LFIWZX
-+#define TARGET_FCTIWUZ	TARGET_LFIWZX
- 
- /* E500 processors only support plain "sync", not lwsync.  */
- #define TARGET_NO_LWSYNC TARGET_E500
-@@ -494,10 +495,12 @@ extern int rs6000_vector_align[];
- 
- #define TARGET_FRE	(TARGET_HARD_FLOAT && TARGET_FPRS \
- 			 && TARGET_DOUBLE_FLOAT \
--			 && (TARGET_POPCNTB || VECTOR_UNIT_VSX_P (DFmode)))
-+			 && (TARGET_POPCNTB || VECTOR_UNIT_VSX_P (DFmode)) \
-+			 && rs6000_cpu != PROCESSOR_PPCE5500)
- 
- #define TARGET_FRSQRTES	(TARGET_HARD_FLOAT && TARGET_POPCNTB \
--			 && TARGET_FPRS && TARGET_SINGLE_FLOAT)
-+			 && TARGET_FPRS && TARGET_SINGLE_FLOAT \
-+			 && rs6000_cpu != PROCESSOR_PPCE5500)
- 
- #define TARGET_FRSQRTE	(TARGET_HARD_FLOAT && TARGET_FPRS \
- 			 && TARGET_DOUBLE_FLOAT \
-Index: gcc-4_6-branch/gcc/config/rs6000/rs6000.md
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/rs6000/rs6000.md
-+++ gcc-4_6-branch/gcc/config/rs6000/rs6000.md
-@@ -126,7 +126,7 @@
- 
- ;; Define an insn type attribute.  This is used in function unit delay
- ;; computations.
--(define_attr "type" "integer,two,three,load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,store,store_ux,store_u,fpload,fpload_ux,fpload_u,fpstore,fpstore_ux,fpstore_u,vecload,vecstore,imul,imul2,imul3,lmul,idiv,ldiv,insert_word,branch,cmp,fast_compare,compare,var_delayed_compare,delayed_compare,imul_compare,lmul_compare,fpcompare,cr_logical,delayed_cr,mfcr,mfcrf,mtcr,mfjmpr,mtjmpr,fp,fpsimple,dmul,sdiv,ddiv,ssqrt,dsqrt,jmpreg,brinc,vecsimple,veccomplex,vecdiv,veccmp,veccmpsimple,vecperm,vecfloat,vecfdiv,isync,sync,load_l,store_c,shift,trap,insert_dword,var_shift_rotate,cntlz,exts,mffgpr,mftgpr,isel"
-+(define_attr "type" "integer,two,three,load,load_ext,load_ext_u,load_ext_ux,load_ux,load_u,store,store_ux,store_u,fpload,fpload_ux,fpload_u,fpstore,fpstore_ux,fpstore_u,vecload,vecstore,imul,imul2,imul3,lmul,idiv,ldiv,insert_word,branch,cmp,fast_compare,compare,var_delayed_compare,delayed_compare,imul_compare,lmul_compare,fpcompare,cr_logical,delayed_cr,mfcr,mfcrf,mtcr,mfjmpr,mtjmpr,fp,fpsimple,dmul,sdiv,ddiv,ssqrt,dsqrt,jmpreg,brinc,vecsimple,veccomplex,vecdiv,veccmp,veccmpsimple,vecperm,vecfloat,vecfdiv,isync,sync,load_l,store_c,shift,trap,insert_dword,var_shift_rotate,cntlz,exts,mffgpr,mftgpr,isel,popcnt"
-   (const_string "integer"))
- 
- ;; Define floating point instruction sub-types for use with Xfpu.md
-@@ -148,7 +148,7 @@
- ;; Processor type -- this attribute must exactly match the processor_type
- ;; enumeration in rs6000.h.
- 
--(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc476,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,power4,power5,power6,power7,cell,ppca2,titan"
-+(define_attr "cpu" "rios1,rios2,rs64a,mpccore,ppc403,ppc405,ppc440,ppc476,ppc601,ppc603,ppc604,ppc604e,ppc620,ppc630,ppc750,ppc7400,ppc7450,ppc8540,ppce300c2,ppce300c3,ppce500mc,ppce500mc64,ppce5500,power4,power5,power6,power7,cell,ppca2,titan"
-   (const (symbol_ref "rs6000_cpu_attr")))
- 
- 
-@@ -176,6 +176,7 @@
- (include "e300c2c3.md")
- (include "e500mc.md")
- (include "e500mc64.md")
-+(include "e5500.md")
- (include "power4.md")
- (include "power5.md")
- (include "power6.md")
-@@ -2302,13 +2303,17 @@
-         (unspec:GPR [(match_operand:GPR 1 "gpc_reg_operand" "r")]
-                      UNSPEC_POPCNTB))]
-   "TARGET_POPCNTB"
--  "popcntb %0,%1")
-+  "popcntb %0,%1"
-+  [(set_attr "length" "4")
-+   (set_attr "type" "popcnt")])
- 
- (define_insn "popcntd<mode>2"
-   [(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
- 	(popcount:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")))]
-   "TARGET_POPCNTD"
--  "popcnt<wd> %0,%1")
-+  "popcnt<wd> %0,%1"
-+  [(set_attr "length" "4")
-+   (set_attr "type" "popcnt")])
- 
- (define_expand "popcount<mode>2"
-   [(set (match_operand:GPR 0 "gpc_reg_operand" "")
-@@ -5957,10 +5962,10 @@
-    && ((TARGET_PPC_GFXOPT
-         && !HONOR_NANS (<MODE>mode)
-         && !HONOR_SIGNED_ZEROS (<MODE>mode))
--       || TARGET_CMPB
-+       || TARGET_LFIWAX
-        || VECTOR_UNIT_VSX_P (<MODE>mode))"
- {
--  if (TARGET_CMPB || VECTOR_UNIT_VSX_P (<MODE>mode))
-+  if (TARGET_LFIWAX || VECTOR_UNIT_VSX_P (<MODE>mode))
-     {
-       emit_insn (gen_copysign<mode>3_fcpsgn (operands[0], operands[1],
- 					     operands[2]));
-@@ -5979,7 +5984,7 @@
- 	(unspec:SFDF [(match_operand:SFDF 1 "gpc_reg_operand" "<rreg2>")
- 		      (match_operand:SFDF 2 "gpc_reg_operand" "<rreg2>")]
- 		     UNSPEC_COPYSIGN))]
--  "TARGET_CMPB && !VECTOR_UNIT_VSX_P (<MODE>mode)"
-+  "TARGET_LFIWAX && !VECTOR_UNIT_VSX_P (<MODE>mode)"
-   "fcpsgn %0,%2,%1"
-   [(set_attr "type" "fp")])
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch
deleted file mode 100644
index c0e3594..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr32219.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Upstream-Status:Backport
-Hi,
-
-As suggested by richi.
-regtested on i686-linux-gnu with all default languages and no regressions.
-Ok for trunk?
-
-gcc/ChangeLog
-2010-03-15  Bernhard Reutner-Fischer  <aldot at gcc.gnu.org>
-
-	PR target/32219
-	* varasm.c (default_binds_local_p_1): Weak data is not local.
-
-gcc/testsuite/ChangeLog
-2010-03-15  Bernhard Reutner-Fischer  <aldot at gcc.gnu.org>
-
-	PR target/32219
-	* gcc.dg/visibility-21.c: New test.
-
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
----
- gcc/testsuite/gcc.dg/visibility-21.c |   14 ++++++++++++++
- gcc/varasm.c                         |    8 ++++----
- 2 files changed, 18 insertions(+), 4 deletions(-)
- create mode 100644 gcc/testsuite/gcc.dg/visibility-21.c
-
-Index: gcc-4_6-branch/gcc/testsuite/gcc.dg/visibility-21.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ gcc-4_6-branch/gcc/testsuite/gcc.dg/visibility-21.c	2011-10-18 17:11:33.224827436 -0700
-@@ -0,0 +1,14 @@
-+/* PR target/32219 */
-+/* { dg-do run } */
-+/* { dg-require-visibility "" } */
-+/* { dg-options "-fPIC" { target fpic } } */
-+
-+extern void f() __attribute__((weak,visibility("hidden")));
-+extern int puts( char const* );
-+int main()
-+{
-+	if (f)
-+		f();
-+	return 0;
-+}
-+
-Index: gcc-4_6-branch/gcc/varasm.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/varasm.c	2011-09-16 19:58:21.000000000 -0700
-+++ gcc-4_6-branch/gcc/varasm.c	2011-10-18 17:19:06.431074788 -0700
-@@ -6760,6 +6760,10 @@
-   /* Static variables are always local.  */
-   else if (! TREE_PUBLIC (exp))
-     local_p = true;
-+  /* hidden weak can't be overridden by something non-local, all
-+     that is possible is that it is not defined at all. */
-+  else if (DECL_WEAK (exp))
-+    local_p = false;
-   /* A variable is local if the user has said explicitly that it will
-      be.  */
-   else if ((DECL_VISIBILITY_SPECIFIED (exp)
-@@ -6773,11 +6777,6 @@
-      local.  */
-   else if (DECL_VISIBILITY (exp) != VISIBILITY_DEFAULT)
-     local_p = true;
--  /* Default visibility weak data can be overridden by a strong symbol
--     in another module and so are not local.  */
--  else if (DECL_WEAK (exp)
--	   && !resolved_locally)
--    local_p = false;
-   /* If PIC, then assume that any global name can be overridden by
-      symbols resolved from other modules.  */
-   else if (shlib)
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch
deleted file mode 100644
index 60b7012..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr46934.patch
+++ /dev/null
@@ -1,393 +0,0 @@
-Upstream-Status:Backport
-2011-09-19  chengbin  <bin.cheng at arm.com>
-
-	Backport r174035 from mainline
-	2011-05-22  Tom de Vries  <tom at codesourcery.com>
-
-	PR middle-end/48689
-	* fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
-	CODE_CONTAINS_STRUCT (TS_COMMON).
-
-	Backport r172297 from mainline
-	2011-04-11  Chung-Lin Tang  <cltang at codesourcery.com>
-		Richard Earnshaw  <rearnsha at arm.com>
-
-	PR target/48250
-	* config/arm/arm.c (arm_legitimize_reload_address): Update cases
-	to use sign-magnitude offsets. Reject unsupported unaligned
-	cases. Add detailed description in comments.
-	* config/arm/arm.md (reload_outdf): Disable for ARM mode; change
-	condition from TARGET_32BIT to TARGET_ARM.
-
-	Backport r171978 from mainline
-	2011-04-05  Tom de Vries  <tom at codesourcery.com>
-
-	PR target/43920
-	* config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
-	for size.
-
-	Backport r171632 from mainline
-	2011-03-28  Richard Sandiford  <richard.sandiford at linaro.org>
-
-	* builtins.c (expand_builtin_memset_args): Use gen_int_mode
-	instead of GEN_INT.
-
-	Backport r171379 from mainline
-	2011-03-23  Chung-Lin Tang  <cltang at codesourcery.com>
-
-	PR target/46934
-	* config/arm/arm.md (casesi): Use the gen_int_mode() function
-	to subtract lower bound instead of GEN_INT().
-
-	Backport r171251 from mainline 
-	2011-03-21  Daniel Jacobowitz  <dan at codesourcery.com>
-
-	* config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
-	for barrier handlers.
-
-	Backport r171096 from mainline
-	2011-03-17  Chung-Lin Tang  <cltang at codesourcery.com>
-
-	PR target/43872
-	* config/arm/arm.c (arm_get_frame_offsets): Adjust early
-	return condition with !cfun->calls_alloca.
-
-Index: gcc-4_6-branch/gcc/builtins.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/builtins.c	2011-10-17 17:45:32.050502963 -0700
-+++ gcc-4_6-branch/gcc/builtins.c	2011-10-17 17:46:11.154696878 -0700
-@@ -3972,6 +3972,7 @@
- {
-   tree fndecl, fn;
-   enum built_in_function fcode;
-+  enum machine_mode val_mode;
-   char c;
-   unsigned int dest_align;
-   rtx dest_mem, dest_addr, len_rtx;
-@@ -4006,14 +4007,14 @@
- 
-   len_rtx = expand_normal (len);
-   dest_mem = get_memory_rtx (dest, len);
-+  val_mode = TYPE_MODE (unsigned_char_type_node);
- 
-   if (TREE_CODE (val) != INTEGER_CST)
-     {
-       rtx val_rtx;
- 
-       val_rtx = expand_normal (val);
--      val_rtx = convert_to_mode (TYPE_MODE (unsigned_char_type_node),
--				 val_rtx, 0);
-+      val_rtx = convert_to_mode (val_mode, val_rtx, 0);
- 
-       /* Assume that we can memset by pieces if we can store
-        * the coefficients by pieces (in the required modes).
-@@ -4024,8 +4025,7 @@
- 				  builtin_memset_read_str, &c, dest_align,
- 				  true))
- 	{
--	  val_rtx = force_reg (TYPE_MODE (unsigned_char_type_node),
--			       val_rtx);
-+	  val_rtx = force_reg (val_mode, val_rtx);
- 	  store_by_pieces (dest_mem, tree_low_cst (len, 1),
- 			   builtin_memset_gen_str, val_rtx, dest_align,
- 			   true, 0);
-@@ -4051,7 +4051,8 @@
- 				  true))
- 	store_by_pieces (dest_mem, tree_low_cst (len, 1),
- 			 builtin_memset_read_str, &c, dest_align, true, 0);
--      else if (!set_storage_via_setmem (dest_mem, len_rtx, GEN_INT (c),
-+      else if (!set_storage_via_setmem (dest_mem, len_rtx,
-+					gen_int_mode (c, val_mode),
- 					dest_align, expected_align,
- 					expected_size))
- 	goto do_libcall;
-Index: gcc-4_6-branch/gcc/config/arm/arm.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/arm/arm.c	2011-10-17 17:45:41.914551883 -0700
-+++ gcc-4_6-branch/gcc/config/arm/arm.c	2011-10-17 17:48:35.447412371 -0700
-@@ -6406,23 +6406,126 @@
-       HOST_WIDE_INT val = INTVAL (XEXP (*p, 1));
-       HOST_WIDE_INT low, high;
- 
--      if (mode == DImode || (mode == DFmode && TARGET_SOFT_FLOAT))
--	low = ((val & 0xf) ^ 0x8) - 0x8;
--      else if (TARGET_MAVERICK && TARGET_HARD_FLOAT)
--	/* Need to be careful, -256 is not a valid offset.  */
--	low = val >= 0 ? (val & 0xff) : -((-val) & 0xff);
--      else if (mode == SImode
--	       || (mode == SFmode && TARGET_SOFT_FLOAT)
--	       || ((mode == HImode || mode == QImode) && ! arm_arch4))
--	/* Need to be careful, -4096 is not a valid offset.  */
--	low = val >= 0 ? (val & 0xfff) : -((-val) & 0xfff);
--      else if ((mode == HImode || mode == QImode) && arm_arch4)
--	/* Need to be careful, -256 is not a valid offset.  */
--	low = val >= 0 ? (val & 0xff) : -((-val) & 0xff);
--      else if (GET_MODE_CLASS (mode) == MODE_FLOAT
--	       && TARGET_HARD_FLOAT && TARGET_FPA)
--	/* Need to be careful, -1024 is not a valid offset.  */
--	low = val >= 0 ? (val & 0x3ff) : -((-val) & 0x3ff);
-+      /* Detect coprocessor load/stores.  */
-+      bool coproc_p = ((TARGET_HARD_FLOAT
-+			&& (TARGET_VFP || TARGET_FPA || TARGET_MAVERICK)
-+			&& (mode == SFmode || mode == DFmode
-+			    || (mode == DImode && TARGET_MAVERICK)))
-+		       || (TARGET_REALLY_IWMMXT
-+			   && VALID_IWMMXT_REG_MODE (mode))
-+		       || (TARGET_NEON
-+			   && (VALID_NEON_DREG_MODE (mode)
-+			       || VALID_NEON_QREG_MODE (mode))));
-+
-+      /* For some conditions, bail out when lower two bits are unaligned.  */
-+      if ((val & 0x3) != 0
-+	  /* Coprocessor load/store indexes are 8-bits + '00' appended.  */
-+	  && (coproc_p
-+	      /* For DI, and DF under soft-float: */
-+	      || ((mode == DImode || mode == DFmode)
-+		  /* Without ldrd, we use stm/ldm, which does not
-+		     fair well with unaligned bits.  */
-+		  && (! TARGET_LDRD
-+		      /* Thumb-2 ldrd/strd is [-1020,+1020] in steps of 4.  */
-+		      || TARGET_THUMB2))))
-+	return false;
-+
-+      /* When breaking down a [reg+index] reload address into [(reg+high)+low],
-+	 of which the (reg+high) gets turned into a reload add insn,
-+	 we try to decompose the index into high/low values that can often
-+	 also lead to better reload CSE.
-+	 For example:
-+	         ldr r0, [r2, #4100]  // Offset too large
-+		 ldr r1, [r2, #4104]  // Offset too large
-+
-+	 is best reloaded as:
-+	         add t1, r2, #4096
-+		 ldr r0, [t1, #4]
-+		 add t2, r2, #4096
-+		 ldr r1, [t2, #8]
-+
-+	 which post-reload CSE can simplify in most cases to eliminate the
-+	 second add instruction:
-+	         add t1, r2, #4096
-+		 ldr r0, [t1, #4]
-+		 ldr r1, [t1, #8]
-+
-+	 The idea here is that we want to split out the bits of the constant
-+	 as a mask, rather than as subtracting the maximum offset that the
-+	 respective type of load/store used can handle.
-+
-+	 When encountering negative offsets, we can still utilize it even if
-+	 the overall offset is positive; sometimes this may lead to an immediate
-+	 that can be constructed with fewer instructions.
-+	 For example:
-+	         ldr r0, [r2, #0x3FFFFC]
-+
-+	 This is best reloaded as:
-+	         add t1, r2, #0x400000
-+		 ldr r0, [t1, #-4]
-+
-+	 The trick for spotting this for a load insn with N bits of offset
-+	 (i.e. bits N-1:0) is to look at bit N; if it is set, then chose a
-+	 negative offset that is going to make bit N and all the bits below
-+	 it become zero in the remainder part.
-+
-+	 The SIGN_MAG_LOW_ADDR_BITS macro below implements this, with respect
-+	 to sign-magnitude addressing (i.e. separate +- bit, or 1's complement),
-+	 used in most cases of ARM load/store instructions.  */
-+
-+#define SIGN_MAG_LOW_ADDR_BITS(VAL, N)					\
-+      (((VAL) & ((1 << (N)) - 1))					\
-+       ? (((VAL) & ((1 << ((N) + 1)) - 1)) ^ (1 << (N))) - (1 << (N))	\
-+       : 0)
-+
-+      if (coproc_p)
-+	low = SIGN_MAG_LOW_ADDR_BITS (val, 10);
-+      else if (GET_MODE_SIZE (mode) == 8)
-+	{
-+	  if (TARGET_LDRD)
-+	    low = (TARGET_THUMB2
-+		   ? SIGN_MAG_LOW_ADDR_BITS (val, 10)
-+		   : SIGN_MAG_LOW_ADDR_BITS (val, 8));
-+	  else
-+	    /* For pre-ARMv5TE (without ldrd), we use ldm/stm(db/da/ib)
-+	       to access doublewords. The supported load/store offsets are
-+	       -8, -4, and 4, which we try to produce here.  */
-+	    low = ((val & 0xf) ^ 0x8) - 0x8;
-+	}
-+      else if (GET_MODE_SIZE (mode) < 8)
-+	{
-+	  /* NEON element load/stores do not have an offset.  */
-+	  if (TARGET_NEON_FP16 && mode == HFmode)
-+	    return false;
-+
-+	  if (TARGET_THUMB2)
-+	    {
-+	      /* Thumb-2 has an asymmetrical index range of (-256,4096).
-+		 Try the wider 12-bit range first, and re-try if the result
-+		 is out of range.  */
-+	      low = SIGN_MAG_LOW_ADDR_BITS (val, 12);
-+	      if (low < -255)
-+		low = SIGN_MAG_LOW_ADDR_BITS (val, 8);
-+	    }
-+	  else
-+	    {
-+	      if (mode == HImode || mode == HFmode)
-+		{
-+		  if (arm_arch4)
-+		    low = SIGN_MAG_LOW_ADDR_BITS (val, 8);
-+		  else
-+		    {
-+		      /* The storehi/movhi_bytes fallbacks can use only
-+			 [-4094,+4094] of the full ldrb/strb index range.  */
-+		      low = SIGN_MAG_LOW_ADDR_BITS (val, 12);
-+		      if (low == 4095 || low == -4095)
-+			return false;
-+		    }
-+		}
-+	      else
-+		low = SIGN_MAG_LOW_ADDR_BITS (val, 12);
-+	    }
-+	}
-       else
- 	return false;
- 
-@@ -15415,7 +15518,10 @@
-   offsets->soft_frame = offsets->saved_regs + CALLER_INTERWORKING_SLOT_SIZE;
-   /* A leaf function does not need any stack alignment if it has nothing
-      on the stack.  */
--  if (leaf && frame_size == 0)
-+  if (leaf && frame_size == 0
-+      /* However if it calls alloca(), we have a dynamically allocated
-+	 block of BIGGEST_ALIGNMENT on stack, so still do stack alignment.  */
-+      && ! cfun->calls_alloca)
-     {
-       offsets->outgoing_args = offsets->soft_frame;
-       offsets->locals_base = offsets->soft_frame;
-Index: gcc-4_6-branch/gcc/config/arm/arm.h
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/arm/arm.h	2011-10-17 17:45:41.910551858 -0700
-+++ gcc-4_6-branch/gcc/config/arm/arm.h	2011-10-17 17:48:35.447412371 -0700
-@@ -2041,7 +2041,8 @@
- /* Try to generate sequences that don't involve branches, we can then use
-    conditional instructions */
- #define BRANCH_COST(speed_p, predictable_p) \
--  (TARGET_32BIT ? 4 : (optimize > 0 ? 2 : 0))
-+  (TARGET_32BIT ? (TARGET_THUMB2 && !speed_p ? 1 : 4) \
-+		: (optimize > 0 ? 2 : 0))
- 
- /* Position Independent Code.  */
- /* We decide which register to use based on the compilation options and
-Index: gcc-4_6-branch/gcc/config/arm/arm.md
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/arm/arm.md	2011-10-17 17:46:11.002696119 -0700
-+++ gcc-4_6-branch/gcc/config/arm/arm.md	2011-10-17 17:46:11.202697111 -0700
-@@ -6187,7 +6187,7 @@
-   [(match_operand:DF 0 "arm_reload_memory_operand" "=o")
-    (match_operand:DF 1 "s_register_operand" "r")
-    (match_operand:SI 2 "s_register_operand" "=&r")]
--  "TARGET_32BIT"
-+  "TARGET_THUMB2"
-   "
-   {
-     enum rtx_code code = GET_CODE (XEXP (operands[0], 0));
-@@ -8359,7 +8359,8 @@
- 	rtx reg = gen_reg_rtx (SImode);
- 
- 	emit_insn (gen_addsi3 (reg, operands[0],
--			       GEN_INT (-INTVAL (operands[1]))));
-+			       gen_int_mode (-INTVAL (operands[1]),
-+			       		     SImode)));
- 	operands[0] = reg;
-       }
- 
-Index: gcc-4_6-branch/gcc/config/arm/unwind-arm.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/config/arm/unwind-arm.c	2011-10-17 17:45:41.390549278 -0700
-+++ gcc-4_6-branch/gcc/config/arm/unwind-arm.c	2011-10-17 17:46:11.000000000 -0700
-@@ -1196,8 +1196,6 @@
- 		  ucbp->barrier_cache.bitpattern[4] = (_uw) &data[1];
- 
- 		  if (data[0] & uint32_highbit)
--		    phase2_call_unexpected_after_unwind = 1;
--		  else
- 		    {
- 		      data += rtti_count + 1;
- 		      /* Setup for entry to the handler.  */
-@@ -1207,6 +1205,8 @@
- 		      _Unwind_SetGR (context, 0, (_uw) ucbp);
- 		      return _URC_INSTALL_CONTEXT;
- 		    }
-+		  else
-+		    phase2_call_unexpected_after_unwind = 1;
- 		}
- 	      if (data[0] & uint32_highbit)
- 		data++;
-Index: gcc-4_6-branch/gcc/fold-const.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/fold-const.c	2011-10-17 17:45:32.050502963 -0700
-+++ gcc-4_6-branch/gcc/fold-const.c	2011-10-17 17:46:11.178696990 -0700
-@@ -13788,7 +13788,8 @@
-   if (TREE_CODE_CLASS (code) != tcc_type
-       && TREE_CODE_CLASS (code) != tcc_declaration
-       && code != TREE_LIST
--      && code != SSA_NAME)
-+      && code != SSA_NAME
-+      && CODE_CONTAINS_STRUCT (code, TS_COMMON))
-     fold_checksum_tree (TREE_CHAIN (expr), ctx, ht);
-   switch (TREE_CODE_CLASS (code))
-     {
-Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr40887.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr40887.c	2011-06-24 08:13:47.000000000 -0700
-+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr40887.c	2011-10-17 17:46:11.182697014 -0700
-@@ -1,5 +1,6 @@
- /* { dg-options "-O2 -march=armv5te" }  */
- /* { dg-final { scan-assembler "blx" } } */
-+/* { dg-prune-output "switch .* conflicts with" } */
- 
- int (*indirect_func)();
- 
-Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr42575.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr42575.c	2011-06-24 08:13:47.000000000 -0700
-+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr42575.c	2011-10-17 17:46:11.182697014 -0700
-@@ -1,4 +1,4 @@
--/* { dg-options "-O2 -march=armv7-a" }  */
-+/* { dg-options "-O2" }  */
- /* Make sure RA does good job allocating registers and avoids
-    unnecessary moves.  */
- /* { dg-final { scan-assembler-not "mov" } } */
-Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr43698.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr43698.c	2011-06-24 08:13:47.000000000 -0700
-+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr43698.c	2011-10-17 17:46:11.182697014 -0700
-@@ -1,5 +1,5 @@
- /* { dg-do run } */
--/* { dg-options "-Os -march=armv7-a" } */
-+/* { dg-options "-Os" } */
- #include <stdint.h>
- #include <stdlib.h>
- 
-Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr44788.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/pr44788.c	2011-06-24 08:13:47.000000000 -0700
-+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/pr44788.c	2011-10-17 17:46:11.182697014 -0700
-@@ -1,6 +1,6 @@
- /* { dg-do compile } */
- /* { dg-require-effective-target arm_thumb2_ok } */
--/* { dg-options "-Os -fno-strict-aliasing -fPIC -mthumb -march=armv7-a -mfpu=vfp3 -mfloat-abi=softfp" } */
-+/* { dg-options "-Os -fno-strict-aliasing -fPIC -mthumb -mfpu=vfp3 -mfloat-abi=softfp" } */
- 
- void joint_decode(float* mlt_buffer1, int t) {
-     int i;
-Index: gcc-4_6-branch/gcc/testsuite/gcc.target/arm/sync-1.c
-===================================================================
---- gcc-4_6-branch.orig/gcc/testsuite/gcc.target/arm/sync-1.c	2011-06-24 08:13:47.000000000 -0700
-+++ gcc-4_6-branch/gcc/testsuite/gcc.target/arm/sync-1.c	2011-10-17 17:46:11.182697014 -0700
-@@ -1,5 +1,6 @@
--/* { dg-do run } */
--/* { dg-options "-O2 -march=armv7-a" } */
-+
-+/* { dg-do run { target sync_int_long } } */
-+/* { dg-options "-O2" } */
- 
- volatile int mem;
- 
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch
deleted file mode 100644
index 2c6bcda..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/pr47551.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Upstream-Status:Backport
-2011-02-02  Richard Sandiford  <richard.sandiford at linaro.org>
-
-	gcc/
-	PR target/47551
-	* config/arm/arm.c (coproc_secondary_reload_class): Handle
-	structure modes.  Don't check neon_vector_mem_operand for
-	vector or structure modes.
-
-	gcc/testsuite/
-	PR target/47551
-	* gcc.target/arm/neon-modes-2.c: New test.
-
-=== modified file 'gcc/config/arm/arm.c'
---- old/gcc/config/arm/arm.c	2011-02-21 14:04:51 +0000
-+++ new/gcc/config/arm/arm.c	2011-03-02 11:38:43 +0000
-@@ -9139,11 +9139,14 @@
-       return GENERAL_REGS;
-     }
- 
-+  /* The neon move patterns handle all legitimate vector and struct
-+     addresses.  */
-   if (TARGET_NEON
-+      && MEM_P (x)
-       && (GET_MODE_CLASS (mode) == MODE_VECTOR_INT
--          || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
--      && neon_vector_mem_operand (x, 0))
--     return NO_REGS;
-+	  || GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT
-+	  || VALID_NEON_STRUCT_MODE (mode)))
-+    return NO_REGS;
- 
-   if (arm_coproc_mem_operand (x, wb) || s_register_operand (x, mode))
-     return NO_REGS;
-
-=== added file 'gcc/testsuite/gcc.target/arm/neon-modes-2.c'
---- old/gcc/testsuite/gcc.target/arm/neon-modes-2.c	1970-01-01 00:00:00 +0000
-+++ new/gcc/testsuite/gcc.target/arm/neon-modes-2.c	2011-02-02 10:02:45 +0000
-@@ -0,0 +1,24 @@
-+/* { dg-do compile } */
-+/* { dg-require-effective-target arm_neon_ok } */
-+/* { dg-options "-O1" } */
-+/* { dg-add-options arm_neon } */
-+
-+#include "arm_neon.h"
-+
-+#define SETUP(A) x##A = vld3_u32 (ptr + A * 0x20)
-+#define MODIFY(A) x##A = vld3_lane_u32 (ptr + A * 0x20 + 0x10, x##A, 1)
-+#define STORE(A) vst3_u32 (ptr + A * 0x20, x##A)
-+
-+#define MANY(A) A (0), A (1), A (2), A (3), A (4), A (5)
-+
-+void
-+bar (uint32_t *ptr, int y)
-+{
-+  uint32x2x3_t MANY (SETUP);
-+  int *x = __builtin_alloca (y);
-+  int z[0x1000];
-+  foo (x, z);
-+  MANY (MODIFY);
-+  foo (x, z);
-+  MANY (STORE);
-+}
-
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
deleted file mode 100644
index b4351ee..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/use-defaults.h-and-t-oe-in-B.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-Upstream-Status: Pending
-
-Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
-the source can be shared between gcc-cross-initial,
-gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
----
- gcc/Makefile.in  |    2 +-
- gcc/configure    |    4 ++--
- gcc/configure.ac |    4 ++--
- gcc/mkconfig.sh  |    4 ++--
- 4 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 7790915..3a0c34a 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -463,7 +463,7 @@ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
- TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
- 
- xmake_file=@xmake_file@
--tmake_file=@tmake_file@
-+tmake_file=@tmake_file@ ./t-oe
- TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@
- TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
- TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
-diff --git a/gcc/configure b/gcc/configure
-index 82fa3e4..d4711b5 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -11227,8 +11227,8 @@ for f in $tm_file; do
-        tm_include_list="${tm_include_list} $f"
-        ;;
-     defaults.h )
--       tm_file_list="${tm_file_list} \$(srcdir)/$f"
--       tm_include_list="${tm_include_list} $f"
-+       tm_file_list="${tm_file_list} ./$f"
-+       tm_include_list="${tm_include_list} ./$f"
-        ;;
-     * )
-        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 844d8da..a960343 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1628,8 +1628,8 @@ for f in $tm_file; do
-        tm_include_list="${tm_include_list} $f"
-        ;;
-     defaults.h )
--       tm_file_list="${tm_file_list} \$(srcdir)/$f"
--       tm_include_list="${tm_include_list} $f"
-+       tm_file_list="${tm_file_list} ./$f"
-+       tm_include_list="${tm_include_list} ./$f"
-        ;;
-     * )
-        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
-diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
-index d56df8c..875d0f1 100644
---- a/gcc/mkconfig.sh
-+++ b/gcc/mkconfig.sh
-@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
-     if [ $# -ge 1 ]; then
- 	echo '#ifdef IN_GCC' >> ${output}T
- 	for file in "$@"; do
--	    if test x"$file" = x"defaults.h"; then
-+	    if test x"$file" = x"./defaults.h"; then
- 		postpone_defaults_h="yes"
- 	    else
- 		echo "# include \"$file\"" >> ${output}T
-@@ -103,7 +103,7 @@ esac
- 
- # If we postponed including defaults.h, add the #include now.
- if test x"$postpone_defaults_h" = x"yes"; then
--    echo "# include \"defaults.h\"" >> ${output}T
-+    echo "# include \"./defaults.h\"" >> ${output}T
- fi
- 
- # Add multiple inclusion protection guard, part two.
--- 
-1.7.1
-
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch
deleted file mode 100644
index 6192c48..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/zecke-xgcc-cpp.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-upstream: n/a
-comment: Use the preprocessor we have just compiled instead the one of
-the system. There might be incompabilities between us and them.
-
-Index: gcc-4.6.0/Makefile.in
-===================================================================
---- gcc-4.6.0.orig/Makefile.in
-+++ gcc-4.6.0/Makefile.in
-@@ -270,6 +270,7 @@ BASE_TARGET_EXPORTS = \
- 	AR="$(AR_FOR_TARGET)"; export AR; \
- 	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
- 	CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
-+	CPP="$(CC_FOR_TARGET) -E"; export CPP; \
- 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
- 	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
- 	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
-Index: gcc-4.6.0/Makefile.tpl
-===================================================================
---- gcc-4.6.0.orig/Makefile.tpl
-+++ gcc-4.6.0/Makefile.tpl
-@@ -273,6 +273,7 @@ BASE_TARGET_EXPORTS = \
- 	AR="$(AR_FOR_TARGET)"; export AR; \
- 	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
- 	CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
-+	CPP="$(CC_FOR_TARGET) -E"; export CPP; \
- 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
- 	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
- 	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc b/toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc
deleted file mode 100644
index f6b4929..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-common-4.6.inc
+++ /dev/null
@@ -1,4 +0,0 @@
-# this will prepend this layer to FILESPATH
-FILESEXTRAPATHS := "${THISDIR}/gcc-4.6"
-PRINC := "${@int(PRINC) + 6}"
-ARM_INSTRUCTION_SET = "arm"
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb
deleted file mode 100644
index 29ddd67..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-cross-canadian_4.6.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit cross-canadian
-
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-cross-canadian.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb
deleted file mode 100644
index 22d4b05..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-cross-initial_4.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-devtools/gcc/gcc-cross_${PV}.bb
-require recipes-devtools/gcc/gcc-cross-initial.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb
deleted file mode 100644
index cdaa7e8..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-cross_4.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-cross.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb
deleted file mode 100644
index eff4df1..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk-initial_4.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-devtools/gcc/gcc-cross-initial_${PV}.bb
-require recipes-devtools/gcc/gcc-crosssdk-initial.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb
deleted file mode 100644
index 0a9f98a..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-crosssdk_4.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-devtools/gcc/gcc-cross_${PV}.bb
-require recipes-devtools/gcc/gcc-crosssdk.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb
deleted file mode 100644
index b755f55..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-runtime_4.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-runtime.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb b/toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb
deleted file mode 100644
index 6ad8973..0000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc_4.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-target.inc
diff --git a/toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb b/toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb
deleted file mode 100644
index fc2c1e3..0000000
--- a/toolchain-layer/recipes-devtools/gcc/libgcc_4.6.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-require recipes-devtools/gcc/gcc-${PV}.inc
-
-INHIBIT_DEFAULT_DEPS = "1"
-
-DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
-
-PKGSUFFIX = ""
-PKGSUFFIX_class-nativesdk = "-nativesdk"
-
-PACKAGES = "\
-    ${PN} \
-    ${PN}-dev \
-    ${PN}-dbg \
-    libgcov${PKGSUFFIX}-dev \
-"
-
-FILES_${PN} = "${base_libdir}/libgcc*.so.*"
-FILES_${PN}-dev = " \
-    ${base_libdir}/libgcc*.so \
-    ${libdir}/${TARGET_SYS}/${BINV}/*crt* \
-    ${libdir}/${TARGET_SYS}/${BINV}/libgcc*"
-FILES_libgcov${PKGSUFFIX}-dev = " \
-    ${libdir}/${TARGET_SYS}/${BINV}/libgcov.a \
-"
-FILES_${PN}-dbg += "${base_libdir}/.debug/"
-
-do_configure () {
-    target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##`
-    install -d ${D}${base_libdir} ${D}${libdir}
-    cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${B}
-    mkdir -p ${B}/${BPN}
-    cd ${B}/${BPN}
-    chmod a+x ${S}/${BPN}/configure
-    ${S}/${BPN}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
-}
-
-do_compile () {
-    target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##`
-    cd ${B}/${BPN}
-    oe_runmake MULTIBUILDTOP=${B}/$target/${BPN}/
-}
-
-do_install () {
-    target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##`
-    cd ${B}/${BPN}
-    oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${BPN}/ install
-
-    # Move libgcc_s into /lib
-    mkdir -p ${D}${base_libdir}
-    if [ -f ${D}${libdir}/nof/libgcc_s.so ]; then
-        mv ${D}${libdir}/nof/libgcc* ${D}${base_libdir}
-    else
-        mv ${D}${libdir}/libgcc* ${D}${base_libdir} || true
-    fi
-
-    # install the runtime in /usr/lib/ not in /usr/lib/gcc on target
-    # so that cross-gcc can find it in the sysroot
-
-    mv ${D}${libdir}/gcc/* ${D}${libdir}
-    rm -rf ${D}${libdir}/gcc/
-}
-
-do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_package"
-do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_package"
-do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_package"
-
-BBCLASSEXTEND = "nativesdk"
-
-INSANE_SKIP_${PN}-dev = "staticdev"
-INSANE_SKIP_libgcov${PKGSUFFIX}-dev = "staticdev"
-
-- 
1.9.1




More information about the Openembedded-devel mailing list