[oe] [meta-oe][toolchain-layer][PATCH] Remove toolchain-layer
Martin Jansa
martin.jansa at gmail.com
Fri Oct 9 09:11:19 UTC 2015
I think layer index should automatically show that the layer isn't
available in master branch and it's still valid layer for older releases
like daisy.
I would prefer to keep it in layer index, but I plan to merge this patch
before jethro is branched.
On Fri, Oct 9, 2015 at 11:06 AM, Philip Balister <philip at balister.org>
wrote:
> On 10/09/2015 08:12 AM, Khem Raj wrote:
> >
> >> On Oct 7, 2015, at 10:39 PM, Mike Looijmans <mike.looijmans at topic.nl>
> wrote:
> >>
> >> 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.
> >>
> >
> > this is good. Please remove it from layer index too if its there
>
>
> http://layers.openembedded.org/layerindex/branch/master/layer/toolchain-layer/
>
> Koen is listed as the maintainer. He'll need to handle the removal from
> the layer index.
>
> Philip
>
>
> >
> >> 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
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-devel mailing list
> >> Openembedded-devel at lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
> >
> >
>
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
>
More information about the Openembedded-devel
mailing list