All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC]: Toolchain build sequence alteration.
@ 2008-07-15  1:58 Khem Raj
  2008-07-15  7:34 ` Henning Heinold
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Khem Raj @ 2008-07-15  1:58 UTC (permalink / raw)
  To: openembedded-devel@openembedded.org

Hi,

I have faced a problem which took me a while to understand. I was
working on uclibc and therefore I needed to rebuild uclibc many times
and thats when I saw this issue.

When I rebuilt only uclibc after a complete rebuild. Suddenly in the new
root file system with new uclibc application wont load properly
complaining about missing symbols (symbols were from libgcc like
__aeabi_*)

Looking at it the problem is that right now we build uclibc with a
intermediate compiler(gcc-cross-initial) which is build with
--disable-shared. We use this uclibc and its headers and dev-libs and we
rebuild a fresh full cross-gcc (gcc-cross) with -shared-lib support to
build the rest of system/image.

Therefore the uclibc we build in subsequent time will be build using
cross-gcc and not cross-gcc-initial. 

What happens is that some of the libgcc symbols get linked into
uclibc/libc.so when it is built with a gcc without shared lib
support(gcc-initial). When building whole sytem different
applications(e.g. gawk) which need these symbols link as if they will
get these symbols from libc.so at runtime, which is correct if I ran
with the first time build uclibc but when I rebuilt just uclibc all
these symbols were not being resolved by ld.so because there were no
DT_NEEDED entry for libgcc_s.so in the application binary as it was
build to get these symbols from libc.so, but rebuilt uclibc now do not
export these symbols because it was built with a compiler that supports
shared-libs(cross-gcc).

Then I went to see the toolchain build order. Currently we do

cross-binutils -> kernel-headers -> uclibc-headers -> cross-gcc
(--disable-shared) -> uclibc -> cross-gcc

I think this can be improved and I implemented the following steps.

cross-binutils -> cross-gcc (--disable-shared) -> kernel-headers ->
eglibc/glibc/uclibc headers + startup files + dummy libc.so -> cross-gcc
(--enable-shared) -> glibc/eglibc/uclibc -> cross-gcc

These steps work same for uclibc as well as glibc/eglibc toolchains
irrespective of architectures.

These steps work for both NPTL and LinuxThreads toolchains. 

Given we use these steps, we will have same toolchain build sequence in
all circumstances and will help to reduce the current complex toolchain
builds we have.

We will not need glibc-intermediate step and we will introduce a new
step called cross-gcc-intermidiate.

I have so far tested this sequence on arm uclibc and it works well and
understandably solves the issue I am seeing.

I have used this sequence in external scripts to build toolchains too
and it has worked well.

Now, I have a prototype patch for uclibc-0.9.29+gcc-4.2.4 based
toolchain which I am attaching here.

If we agree on this aproach I can go ahead and do the same for
eglibc/glibc toolchains too.

I have not tested it on older compiler/library combinations but I think
it will work there too as I have build various combinations in the past
with same sequence outside OE.

Comments and feedback is welcome.

Thanks

-Khem


#
# old_revision [7131f28196073180061901d8749502f5acea9a0b]
#
# add_file "packages/gcc/gcc-cross-intermediate.inc"
#  content [4b265f0f3a4cb31194b9db1bdbf28b9290477fbe]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.4.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# patch "packages/uclibc/uclibc-initial_0.9.29.bb"
#  from [d9cf01fb4dec69ff1f796d39c9078030982eacca]
#    to [af0ccde83d59f1948f1f2b5f7d4952d4855c58bc]
# 
# patch "packages/uclibc/uclibc.inc"
#  from [48b0ba2e4cff05071b3b812ef0be0861870cd00c]
#    to [02fc716a2db98034113d1e097f762628043fc160]
# 
# patch "packages/uclibc/uclibc_0.9.29.bb"
#  from [cbf70d92d0ec5221de098ec3bc7f8ad20c014b7a]
#    to [51f2e05afbbfa8d6e33ce71de586575aef222765]
#
============================================================
--- packages/gcc/gcc-cross-intermediate.inc	4b265f0f3a4cb31194b9db1bdbf28b9290477fbe
+++ packages/gcc/gcc-cross-intermediate.inc	4b265f0f3a4cb31194b9db1bdbf28b9290477fbe
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+# @todo Please add comment on why this is (still?) needed?
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+		--enable-shared \
+		--disable-multilib \
+		--enable-languages=c \
+		--enable-target-optspace \
+		--program-prefix=${TARGET_PREFIX} \
+		--with-sysroot=${STAGING_DIR_TARGET} \
+		--with-build-sysroot=${STAGING_DIR_TARGET} \
+		${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+	:
+}
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/uclibc/uclibc-initial_0.9.29.bb	d9cf01fb4dec69ff1f796d39c9078030982eacca
+++ packages/uclibc/uclibc-initial_0.9.29.bb	af0ccde83d59f1948f1f2b5f7d4952d4855c58bc
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,13 +11,20 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	install -d ${CROSS_DIR}/${TARGET_SYS}	
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc.inc	48b0ba2e4cff05071b3b812ef0be0861870cd00c
+++ packages/uclibc/uclibc.inc	02fc716a2db98034113d1e097f762628043fc160
@@ -19,12 +19,6 @@ python __anonymous () {
                                    bb.data.getVar('TARGET_OS', d, 1))
 }
 
-PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
-PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
-DEPENDS = "virtual/${TARGET_PREFIX}binutils \
-	   virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
-RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
-
 # Blackfin needs a wrapper around ld
 DEPENDS_append_bfin = " elf2flt "
 
============================================================
--- packages/uclibc/uclibc_0.9.29.bb	cbf70d92d0ec5221de098ec3bc7f8ad20c014b7a
+++ packages/uclibc/uclibc_0.9.29.bb	51f2e05afbbfa8d6e33ce71de586575aef222765
@@ -11,9 +11,12 @@ require uclibc.inc
 DEFAULT_PREFERENCE = "3"
 
 require uclibc.inc
+PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
+PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
+DEPENDS = "virtual/${TARGET_PREFIX}binutils \
+           virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 
-PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
-
 SRC_URI += "file://uClibc.machine file://uClibc.distro \
 	    file://errno_values.h.patch;patch=1 \
 	    file://termios.h.patch;patch=1 \





^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-15  1:58 [RFC]: Toolchain build sequence alteration Khem Raj
@ 2008-07-15  7:34 ` Henning Heinold
  2008-07-16  8:10 ` Khem Raj
  2008-08-02 12:03 ` [RFC]: Toolchain build sequence alteration Koen Kooi
  2 siblings, 0 replies; 20+ messages in thread
From: Henning Heinold @ 2008-07-15  7:34 UTC (permalink / raw)
  To: openembedded-devel

Hi,

yes I encounterd this problem many times and didnt know where it came
from, so my solution was to clean whole oetmp und build all again. But
now its far clear what happend. I like the solution very much. So +1
from me.


Bye,

Henning



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-15  1:58 [RFC]: Toolchain build sequence alteration Khem Raj
  2008-07-15  7:34 ` Henning Heinold
@ 2008-07-16  8:10 ` Khem Raj
  2008-07-16  8:46   ` Koen Kooi
  2008-07-16 20:43   ` Leon Woestenberg
  2008-08-02 12:03 ` [RFC]: Toolchain build sequence alteration Koen Kooi
  2 siblings, 2 replies; 20+ messages in thread
From: Khem Raj @ 2008-07-16  8:10 UTC (permalink / raw)
  To: openembedded-devel@openembedded.org

[-- Attachment #1: Type: text/plain, Size: 3929 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Khem Raj wrote:
> Hi,
> 
> I have faced a problem which took me a while to understand. I was
> working on uclibc and therefore I needed to rebuild uclibc many times
> and thats when I saw this issue.
> 
> When I rebuilt only uclibc after a complete rebuild. Suddenly in the new
> root file system with new uclibc application wont load properly
> complaining about missing symbols (symbols were from libgcc like
> __aeabi_*)
> 
> Looking at it the problem is that right now we build uclibc with a
> intermediate compiler(gcc-cross-initial) which is build with
> --disable-shared. We use this uclibc and its headers and dev-libs and we
> rebuild a fresh full cross-gcc (gcc-cross) with -shared-lib support to
> build the rest of system/image.
> 
> Therefore the uclibc we build in subsequent time will be build using
> cross-gcc and not cross-gcc-initial. 
> 
> What happens is that some of the libgcc symbols get linked into
> uclibc/libc.so when it is built with a gcc without shared lib
> support(gcc-initial). When building whole sytem different
> applications(e.g. gawk) which need these symbols link as if they will
> get these symbols from libc.so at runtime, which is correct if I ran
> with the first time build uclibc but when I rebuilt just uclibc all
> these symbols were not being resolved by ld.so because there were no
> DT_NEEDED entry for libgcc_s.so in the application binary as it was
> build to get these symbols from libc.so, but rebuilt uclibc now do not
> export these symbols because it was built with a compiler that supports
> shared-libs(cross-gcc).
> 
> Then I went to see the toolchain build order. Currently we do
> 
> cross-binutils -> kernel-headers -> uclibc-headers -> cross-gcc
> (--disable-shared) -> uclibc -> cross-gcc
> 
> I think this can be improved and I implemented the following steps.
> 
> cross-binutils -> cross-gcc (--disable-shared) -> kernel-headers ->
> eglibc/glibc/uclibc headers + startup files + dummy libc.so -> cross-gcc
> (--enable-shared) -> glibc/eglibc/uclibc -> cross-gcc
> 
> These steps work same for uclibc as well as glibc/eglibc toolchains
> irrespective of architectures.
> 
> These steps work for both NPTL and LinuxThreads toolchains. 
> 
> Given we use these steps, we will have same toolchain build sequence in
> all circumstances and will help to reduce the current complex toolchain
> builds we have.
> 
> We will not need glibc-intermediate step and we will introduce a new
> step called cross-gcc-intermidiate.
> 
> I have so far tested this sequence on arm uclibc and it works well and
> understandably solves the issue I am seeing.
> 
> I have used this sequence in external scripts to build toolchains too
> and it has worked well.
> 
> Now, I have a prototype patch for uclibc-0.9.29+gcc-4.2.4 based
> toolchain which I am attaching here.
> 
> If we agree on this aproach I can go ahead and do the same for
> eglibc/glibc toolchains too.
> 
> I have not tested it on older compiler/library combinations but I think
> it will work there too as I have build various combinations in the past
> with same sequence outside OE.
> 
> Comments and feedback is welcome.
> 
> Thanks
> 
> -Khem

Hello All,

I have meanwhile developed a relatively complete patch. I have tested it on uclibc-0.9.29 glibc_2.6.1 and eglibc_svn and all have worked well. I have also booted the console-images produced.

Here is the revised patch.

As its a fundamental change and its not possible for me to test all combos. Any testing will be highly appreciated.

Thanks

- -Khem

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIfaz+HnJKy6V6em4RAlQmAJ9YyF1UTn4zhbZ6uTcoS/IKr05uyACdHyhu
a/DEZHuwPPCR0wR5T4NXaMY=
=X5/H
-----END PGP SIGNATURE-----

[-- Attachment #2: oe-new-toolchain-build-sequence.patch --]
[-- Type: text/x-diff, Size: 61819 bytes --]

#
# old_revision [641a15c42908d49a2d22b32302275bdcee06d601]
#
# delete "packages/eglibc/eglibc-intermediate.inc"
# 
# delete "packages/eglibc/eglibc-intermediate_svn.bb"
# 
# delete "packages/glibc/glibc-intermediate.inc"
# 
# delete "packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.3.6.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.4.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.5.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.6.1.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.7.bb"
# 
# delete "packages/glibc/glibc-intermediate_cvs.bb"
# 
# add_file "packages/gcc/gcc-cross-intermediate.inc"
#  content [4b265f0f3a4cb31194b9db1bdbf28b9290477fbe]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.0.2.bb"
#  content [d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.0.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.1.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.2.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.1.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.2.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.3.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.4.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.3.1.bb"
#  content [30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb"
#  content [bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb"
#  content [7ca0df097d7377b3d3e86f9ab60edc17327fc874]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# patch "conf/distro/angstrom-2008.1.conf"
#  from [f64ebcf55e85b504d3be169befac3c7981aa74d9]
#    to [8703f595671685f632e51c96d1be75cdceddfe83]
# 
# patch "conf/distro/celinux-test.conf"
#  from [beca92fe305476a03cc17be4ecf3f9b8a0b134c9]
#    to [bdd5c5b24a8a64570690719c1718c54aa9b7e040]
# 
# patch "conf/distro/chinook-compat.conf"
#  from [61ddfe57a63bdd965dd857bd75478e87045007b9]
#    to [93924b593b85319b4802d8a7f484af532249bffa]
# 
# patch "conf/distro/gmustix.conf"
#  from [88db2db3032412eac284ef6efa7a4668c79a29b2]
#    to [2b724e665142c8756cd372024844dab692c13934]
# 
# patch "conf/distro/include/angstrom-2007-for-openmoko.inc"
#  from [4e926bdf5178cce4d068eeb210aba5adf7982351]
#    to [476d580172727456c05df8ea8b59d7d3fb738051]
# 
# patch "conf/distro/include/angstrom-eglibc.inc"
#  from [e0e7b6758775be96c0a58faecff645b05ef7c3e2]
#    to [e56df3f5a1f620f0dfa7795ff188661bf1524389]
# 
# patch "conf/distro/include/angstrom-glibc.inc"
#  from [64060b7ace4591e34cd8206bb5cd3ba77c6554d4]
#    to [9a81308293772bcff0ea1b412e0fa3a478a205fe]
# 
# patch "conf/distro/include/insane-srcrevs.inc"
#  from [e685e3b620d54ebf0b096e4709ed95ca3329b08c]
#    to [cbc144484de6ac4d699d0a609a011f4f1f04d2bf]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [c24a6b6487621a87f028138310d8af27665e8ab3]
#    to [08be0854d3bcee895a80ca1e871dc0fe29954dd8]
# 
# patch "conf/distro/include/slugos.inc"
#  from [00976339770c45e02a1ecc25cf9066a2c866eeea]
#    to [e1f0d5f66c6d127b240660bc34b67a2be7b046ae]
# 
# patch "conf/distro/jlime-donkey.conf"
#  from [50f90b05f62918f1b8efc4d5f311a7d80b424ad9]
#    to [4a982f4afe5f74d6cb95968061b4b2ea87f0cecb]
# 
# patch "conf/distro/jlime-henchman.conf"
#  from [c5c0029ec6fcea5daaf00874e1a20e1d514d7586]
#    to [67c13540c7a0b1c2c91d011c9dcbfac4c98fe5da]
# 
# patch "conf/distro/jlime-mongo.conf"
#  from [649596799adddbe974beb9a95120de0c9db17b28]
#    to [3ebb725f06773e26010c95c25fd4189ca8419294]
# 
# patch "conf/distro/jlime-shrek.conf"
#  from [4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491]
#    to [7da188f8cd828d10ef57f503be471621ce47bee7]
# 
# patch "conf/distro/mamona.conf"
#  from [fd683d8ddd62359322234b247211b416f546a004]
#    to [0b55b7e50737a7003497a6a3a14f7911317ad862]
# 
# patch "conf/distro/minimal.conf"
#  from [bd599ccea87a555d1025fc9d422556bb405c21d9]
#    to [daf53521710448ae534d9c015c119c2543b37d0a]
# 
# patch "conf/distro/nylon.conf"
#  from [55b55fd58b093f18dc69ad389287e77c548403ae]
#    to [7c6cb5856944ad2ee3fc41113898316d6749fd5a]
# 
# patch "conf/distro/openprotium.conf"
#  from [c91df50d1b1b24f6a52eba1264c1e195813952dd]
#    to [097d78161ffbbcc47fe5b0e8c1749859d98dfc59]
# 
# patch "conf/distro/oplinux-uclibc.conf"
#  from [ded77d3149a141de656d62e5c1ed7e161f1e500d]
#    to [6535d97b4b048850feda85f2e417dcb5c83b6d18]
# 
# patch "conf/distro/oplinux.conf"
#  from [0dbc9a811a5f426f5d3e4ead5a20330b56e51e41]
#    to [cc1ebc8e8f1d1ee5b614698053ca46d139be9ed7]
# 
# patch "conf/distro/sharprom-compatible.conf"
#  from [866d17894061cd031cda619513332fa012433fa3]
#    to [89b78178c717a75e6dc950636c6903fbfb6fb989]
# 
# patch "conf/distro/unslung.conf"
#  from [0ef6d906a67568b77e1f68fc1ac5c65f65586c67]
#    to [e482d634afd26f12871e55a0ec8caa4bc7bd70ac]
# 
# patch "conf/distro/wrt54oe.conf"
#  from [9d556281a94a6474ec9b7e6edffabcecd876b083]
#    to [1253df366c87e03cae180335a881c1f9bd08b4e7]
# 
# patch "conf/local.conf.sample"
#  from [fa7f5ad0f812c943367b2c88b4e4f7165797959d]
#    to [5164ed855456a3c58975fcfbad1c9da8dd8d60f2]
# 
# patch "conf/machine/native.conf"
#  from [9f73a28ea65b27265df3e4afa2107401f9463ead]
#    to [e4b8c17ba26581950b67bf9e306d9f1664c0741f]
# 
# patch "packages/eglibc/eglibc-initial.inc"
#  from [9cc9a816e903fd588bfe9b6529f690d24297a54b]
#    to [4b2b73384f3c8f940e42387057da88a76435f44c]
# 
# patch "packages/eglibc/eglibc.inc"
#  from [20ecb0b8894a6fa79214db154c8cd4e8458d7237]
#    to [eef22ba34145bef9522d66a4eb30da587ba3e6a2]
# 
# patch "packages/glibc/glibc-initial.inc"
#  from [0480105971d23c66b379db96774c07f2a0913989]
#    to [b63bfe7eb2b35475f853b3d412838a369830b95d]
# 
# patch "packages/glibc/glibc.inc"
#  from [94a32473f1193137d45da97d6ed786ae9e755094]
#    to [d7da3e08d193524257645bad4468dbb3dd7ed044]
# 
# patch "packages/meta/external-toolchain.bb"
#  from [ebcd8679c393d51824573b5a70c7a071f8521117]
#    to [fe769763ba169fd561e2c5f1153726281afa9952]
# 
# patch "packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb"
#  from [63c582236d5e631780a864456ba4db4862602a0e]
#    to [8e92e1882cb3bc63515abe5cc42b6577706e118d]
# 
# patch "packages/uclibc/uclibc-initial_0.9.26.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [87152e05358bc4ae69665b334c5965435f72285d]
# 
# patch "packages/uclibc/uclibc-initial_0.9.27.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [f5c365faad4564b4e89f07778573e5722ee8267b]
# 
# patch "packages/uclibc/uclibc-initial_0.9.28.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [f5c365faad4564b4e89f07778573e5722ee8267b]
# 
# patch "packages/uclibc/uclibc-initial_0.9.29.bb"
#  from [d9cf01fb4dec69ff1f796d39c9078030982eacca]
#    to [af0ccde83d59f1948f1f2b5f7d4952d4855c58bc]
# 
# patch "packages/uclibc/uclibc-initial_svn.bb"
#  from [2715cc791b3fdd1b8e62328291e3ef33973bacc0]
#    to [766c264be7d787f2285f02b13a392f43cb2a87d2]
# 
# patch "packages/uclibc/uclibc.inc"
#  from [48b0ba2e4cff05071b3b812ef0be0861870cd00c]
#    to [4f97a9d058115dbb12ae1c5d047fb84965500a51]
#
============================================================
--- packages/gcc/gcc-cross-intermediate.inc	4b265f0f3a4cb31194b9db1bdbf28b9290477fbe
+++ packages/gcc/gcc-cross-intermediate.inc	4b265f0f3a4cb31194b9db1bdbf28b9290477fbe
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+# @todo Please add comment on why this is (still?) needed?
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+		--enable-shared \
+		--disable-multilib \
+		--enable-languages=c \
+		--enable-target-optspace \
+		--program-prefix=${TARGET_PREFIX} \
+		--with-sysroot=${STAGING_DIR_TARGET} \
+		--with-build-sysroot=${STAGING_DIR_TARGET} \
+		${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+	:
+}
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
+++ packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
@@ -0,0 +1,4 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-multilib"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.1.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.1.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
+++ packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
@@ -0,0 +1,14 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+		  --disable-libgomp \
+		  --disable-libssp"
+
+# Hack till we fix *libc properly
+do_stage_append() {
+        ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
@@ -0,0 +1,2 @@
+require gcc-cross_csl-arm-2005q3.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
@@ -0,0 +1,7 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-2006q1"
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- conf/distro/angstrom-2008.1.conf	f64ebcf55e85b504d3be169befac3c7981aa74d9
+++ conf/distro/angstrom-2008.1.conf	8703f595671685f632e51c96d1be75cdceddfe83
@@ -70,9 +70,8 @@ PREFERRED_VERSION_linux-libc-headers 	= 
 PREFERRED_VERSION_linux-libc-headers 	= "2.6.23"
 
 #Prefer glibc 2.6 and uclibc 0.9.29, these have had the most testing.
-PREFERRED_VERSION_glibc 		?= "2.6.1"
-PREFERRED_VERSION_glibc-intermediate 	?= "2.6.1"
-PREFERRED_VERSION_glibc-initial 	?= "2.6.1"
+PREFERRED_VERSION_glibc 		?= "2.3.6"
+PREFERRED_VERSION_glibc-initial 	?= "2.3.6"
 
 #Prefer a newer GTK+ and friends
 PREFERRED_VERSION_gtk+             	?= "2.12.3"
@@ -103,7 +102,7 @@ ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 
 #Everybody else can just use this: 
-ANGSTROM_GCC_VERSION 			?= "4.2.4"
+ANGSTROM_GCC_VERSION 			?= "3.4.4"
 
 PREFERRED_VERSION_gcc               ?= "${ANGSTROM_GCC_VERSION}"
 PREFERRED_VERSION_gcc-cross         ?= "${ANGSTROM_GCC_VERSION}"
@@ -123,6 +122,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
============================================================
--- conf/distro/celinux-test.conf	beca92fe305476a03cc17be4ecf3f9b8a0b134c9
+++ conf/distro/celinux-test.conf	bdd5c5b24a8a64570690719c1718c54aa9b7e040
@@ -38,6 +38,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # toolchain
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
============================================================
--- conf/distro/chinook-compat.conf	61ddfe57a63bdd965dd857bd75478e87045007b9
+++ conf/distro/chinook-compat.conf	93924b593b85319b4802d8a7f484af532249bffa
@@ -42,14 +42,15 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 MACHINE_KERNEL_VERSION = "2.6"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_PROVIDER_virtual/libc = "glibc"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-header = "linux-libc-headers"
@@ -71,7 +72,6 @@ PREFERRED_VERSION_glibc = "2.5"
 PREFERRED_VERSION_linux-libc-headers = "2.6.20"
 
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 PREFERRED_VERSION_glibc-initial = "2.5"
 
 PREFERRED_VERSION_libtool = "1.5.6"
============================================================
--- conf/distro/gmustix.conf	88db2db3032412eac284ef6efa7a4668c79a29b2
+++ conf/distro/gmustix.conf	2b724e665142c8756cd372024844dab692c13934
@@ -8,6 +8,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 IMAGE_FSTYPES = "jffs2"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
============================================================
--- conf/distro/include/angstrom-2007-for-openmoko.inc	4e926bdf5178cce4d068eeb210aba5adf7982351
+++ conf/distro/include/angstrom-2007-for-openmoko.inc	476d580172727456c05df8ea8b59d7d3fb738051
@@ -133,9 +133,6 @@ PREFERRED_VERSION_uclibc-initial_avr32 =
 PREFERRED_VERSION_uclibc_avr32 = "0.9.28"
 PREFERRED_VERSION_uclibc-initial_avr32 = "0.9.28"
 
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
-
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 
 # To use an EABI compatible version 3 series gcc, either uncomment 
@@ -153,17 +150,17 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
 PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
============================================================
--- conf/distro/include/angstrom-eglibc.inc	e0e7b6758775be96c0a58faecff645b05ef7c3e2
+++ conf/distro/include/angstrom-eglibc.inc	e56df3f5a1f620f0dfa7795ff188661bf1524389
@@ -4,13 +4,13 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 PREFERRED_PROVIDER_virtual/libc = "eglibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
+PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
+PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
+PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
+PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
 
============================================================
--- conf/distro/include/angstrom-glibc.inc	64060b7ace4591e34cd8206bb5cd3ba77c6554d4
+++ conf/distro/include/angstrom-glibc.inc	9a81308293772bcff0ea1b412e0fa3a478a205fe
@@ -6,13 +6,13 @@ PREFERRED_PROVIDER_linux-libc-headers ?=
 PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
@@ -25,13 +25,11 @@ FULL_OPTIMIZATION_pn-perl = "-fexpensive
 FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -Os"
 
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
-FULL_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
 
 BUILD_OPTIMIZATION = "-Os"
 BUILD_OPTIMIZATION_pn-perl = "-O1"
-BUILD_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 BUILD_OPTIMIZATION_pn-glibc = "-O2"
 BUILD_OPTIMIZATION_sparc = "-O2"
 
============================================================
--- conf/distro/include/insane-srcrevs.inc	e685e3b620d54ebf0b096e4709ed95ca3329b08c
+++ conf/distro/include/insane-srcrevs.inc	cbc144484de6ac4d699d0a609a011f4f1f04d2bf
@@ -4,7 +4,6 @@ SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
 SRCREV_pn-eds-dbus ?= "${AUTOREV}"
 SRCREV_pn-eglibc ?= "${AUTOREV}"
 SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
-SRCREV_pn-eglibc-intermediate ?= "${AUTOREV}"
 SRCREV_pn-ezxd ?= "${AUTOREV}"
 SRCREV_pn-fbgrab-viewer-native ?= "${AUTOREV}"
 SRCREV_pn-fstests ?= "${AUTOREV}"
============================================================
--- conf/distro/include/sane-srcrevs.inc	c24a6b6487621a87f028138310d8af27665e8ab3
+++ conf/distro/include/sane-srcrevs.inc	08be0854d3bcee895a80ca1e871dc0fe29954dd8
@@ -28,7 +28,6 @@ SRCREV_pn-eglibc-initial ?= "6229"
 SRCREV_pn-eds-dbus ?= "659"
 SRCREV_pn-eglibc ?= "6229"
 SRCREV_pn-eglibc-initial ?= "6229"
-SRCREV_pn-eglibc-intermediate ?= "6229"
 SRCREV_pn-enlazar ?= "37"
 SRCREV_pn-exalt ?= "79"
 SRCREV_pn-exalt-daemon ?= "78"
============================================================
--- conf/distro/include/slugos.inc	00976339770c45e02a1ecc25cf9066a2c866eeea
+++ conf/distro/include/slugos.inc	e1f0d5f66c6d127b240660bc34b67a2be7b046ae
@@ -96,13 +96,14 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc"
 
 # Set the preferred provider for a few toolchain-related items, otherwise
 # these may be selected from the external-toolchain instead.
@@ -119,7 +120,6 @@ PREFERRED_VERSION_glibc              ?= 
 PREFERRED_VERSION_gcc-cross-sdk      ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial  ?= "4.1.2"
 PREFERRED_VERSION_glibc              ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial      ?= "2.5"
 
 # Select the smallest provider of x11 libraries
============================================================
--- conf/distro/jlime-donkey.conf	50f90b05f62918f1b8efc4d5f311a7d80b424ad9
+++ conf/distro/jlime-donkey.conf	4a982f4afe5f74d6cb95968061b4b2ea87f0cecb
@@ -20,10 +20,11 @@ PREFERRED_PROVIDERS +=  "virtual/${TARGE
 #<> We will set CVS DATE when things are known to work.
 #<>-----------------------------------------------------------------<
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
 
 #<>----------------------------------------------------------------->
 #<> We want this so we can crosscompile the kernel using gcc 3.4.3
@@ -54,7 +55,6 @@ PREFERRED_VERSION_glibc-initial = "2.6.1
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"                                             		    
 PREFERRED_VERSION_glibc = "2.6.1"
 PREFERRED_VERSION_glibc-initial = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 
 #<>------------------------------------------------------------------>
 #<>
============================================================
--- conf/distro/jlime-henchman.conf	c5c0029ec6fcea5daaf00874e1a20e1d514d7586
+++ conf/distro/jlime-henchman.conf	67c13540c7a0b1c2c91d011c9dcbfac4c98fe5da
@@ -50,6 +50,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
@@ -69,12 +70,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-mongo.conf	649596799adddbe974beb9a95120de0c9db17b28
+++ conf/distro/jlime-mongo.conf	3ebb725f06773e26010c95c25fd4189ca8419294
@@ -51,6 +51,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
@@ -70,12 +71,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.18"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-shrek.conf	4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491
+++ conf/distro/jlime-shrek.conf	7da188f8cd828d10ef57f503be471621ce47bee7
@@ -12,6 +12,7 @@ PREFERRED_PROVIDERS  =  "virtual/${TARGE
 SRCDATE = "20050518"
 
 PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
============================================================
--- conf/distro/mamona.conf	fd683d8ddd62359322234b247211b416f546a004
+++ conf/distro/mamona.conf	0b55b7e50737a7003497a6a3a14f7911317ad862
@@ -34,6 +34,7 @@ PREFERRED_PROVIDERS_virtual/${TARGET_PRE
 
 # gcc
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
@@ -55,17 +56,15 @@ PREFERRED_VERSION_glibc ?= "2.5"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
 
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_uclibc ?= "0.9.29"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc"
 
 # Other Packages
 # ==============
@@ -82,4 +81,4 @@ PREFERRED_VERSION_gpsd ?= "2.33"
 
 PREFERRED_VERSION_apt = "0.7.6"
 PREFERRED_VERSION_gpsd ?= "2.33"
-PREFERRED_VERSION_hal_nokia770 = "0.5.7"
\ No newline at end of file
+PREFERRED_VERSION_hal_nokia770 = "0.5.7"
============================================================
--- conf/distro/minimal.conf	bd599ccea87a555d1025fc9d422556bb405c21d9
+++ conf/distro/minimal.conf	daf53521710448ae534d9c015c119c2543b37d0a
@@ -37,6 +37,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Binutils & Compiler
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross"
@@ -61,11 +62,10 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/nylon.conf	55b55fd58b093f18dc69ad389287e77c548403ae
+++ conf/distro/nylon.conf	7c6cb5856944ad2ee3fc41113898316d6749fd5a
@@ -17,6 +17,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 INHERIT += "linux-kernel-base"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
============================================================
--- conf/distro/openprotium.conf	c91df50d1b1b24f6a52eba1264c1e195813952dd
+++ conf/distro/openprotium.conf	097d78161ffbbcc47fe5b0e8c1749859d98dfc59
@@ -47,7 +47,6 @@ PREFERRED_VERSION_glibc		     = "2.6.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
 
 PREFERRED_VERSION_glibc		     = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 PREFERRED_VERSION_glibc-initial      = "2.6.1"
 
 PREFERRED_VERSION_linux-libc-headers = "2.6.11.1"
@@ -59,11 +58,12 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial"
 
 PREFERRED_PROVIDER_virtual/libc     = "glibc"
============================================================
--- conf/distro/oplinux-uclibc.conf	ded77d3149a141de656d62e5c1ed7e161f1e500d
+++ conf/distro/oplinux-uclibc.conf	6535d97b4b048850feda85f2e417dcb5c83b6d18
@@ -43,6 +43,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
============================================================
--- conf/distro/oplinux.conf	0dbc9a811a5f426f5d3e4ead5a20330b56e51e41
+++ conf/distro/oplinux.conf	cc1ebc8e8f1d1ee5b614698053ca46d139be9ed7
@@ -35,6 +35,7 @@ PREFERRED_PROVIDERS += "virtual/${TARGET
 TARGET_OS = "linux"
 
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross"
 
@@ -51,14 +52,14 @@ PREFERRED_PROVIDER_virtual/libc ?= "glib
 PREFERRED_PROVIDER_virtual/libc ?= "glibc"
 
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc"
 
 
 
@@ -96,7 +97,6 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
 
 PREFERRED_VERSION_glibc-initial ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc ?= "2.5"
 
 PCMCIA_MANAGER = "pcmciautils"
============================================================
--- conf/distro/sharprom-compatible.conf	866d17894061cd031cda619513332fa012433fa3
+++ conf/distro/sharprom-compatible.conf	89b78178c717a75e6dc950636c6903fbfb6fb989
@@ -41,6 +41,7 @@ PREFERRED_PROVIDER_virtual/arm-linux-gcc
 PREFERRED_PROVIDER_virtual/arm-linux-gcc = "sharprom-toolchain-native" 
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_PROVIDER_virtual/arm-linux-gcc-initial = "sharprom-toolchain-native"
+PREFERRED_PROVIDER_virtual/arm-linux-gcc-intermediate = "sharprom-toolchain-native"
 
 PREFERRED_VERSION_glibc = "2.2.5"
 
============================================================
--- conf/distro/unslung.conf	0ef6d906a67568b77e1f68fc1ac5c65f65586c67
+++ conf/distro/unslung.conf	e482d634afd26f12871e55a0ec8caa4bc7bd70ac
@@ -42,6 +42,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 
 # Select between multiple alternative providers, if more than one is eligible.
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
============================================================
--- conf/distro/wrt54oe.conf	9d556281a94a6474ec9b7e6edffabcecd876b083
+++ conf/distro/wrt54oe.conf	1253df366c87e03cae180335a881c1f9bd08b4e7
@@ -14,6 +14,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
============================================================
--- conf/local.conf.sample	fa7f5ad0f812c943367b2c88b4e4f7165797959d
+++ conf/local.conf.sample	5164ed855456a3c58975fcfbad1c9da8dd8d60f2
@@ -51,6 +51,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 PREFERRED_PROVIDERS = "virtual/qte:qte virtual/libqpe:libqpe-opie"
 PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-x11"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
============================================================
--- conf/machine/native.conf	9f73a28ea65b27265df3e4afa2107401f9463ead
+++ conf/machine/native.conf	e4b8c17ba26581950b67bf9e306d9f1664c0741f
@@ -7,7 +7,7 @@ PREFERRED_PROVIDER_virtual/kernel = "nat
 VENDOR = "-oe"
 
 PREFERRED_PROVIDER_virtual/kernel = "native-kernel"
-ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc virtual/g++ virtual/libc virtual/libintl virtual/libiconv"
+ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc-intermediate virtual/gcc virtual/g++"
 ASSUME_PROVIDED += "binutils-cross"
 ASSUME_PROVIDED += "virtual/libiconv virtual/libintl virtual/libc"
 
============================================================
--- packages/eglibc/eglibc-initial.inc	9cc9a816e903fd588bfe9b6529f690d24297a54b
+++ packages/eglibc/eglibc-initial.inc	4b2b73384f3c8f940e42387057da88a76435f44c
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,11 +9,13 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \
+        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+        find ${S} -name "configure" | xargs touch
 	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+		--prefix=/usr \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
-		--enable-hacker-mode
+		--enable-hacker-mode --enable-addons
 }
 
 do_compile () {
@@ -22,8 +24,14 @@ do_stage () {
 
 do_stage () {
 	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
-	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers \
+	install-bootstrap-headers=yes
+        oe_runmake csu/subdir_lib
 
+        mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+        install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+        ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+                       -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/eglibc/eglibc.inc	20ecb0b8894a6fa79214db154c8cd4e8458d7237
+++ packages/eglibc/eglibc.inc	eef22ba34145bef9522d66a4eb30da587ba3e6a2
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/glibc/glibc-initial.inc	0480105971d23c66b379db96774c07f2a0913989
+++ packages/glibc/glibc-initial.inc	b63bfe7eb2b35475f853b3d412838a369830b95d
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,7 +9,8 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+	find ${S} -name "configure" | xargs touch
+	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
 		--enable-hacker-mode
@@ -31,7 +32,7 @@ do_stage () {
 
 do_stage () {
 	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
-
+	oe_runmake csu/subdir_lib
 	# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
 	# so do them by hand.  We can tolerate an empty stubs.h for the moment.
 	# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
@@ -42,6 +43,10 @@ do_stage () {
 	if [ -e ${B}/bits/stdio_lim.h ]; then
 		cp ${B}/bits/stdio_lim.h  ${STAGING_INCDIR}/bits/
 	fi
+	mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+	install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/glibc/glibc.inc	94a32473f1193137d45da97d6ed786ae9e755094
+++ packages/glibc/glibc.inc	d7da3e08d193524257645bad4468dbb3dd7ed044
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/meta/external-toolchain.bb	ebcd8679c393d51824573b5a70c7a071f8521117
+++ packages/meta/external-toolchain.bb	fe769763ba169fd561e2c5f1153726281afa9952
@@ -6,6 +6,7 @@ PROVIDES = "\
     linux-libc-headers \
     virtual/${TARGET_PREFIX}gcc \
     virtual/${TARGET_PREFIX}gcc-initial \
+    virtual/${TARGET_PREFIX}gcc-intermediate \
     virtual/${TARGET_PREFIX}binutils \
     virtual/${TARGET_PREFIX}libc-for-gcc \
     virtual/libc \
============================================================
--- packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	63c582236d5e631780a864456ba4db4862602a0e
+++ packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	8e92e1882cb3bc63515abe5cc42b6577706e118d
@@ -12,6 +12,7 @@ PROVIDES_sharprom-compatible = "\
   virtual/libiconv \
   virtual/arm-linux-gcc \
   virtual/arm-linux-libc-for-gcc \
+  virtual/arm-linux-gcc-intermediate \
   virtual/arm-linux-gcc-initial "
 PR = "r2"
 
============================================================
--- packages/uclibc/uclibc-initial_0.9.26.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.26.bb	87152e05358bc4ae69665b334c5965435f72285d
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,18 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.27.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.27.bb	f5c365faad4564b4e89f07778573e5722ee8267b
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,19 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.28.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.28.bb	f5c365faad4564b4e89f07778573e5722ee8267b
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,19 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.29.bb	d9cf01fb4dec69ff1f796d39c9078030982eacca
+++ packages/uclibc/uclibc-initial_0.9.29.bb	af0ccde83d59f1948f1f2b5f7d4952d4855c58bc
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,13 +11,20 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	install -d ${CROSS_DIR}/${TARGET_SYS}	
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_svn.bb	2715cc791b3fdd1b8e62328291e3ef33973bacc0
+++ packages/uclibc/uclibc-initial_svn.bb	766c264be7d787f2285f02b13a392f43cb2a87d2
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,18 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc.inc	48b0ba2e4cff05071b3b812ef0be0861870cd00c
+++ packages/uclibc/uclibc.inc	4f97a9d058115dbb12ae1c5d047fb84965500a51
@@ -22,7 +22,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binut
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
-	   virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+	   virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native"
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 
 # Blackfin needs a wrapper around ld

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-16  8:10 ` Khem Raj
@ 2008-07-16  8:46   ` Koen Kooi
  2008-07-16 15:27     ` Khem Raj
  2008-07-16 20:43   ` Leon Woestenberg
  1 sibling, 1 reply; 20+ messages in thread
From: Koen Kooi @ 2008-07-16  8:46 UTC (permalink / raw)
  To: openembedded-devel

Khem Raj wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Khem Raj wrote:
>> Hi,
>>
>> I have faced a problem which took me a while to understand. I was
>> working on uclibc and therefore I needed to rebuild uclibc many times
>> and thats when I saw this issue.
>>
>> When I rebuilt only uclibc after a complete rebuild. Suddenly in the new
>> root file system with new uclibc application wont load properly
>> complaining about missing symbols (symbols were from libgcc like
>> __aeabi_*)
>>
>> Looking at it the problem is that right now we build uclibc with a
>> intermediate compiler(gcc-cross-initial) which is build with
>> --disable-shared. We use this uclibc and its headers and dev-libs and we
>> rebuild a fresh full cross-gcc (gcc-cross) with -shared-lib support to
>> build the rest of system/image.
>>
>> Therefore the uclibc we build in subsequent time will be build using
>> cross-gcc and not cross-gcc-initial.
>>
>> What happens is that some of the libgcc symbols get linked into
>> uclibc/libc.so when it is built with a gcc without shared lib
>> support(gcc-initial). When building whole sytem different
>> applications(e.g. gawk) which need these symbols link as if they will
>> get these symbols from libc.so at runtime, which is correct if I ran
>> with the first time build uclibc but when I rebuilt just uclibc all
>> these symbols were not being resolved by ld.so because there were no
>> DT_NEEDED entry for libgcc_s.so in the application binary as it was
>> build to get these symbols from libc.so, but rebuilt uclibc now do not
>> export these symbols because it was built with a compiler that supports
>> shared-libs(cross-gcc).
>>
>> Then I went to see the toolchain build order. Currently we do
>>
>> cross-binutils ->  kernel-headers ->  uclibc-headers ->  cross-gcc
>> (--disable-shared) ->  uclibc ->  cross-gcc
>>
>> I think this can be improved and I implemented the following steps.
>>
>> cross-binutils ->  cross-gcc (--disable-shared) ->  kernel-headers ->
>> eglibc/glibc/uclibc headers + startup files + dummy libc.so ->  cross-gcc
>> (--enable-shared) ->  glibc/eglibc/uclibc ->  cross-gcc
>>
>> These steps work same for uclibc as well as glibc/eglibc toolchains
>> irrespective of architectures.
>>
>> These steps work for both NPTL and LinuxThreads toolchains.
>>
>> Given we use these steps, we will have same toolchain build sequence in
>> all circumstances and will help to reduce the current complex toolchain
>> builds we have.
>>
>> We will not need glibc-intermediate step and we will introduce a new
>> step called cross-gcc-intermidiate.
>>
>> I have so far tested this sequence on arm uclibc and it works well and
>> understandably solves the issue I am seeing.
>>
>> I have used this sequence in external scripts to build toolchains too
>> and it has worked well.
>>
>> Now, I have a prototype patch for uclibc-0.9.29+gcc-4.2.4 based
>> toolchain which I am attaching here.
>>
>> If we agree on this aproach I can go ahead and do the same for
>> eglibc/glibc toolchains too.
>>
>> I have not tested it on older compiler/library combinations but I think
>> it will work there too as I have build various combinations in the past
>> with same sequence outside OE.
>>
>> Comments and feedback is welcome.
>>
>> Thanks
>>
>> -Khem
>
> Hello All,
>
> I have meanwhile developed a relatively complete patch. I have tested it on uclibc-0.9.29 glibc_2.6.1 and eglibc_svn and all have worked well. I have also booted the console-images produced.
>
> Here is the revised patch.
>
> As its a fundamental change and its not possible for me to test all combos. Any testing will be highly appreciated.

Thanks for your work on this!

I have a few comments on the patch without having tested it:


--- conf/distro/angstrom-2008.1.conf 
f64ebcf55e85b504d3be169befac3c7981aa74d9
+++ conf/distro/angstrom-2008.1.conf 
8703f595671685f632e51c96d1be75cdceddfe83
@@ -70,9 +70,8 @@ PREFERRED_VERSION_linux-libc-headers 	=
  PREFERRED_VERSION_linux-libc-headers 	= "2.6.23"

  #Prefer glibc 2.6 and uclibc 0.9.29, these have had the most testing.
-PREFERRED_VERSION_glibc 		?= "2.6.1"
-PREFERRED_VERSION_glibc-intermediate 	?= "2.6.1"
-PREFERRED_VERSION_glibc-initial 	?= "2.6.1"
+PREFERRED_VERSION_glibc 		?= "2.3.6"
+PREFERRED_VERSION_glibc-initial 	?= "2.3.6"

  #Everybody else can just use this:
-ANGSTROM_GCC_VERSION 			?= "4.2.4"
+ANGSTROM_GCC_VERSION 			?= "3.4.4"

@@ -123,6 +122,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
  # Virtuals:
  PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
  PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = 
"gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = 
"gcc-cross-intermediate"
  PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
  PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"


You probably only want the PREFERRED_PROVIDER bit, not changing angstrom 
back to the dark ages :)

You also change handling of ctr*.o, but that was intended, right?

I see no obvious errors besides the above, but as I said, I haven't 
tested it.

regards,

Koen





^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-16  8:46   ` Koen Kooi
@ 2008-07-16 15:27     ` Khem Raj
  0 siblings, 0 replies; 20+ messages in thread
From: Khem Raj @ 2008-07-16 15:27 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> --- conf/distro/angstrom-2008.1.conf 
> f64ebcf55e85b504d3be169befac3c7981aa74d9
> +++ conf/distro/angstrom-2008.1.conf 
> 8703f595671685f632e51c96d1be75cdceddfe83
> @@ -70,9 +70,8 @@ PREFERRED_VERSION_linux-libc-headers 	=
>   PREFERRED_VERSION_linux-libc-headers 	= "2.6.23"
> 
>   #Prefer glibc 2.6 and uclibc 0.9.29, these have had the most testing.
> -PREFERRED_VERSION_glibc 		?= "2.6.1"
> -PREFERRED_VERSION_glibc-intermediate 	?= "2.6.1"
> -PREFERRED_VERSION_glibc-initial 	?= "2.6.1"
> +PREFERRED_VERSION_glibc 		?= "2.3.6"
> +PREFERRED_VERSION_glibc-initial 	?= "2.3.6"
> 
>   #Everybody else can just use this:
> -ANGSTROM_GCC_VERSION 			?= "4.2.4"
> +ANGSTROM_GCC_VERSION 			?= "3.4.4"
> 
> @@ -123,6 +122,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
>   # Virtuals:
>   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
>   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = 
> "gcc-cross-initial"
> +PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = 
> "gcc-cross-intermediate"
>   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
>   PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
> 
> 
> You probably only want the PREFERRED_PROVIDER bit, not changing angstrom 
> back to the dark ages :)

yes thats true. I have been testing different compiler versions so this change remained in the patch. It wont be committed.

> 
> You also change handling of ctr*.o, but that was intended, right?

Thats intended. They are needed to build GCC with shared lib support

> 
> I see no obvious errors besides the above, but as I said, I haven't 
> tested it.

Thanks for your review.

> 
> regards,
> 
> Koen
> 
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIfhNtHnJKy6V6em4RAuNMAJ4ubEC77wxEbrHlLI/g4kZ0Ud6ECgCgjqbw
ZF0uKt8rhh/Sq4Qb6hCmP0U=
=dsS6
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-16  8:10 ` Khem Raj
  2008-07-16  8:46   ` Koen Kooi
@ 2008-07-16 20:43   ` Leon Woestenberg
  2008-07-17  8:43     ` Khem Raj
                       ` (2 more replies)
  1 sibling, 3 replies; 20+ messages in thread
From: Leon Woestenberg @ 2008-07-16 20:43 UTC (permalink / raw)
  To: openembedded-devel

Khem,

On Wed, Jul 16, 2008 at 10:10 AM, Khem Raj <raj.khem@gmail.com> wrote:
>> I have not tested it on older compiler/library combinations but I think
>> it will work there too as I have build various combinations in the past
>> with same sequence outside OE.
>>
>> Comments and feedback is welcome.
>>

I will try some combinations over the next few days.

anyone: This would be a perfect candidate for some good testing
outside of .dev, what would be the best approach for that currently
besides the posted patch?

Excellent work by the way!

Regards,
-- 
Leon



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-16 20:43   ` Leon Woestenberg
@ 2008-07-17  8:43     ` Khem Raj
  2008-07-22  0:28     ` Khem Raj
       [not found]     ` <20080720014112.GA13759@oberlord>
  2 siblings, 0 replies; 20+ messages in thread
From: Khem Raj @ 2008-07-17  8:43 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 79526 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Leon Woestenberg wrote:
> Khem,
> 
> On Wed, Jul 16, 2008 at 10:10 AM, Khem Raj <raj.khem@gmail.com> wrote:
>>> I have not tested it on older compiler/library combinations but I think
>>> it will work there too as I have build various combinations in the past
>>> with same sequence outside OE.
>>>
>>> Comments and feedback is welcome.
>>>
> 
> I will try some combinations over the next few days.
> 
> anyone: This would be a perfect candidate for some good testing
> outside of .dev, what would be the best approach for that currently
> besides the posted patch?
> 
> Excellent work by the way!
> 
> Regards,


while testing I figured out that I did not add PREFERRED_VERSION for new recipe gcc-cross-intermediate
This updated patch is doing so. 

Do we need to have glibc 2.3.x base tested is someone using it ? same question for gcc 3.3.x

Thanks

- -Khem
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIfwYUHnJKy6V6em4RAioMAKCwa4q50tYZDrXuHrslv41WZv+ttQCgl5+M
VEvqhmG4jSGoK9RIVhLd5Fs=
=gEdv
-----END PGP SIGNATURE-----
#
# old_revision [7c35ba48773d0fc91a71187282272fd30fc3be0e]
#
# delete "packages/eglibc/eglibc-intermediate.inc"
# 
# delete "packages/eglibc/eglibc-intermediate_svn.bb"
# 
# delete "packages/glibc/glibc-intermediate.inc"
# 
# delete "packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.3.6.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.4.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.5.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.6.1.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.7.bb"
# 
# delete "packages/glibc/glibc-intermediate_cvs.bb"
# 
# add_file "packages/gcc/gcc-cross-intermediate.inc"
#  content [4b265f0f3a4cb31194b9db1bdbf28b9290477fbe]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.0.2.bb"
#  content [d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.0.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.1.bb"
#  content [3fc0ba21af09070a730a4b3e0b726ee8918c8f65]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.2.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.1.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.2.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.3.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.4.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.3.1.bb"
#  content [30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb"
#  content [bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb"
#  content [7ca0df097d7377b3d3e86f9ab60edc17327fc874]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch"
#  content [1233a371e51da2cb27c42ec18bc33f11a9288f28]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch"
#  content [3cb1771cb1ffb55fd118435cae54bade8a5c7d4e]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch"
#  content [f31f3425ae1f8afcb869cd8e0f3c414d01aa211f]
# 
# patch "conf/distro/angstrom-2008.1.conf"
#  from [f64ebcf55e85b504d3be169befac3c7981aa74d9]
#    to [36506d6829c3a09fa715f64051654c4cb2856058]
# 
# patch "conf/distro/celinux-test.conf"
#  from [beca92fe305476a03cc17be4ecf3f9b8a0b134c9]
#    to [66a80241ae6781107ec011f3678266b510545e62]
# 
# patch "conf/distro/chinook-compat.conf"
#  from [61ddfe57a63bdd965dd857bd75478e87045007b9]
#    to [9971a4fa7bfe8235c9a5bf7d2ce134318f664a83]
# 
# patch "conf/distro/gmustix.conf"
#  from [88db2db3032412eac284ef6efa7a4668c79a29b2]
#    to [e5a0ed1602a23b5cbddbee1a07669efa041cd191]
# 
# patch "conf/distro/include/angstrom-2007-for-openmoko.inc"
#  from [4e926bdf5178cce4d068eeb210aba5adf7982351]
#    to [85b9d88526b7e40205f13f547c01c721f42fa32f]
# 
# patch "conf/distro/include/angstrom-eglibc.inc"
#  from [e0e7b6758775be96c0a58faecff645b05ef7c3e2]
#    to [e56df3f5a1f620f0dfa7795ff188661bf1524389]
# 
# patch "conf/distro/include/angstrom-glibc.inc"
#  from [64060b7ace4591e34cd8206bb5cd3ba77c6554d4]
#    to [9a81308293772bcff0ea1b412e0fa3a478a205fe]
# 
# patch "conf/distro/include/insane-srcrevs.inc"
#  from [e685e3b620d54ebf0b096e4709ed95ca3329b08c]
#    to [cbc144484de6ac4d699d0a609a011f4f1f04d2bf]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [5f05375f9120704a658384ef343ef7df97d3b957]
#    to [3cfde3a808acdb6517d4809c29137d90eb6aef0d]
# 
# patch "conf/distro/include/slugos.inc"
#  from [00976339770c45e02a1ecc25cf9066a2c866eeea]
#    to [ec4b375dd7947ce73c6b009e68b5fb78d4eda73d]
# 
# patch "conf/distro/jlime-donkey.conf"
#  from [50f90b05f62918f1b8efc4d5f311a7d80b424ad9]
#    to [0ba2c9149b03723a7ad76f726d714e348f50b4f0]
# 
# patch "conf/distro/jlime-henchman.conf"
#  from [c5c0029ec6fcea5daaf00874e1a20e1d514d7586]
#    to [83e1df21fb0bbdb8a99da48da0d861cd242a76e9]
# 
# patch "conf/distro/jlime-mongo.conf"
#  from [649596799adddbe974beb9a95120de0c9db17b28]
#    to [9c88e0c767f986ce13c59b2e9173c7b88ebb935e]
# 
# patch "conf/distro/jlime-shrek.conf"
#  from [4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491]
#    to [4960e4997a76b212b2bda2ec3ddab16d81622075]
# 
# patch "conf/distro/mamona.conf"
#  from [fd683d8ddd62359322234b247211b416f546a004]
#    to [2259bb76e74ceface351ef6266ee9f3284c8e414]
# 
# patch "conf/distro/minimal.conf"
#  from [bd599ccea87a555d1025fc9d422556bb405c21d9]
#    to [0528532430720923ec9c329e2c7eba81fb2a6072]
# 
# patch "conf/distro/nylon.conf"
#  from [55b55fd58b093f18dc69ad389287e77c548403ae]
#    to [93b37b27f5a8b665966cdcd8b90187ec5428f2bc]
# 
# patch "conf/distro/openprotium.conf"
#  from [c91df50d1b1b24f6a52eba1264c1e195813952dd]
#    to [191b4f511b2b4e2ded2075e527d6e87588dbf292]
# 
# patch "conf/distro/oplinux-uclibc.conf"
#  from [ded77d3149a141de656d62e5c1ed7e161f1e500d]
#    to [af3019dae5fb6717311d042ac2f3114f99cdd50e]
# 
# patch "conf/distro/oplinux.conf"
#  from [0dbc9a811a5f426f5d3e4ead5a20330b56e51e41]
#    to [007c319d5693215e75c73b455c5c76a0f2465501]
# 
# patch "conf/distro/sharprom-compatible.conf"
#  from [866d17894061cd031cda619513332fa012433fa3]
#    to [89b78178c717a75e6dc950636c6903fbfb6fb989]
# 
# patch "conf/distro/ucslugc.conf"
#  from [13de2c9a77700ae97b0f7a3dbb79971cb6451ca6]
#    to [bb32cc5c8cbf8d2446f2bf2eef140a2ccd04ee1d]
# 
# patch "conf/distro/unslung.conf"
#  from [0ef6d906a67568b77e1f68fc1ac5c65f65586c67]
#    to [a7d66feda58ef5de37cbaf33395cb0dd4e1e7586]
# 
# patch "conf/distro/wrt54oe.conf"
#  from [9d556281a94a6474ec9b7e6edffabcecd876b083]
#    to [511263e0f8d97edcbcab96283a7c703b27f7072b]
# 
# patch "conf/local.conf.sample"
#  from [fa7f5ad0f812c943367b2c88b4e4f7165797959d]
#    to [5164ed855456a3c58975fcfbad1c9da8dd8d60f2]
# 
# patch "conf/machine/native.conf"
#  from [9f73a28ea65b27265df3e4afa2107401f9463ead]
#    to [e4b8c17ba26581950b67bf9e306d9f1664c0741f]
# 
# patch "packages/eglibc/eglibc-initial.inc"
#  from [9cc9a816e903fd588bfe9b6529f690d24297a54b]
#    to [4b2b73384f3c8f940e42387057da88a76435f44c]
# 
# patch "packages/eglibc/eglibc.inc"
#  from [20ecb0b8894a6fa79214db154c8cd4e8458d7237]
#    to [eef22ba34145bef9522d66a4eb30da587ba3e6a2]
# 
# patch "packages/glibc/glibc-initial.inc"
#  from [0480105971d23c66b379db96774c07f2a0913989]
#    to [b63bfe7eb2b35475f853b3d412838a369830b95d]
# 
# patch "packages/glibc/glibc.inc"
#  from [94a32473f1193137d45da97d6ed786ae9e755094]
#    to [d7da3e08d193524257645bad4468dbb3dd7ed044]
# 
# patch "packages/glibc/glibc_2.3.6.bb"
#  from [a180c138b01077df8b234264ee6abd46cbf72314]
#    to [582c26ae42b610a56928589814381bd13bc4c5de]
# 
# patch "packages/meta/external-toolchain.bb"
#  from [ebcd8679c393d51824573b5a70c7a071f8521117]
#    to [fe769763ba169fd561e2c5f1153726281afa9952]
# 
# patch "packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb"
#  from [63c582236d5e631780a864456ba4db4862602a0e]
#    to [8e92e1882cb3bc63515abe5cc42b6577706e118d]
# 
# patch "packages/uclibc/uclibc-initial_0.9.26.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [a184826f227450c3799472708b38d95c759f1457]
# 
# patch "packages/uclibc/uclibc-initial_0.9.27.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [bf5a03c0a95f607474c7585a1cdaec562bbb1747]
# 
# patch "packages/uclibc/uclibc-initial_0.9.28.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [bf5a03c0a95f607474c7585a1cdaec562bbb1747]
# 
# patch "packages/uclibc/uclibc-initial_0.9.29.bb"
#  from [d9cf01fb4dec69ff1f796d39c9078030982eacca]
#    to [af0ccde83d59f1948f1f2b5f7d4952d4855c58bc]
# 
# patch "packages/uclibc/uclibc-initial_svn.bb"
#  from [2715cc791b3fdd1b8e62328291e3ef33973bacc0]
#    to [766c264be7d787f2285f02b13a392f43cb2a87d2]
# 
# patch "packages/uclibc/uclibc.inc"
#  from [48b0ba2e4cff05071b3b812ef0be0861870cd00c]
#    to [4f97a9d058115dbb12ae1c5d047fb84965500a51]
#
============================================================
--- packages/gcc/gcc-cross-intermediate.inc	4b265f0f3a4cb31194b9db1bdbf28b9290477fbe
+++ packages/gcc/gcc-cross-intermediate.inc	4b265f0f3a4cb31194b9db1bdbf28b9290477fbe
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+# @todo Please add comment on why this is (still?) needed?
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+		--enable-shared \
+		--disable-multilib \
+		--enable-languages=c \
+		--enable-target-optspace \
+		--program-prefix=${TARGET_PREFIX} \
+		--with-sysroot=${STAGING_DIR_TARGET} \
+		--with-build-sysroot=${STAGING_DIR_TARGET} \
+		${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+	:
+}
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
+++ packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
@@ -0,0 +1,4 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-multilib"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.1.bb	3fc0ba21af09070a730a4b3e0b726ee8918c8f65
+++ packages/gcc/gcc-cross-intermediate_4.1.1.bb	3fc0ba21af09070a730a4b3e0b726ee8918c8f65
@@ -0,0 +1,6 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libunwind-exceptions \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
+++ packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
@@ -0,0 +1,14 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+		  --disable-libgomp \
+		  --disable-libssp"
+
+# Hack till we fix *libc properly
+do_stage_append() {
+        ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
@@ -0,0 +1,2 @@
+require gcc-cross_csl-arm-2005q3.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
@@ -0,0 +1,7 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-2006q1"
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch	1233a371e51da2cb27c42ec18bc33f11a9288f28
+++ packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch	1233a371e51da2cb27c42ec18bc33f11a9288f28
@@ -0,0 +1,37 @@
+--- glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c.org	2008-07-16 22:57:58.000000000 -0700
++++ glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c	2008-07-16 22:58:26.000000000 -0700
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1996, 2002, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1991, 1996, 2002, 2003, 2005 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -18,10 +18,13 @@
+ 
+ #include <signal.h>
+ #include <unistd.h>
+-#include <bits/libc-lock.h>
+ 
+-#ifndef SHARED
++#ifndef IS_IN_rtld
++# include <bits/libc-lock.h>
++
++# ifndef SHARED
+ weak_extern (__pthread_raise)
++# endif
+ #endif
+ 
+ /* Raise the signal SIG.  */
+@@ -29,8 +32,12 @@ int
+ raise (sig)
+      int sig;
+ {
++#ifdef IS_IN_rtld
++  return __kill (__getpid (), sig);
++#else
+   return __libc_maybe_call2 (pthread_raise, (sig),
+ 			     __kill (__getpid (), sig));
++#endif
+ }
+ libc_hidden_def (raise)
+ weak_alias (raise, gsignal)
============================================================
--- packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch	3cb1771cb1ffb55fd118435cae54bade8a5c7d4e
+++ packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch	3cb1771cb1ffb55fd118435cae54bade8a5c7d4e
@@ -0,0 +1,45 @@
+This one was taken from debian.
+
+# DP: Description: Fix __bind redefinition problem
+# DP: Related bugs: 
+# DP: Dpatch author: Phil Blundell
+# DP: Patch author: Daniel Jacobowitz
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-12-25
+
+Index: sysdeps/unix/sysv/linux/arm/socket.S
+===================================================================
+RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/socket.S,v
+retrieving revision 1.12
+retrieving revision 1.13
+diff -u -r1.12 -r1.13
+--- glibc-2.3.6.ds1.orig/sysdeps/unix/sysv/linux/arm/socket.S	4 Dec 2004 21:20:16 -0000	1.12
++++ glibc-2.3.6.ds1/sysdeps/unix/sysv/linux/arm/socket.S	27 Oct 2005 18:50:12 -0000	1.13
+@@ -1,4 +1,6 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2004, 2005
++   Free Software Foundation, Inc.
++
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -32,7 +34,11 @@
+    The .S files for the other calls just #define socket and #include this.  */
+ 
+ #ifndef __socket
++#ifndef NO_WEAK_ALIAS
+ #define __socket P(__,socket)
++#else
++#define __socket socket
++#endif
+ #endif
+ 
+ #define PUSHARGS_1	str a1, [sp, $-4]!
+@@ -120,4 +126,6 @@
+ 
+ PSEUDO_END (__socket)
+ 
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
============================================================
--- packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch	f31f3425ae1f8afcb869cd8e0f3c414d01aa211f
+++ packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch	f31f3425ae1f8afcb869cd8e0f3c414d01aa211f
@@ -0,0 +1,25 @@
+---
+ elf/Makefile |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/elf/Makefile
+===================================================================
+--- glibc-2.3.6.orig/elf/Makefile	2008-07-17 01:10:39.000000000 -0700
++++ glibc-2.3.6/elf/Makefile	2008-07-17 01:17:18.000000000 -0700
+@@ -279,7 +279,7 @@ $(objpfx)rtld-libc.a: $(objpfx)librtld.m
+ 	$(MAKE) -f $< -f rtld-Rules
+ 
+ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
+-	$(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
++	$(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc -lgcc_eh '-Wl,-)' \
+ 		  -Wl,-Map,$@.map
+ 
+ generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
+@@ -295,6 +295,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld
+ 		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ 		  > $@.lds
+ 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
++		  -lgcc -lgcc_eh					\
+ 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
+ 		  $(filter-out $(map-file),$^) $(load-map-file)		\
+ 		  -Wl,-soname=$(rtld-installed-name) -T $@.lds
============================================================
--- conf/distro/angstrom-2008.1.conf	f64ebcf55e85b504d3be169befac3c7981aa74d9
+++ conf/distro/angstrom-2008.1.conf	36506d6829c3a09fa715f64051654c4cb2856058
@@ -67,12 +67,11 @@ KERNEL_INITRAMFS_PATH = "${KERNEL_INITRA
 KERNEL_INITRAMFS_PATH = "${KERNEL_INITRAMFS_DIR}/$(readlink ${KERNEL_INITRAMFS_DIR}initramfs-bootmenu-image-${MACHINE}.cpio.gz)"
 
 #This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against
-PREFERRED_VERSION_linux-libc-headers 	= "2.6.23"
+PREFERRED_VERSION_linux-libc-headers 	= "2.6.8.1"
 
 #Prefer glibc 2.6 and uclibc 0.9.29, these have had the most testing.
-PREFERRED_VERSION_glibc 		?= "2.6.1"
-PREFERRED_VERSION_glibc-intermediate 	?= "2.6.1"
-PREFERRED_VERSION_glibc-initial 	?= "2.6.1"
+PREFERRED_VERSION_glibc 		?= "2.3.6"
+PREFERRED_VERSION_glibc-initial 	?= "2.3.6"
 
 #Prefer a newer GTK+ and friends
 PREFERRED_VERSION_gtk+             	?= "2.12.3"
@@ -103,18 +102,20 @@ ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 
 #Everybody else can just use this: 
-ANGSTROM_GCC_VERSION 			?= "4.2.4"
+ANGSTROM_GCC_VERSION 			?= "4.1.1"
 
-PREFERRED_VERSION_gcc               ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross         ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross-sdk     ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross-initial ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc                    ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross              ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-sdk          ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-initial      ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "${ANGSTROM_GCC_VERSION}"
 
 #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom
 require conf/distro/include/preferred-gpe-versions-2.8.inc
 require conf/distro/include/preferred-e-versions.inc
 require conf/distro/include/preferred-xorg-versions-X11R7.3.inc
 
+PREFERRED_VERSION_binutils-cross	?= "2.17"
 #avr32 only has patches for binutils 2.17 in OE
 PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
@@ -123,6 +124,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
============================================================
--- conf/distro/celinux-test.conf	beca92fe305476a03cc17be4ecf3f9b8a0b134c9
+++ conf/distro/celinux-test.conf	66a80241ae6781107ec011f3678266b510545e62
@@ -38,6 +38,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # toolchain
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
@@ -49,6 +50,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_gcc = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 
 PREFERRED_VERSION_glibc = "2.3.5+cvs20050627"
 
============================================================
--- conf/distro/chinook-compat.conf	61ddfe57a63bdd965dd857bd75478e87045007b9
+++ conf/distro/chinook-compat.conf	9971a4fa7bfe8235c9a5bf7d2ce134318f664a83
@@ -42,14 +42,15 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 MACHINE_KERNEL_VERSION = "2.6"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_PROVIDER_virtual/libc = "glibc"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-header = "linux-libc-headers"
@@ -64,6 +65,7 @@ PREFERRED_VERSION_gcc-cross-initial = "4
 PREFERRED_VERSION_gcc = "3.4.4cs2005q3.2"
 PREFERRED_VERSION_gcc-cross = "3.4.4cs2005q3.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.1.1"
 
 #PREFERRED_VERSION_gcc-cross-initial = "3.4.4cs2005q3.2"
 
@@ -71,7 +73,6 @@ PREFERRED_VERSION_glibc = "2.5"
 PREFERRED_VERSION_linux-libc-headers = "2.6.20"
 
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 PREFERRED_VERSION_glibc-initial = "2.5"
 
 PREFERRED_VERSION_libtool = "1.5.6"
============================================================
--- conf/distro/gmustix.conf	88db2db3032412eac284ef6efa7a4668c79a29b2
+++ conf/distro/gmustix.conf	e5a0ed1602a23b5cbddbee1a07669efa041cd191
@@ -8,6 +8,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 IMAGE_FSTYPES = "jffs2"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
@@ -15,6 +16,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_PROVIDER_classpath = "classpath-minimal"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.4.4" 
 PREFERRED_VERSION_gcc = "3.4.4"
============================================================
--- conf/distro/include/angstrom-2007-for-openmoko.inc	4e926bdf5178cce4d068eeb210aba5adf7982351
+++ conf/distro/include/angstrom-2007-for-openmoko.inc	85b9d88526b7e40205f13f547c01c721f42fa32f
@@ -89,21 +89,25 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross         ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk     ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 PREFERRED_VERSION_gcc_dht-walnut               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_dht-walnut         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_dht-walnut     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_dht-walnut ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_dht-walnut ?= "4.1.1"
 
 PREFERRED_VERSION_gcc_xilinx-ml403               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_xilinx-ml403         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_xilinx-ml403     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_xilinx-ml403 ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_xilinx-ml403 ?= "4.1.1"
 
 PREFERRED_VERSION_gcc_mpc8323e-rdb               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_mpc8323e-rdb         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_mpc8323e-rdb     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_mpc8323e-rdb ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_mpc8323e-rdb ?= "4.1.1"
 
 PREFERRED_VERSION_binutils          ?= "2.18"
 PREFERRED_VERSION_binutils-cross    ?= "2.18"
@@ -115,6 +119,7 @@ PREFERRED_VERSION_gcc-cross-initial_avr3
 PREFERRED_VERSION_avr32-gcc-cross         = "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk_avr32     = "4.0.2"
 PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.0.2"
+PREFERRED_VERSION_gcc-cross-intermediate_avr32 = "4.0.2"
 
 PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
@@ -133,9 +138,6 @@ PREFERRED_VERSION_uclibc-initial_avr32 =
 PREFERRED_VERSION_uclibc_avr32 = "0.9.28"
 PREFERRED_VERSION_uclibc-initial_avr32 = "0.9.28"
 
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
-
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 
 # To use an EABI compatible version 3 series gcc, either uncomment 
@@ -143,6 +145,7 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 #
 # PREFERRED_VERSION_gcc-cross = "3.4.4+csl-arm-2005q3"
 # PREFERRED_VERSION_gcc-cross-initial = "3.4.4+csl-arm-2005q3"
+# PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4+csl-arm-2005q3"
 
 #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom
 require conf/distro/include/preferred-xorg-versions.inc
@@ -153,17 +156,17 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
 PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
============================================================
--- conf/distro/include/angstrom-eglibc.inc	e0e7b6758775be96c0a58faecff645b05ef7c3e2
+++ conf/distro/include/angstrom-eglibc.inc	e56df3f5a1f620f0dfa7795ff188661bf1524389
@@ -4,13 +4,13 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 PREFERRED_PROVIDER_virtual/libc = "eglibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
+PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
+PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
+PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
+PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
 
============================================================
--- conf/distro/include/angstrom-glibc.inc	64060b7ace4591e34cd8206bb5cd3ba77c6554d4
+++ conf/distro/include/angstrom-glibc.inc	9a81308293772bcff0ea1b412e0fa3a478a205fe
@@ -6,13 +6,13 @@ PREFERRED_PROVIDER_linux-libc-headers ?=
 PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
@@ -25,13 +25,11 @@ FULL_OPTIMIZATION_pn-perl = "-fexpensive
 FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -Os"
 
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
-FULL_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
 
 BUILD_OPTIMIZATION = "-Os"
 BUILD_OPTIMIZATION_pn-perl = "-O1"
-BUILD_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 BUILD_OPTIMIZATION_pn-glibc = "-O2"
 BUILD_OPTIMIZATION_sparc = "-O2"
 
============================================================
--- conf/distro/include/insane-srcrevs.inc	e685e3b620d54ebf0b096e4709ed95ca3329b08c
+++ conf/distro/include/insane-srcrevs.inc	cbc144484de6ac4d699d0a609a011f4f1f04d2bf
@@ -4,7 +4,6 @@ SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
 SRCREV_pn-eds-dbus ?= "${AUTOREV}"
 SRCREV_pn-eglibc ?= "${AUTOREV}"
 SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
-SRCREV_pn-eglibc-intermediate ?= "${AUTOREV}"
 SRCREV_pn-ezxd ?= "${AUTOREV}"
 SRCREV_pn-fbgrab-viewer-native ?= "${AUTOREV}"
 SRCREV_pn-fstests ?= "${AUTOREV}"
============================================================
--- conf/distro/include/sane-srcrevs.inc	5f05375f9120704a658384ef343ef7df97d3b957
+++ conf/distro/include/sane-srcrevs.inc	3cfde3a808acdb6517d4809c29137d90eb6aef0d
@@ -28,7 +28,6 @@ SRCREV_pn-eglibc-initial ?= "6229"
 SRCREV_pn-eds-dbus ?= "659"
 SRCREV_pn-eglibc ?= "6229"
 SRCREV_pn-eglibc-initial ?= "6229"
-SRCREV_pn-eglibc-intermediate ?= "6229"
 SRCREV_pn-enlazar ?= "37"
 SRCREV_pn-exalt ?= "79"
 SRCREV_pn-exalt-daemon ?= "78"
============================================================
--- conf/distro/include/slugos.inc	00976339770c45e02a1ecc25cf9066a2c866eeea
+++ conf/distro/include/slugos.inc	ec4b375dd7947ce73c6b009e68b5fb78d4eda73d
@@ -96,13 +96,14 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc"
 
 # Set the preferred provider for a few toolchain-related items, otherwise
 # these may be selected from the external-toolchain instead.
@@ -118,8 +119,8 @@ PREFERRED_VERSION_gcc-cross-initial  ?= 
 PREFERRED_VERSION_gcc-cross          ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk      ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial  ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate  ?= "4.1.2"
 PREFERRED_VERSION_glibc              ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial      ?= "2.5"
 
 # Select the smallest provider of x11 libraries
============================================================
--- conf/distro/jlime-donkey.conf	50f90b05f62918f1b8efc4d5f311a7d80b424ad9
+++ conf/distro/jlime-donkey.conf	0ba2c9149b03723a7ad76f726d714e348f50b4f0
@@ -20,10 +20,11 @@ PREFERRED_PROVIDERS +=  "virtual/${TARGE
 #<> We will set CVS DATE when things are known to work.
 #<>-----------------------------------------------------------------<
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
 
 #<>----------------------------------------------------------------->
 #<> We want this so we can crosscompile the kernel using gcc 3.4.3
@@ -51,10 +52,10 @@ PREFERRED_VERSION_gcc-cross-initial = "4
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"                                             		    
 PREFERRED_VERSION_glibc = "2.6.1"
 PREFERRED_VERSION_glibc-initial = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 
 #<>------------------------------------------------------------------>
 #<>
============================================================
--- conf/distro/jlime-henchman.conf	c5c0029ec6fcea5daaf00874e1a20e1d514d7586
+++ conf/distro/jlime-henchman.conf	83e1df21fb0bbdb8a99da48da0d861cd242a76e9
@@ -50,12 +50,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_binutils = "2.18"
 PREFERRED_VERSION_binutils-cross = "2.18"
 
@@ -69,12 +71,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-mongo.conf	649596799adddbe974beb9a95120de0c9db17b28
+++ conf/distro/jlime-mongo.conf	9c88e0c767f986ce13c59b2e9173c7b88ebb935e
@@ -51,12 +51,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_binutils = "2.18"
 PREFERRED_VERSION_binutils-cross = "2.18"
 
@@ -70,12 +72,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.18"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-shrek.conf	4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491
+++ conf/distro/jlime-shrek.conf	4960e4997a76b212b2bda2ec3ddab16d81622075
@@ -12,6 +12,7 @@ PREFERRED_PROVIDERS  =  "virtual/${TARGE
 SRCDATE = "20050518"
 
 PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -24,6 +25,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_gcc = "3.4.3"
 PREFERRED_VERSION_gcc-cross = "3.4.3"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.3"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.3"
 PREFERRED_VERSION_linux-libc-headers = "2.6.7.0"                                             		    
 PREFERRED_VERSION_glib-2.0-native = "2.6.2"
 PREFERRED_VERSION_glib-2.0 = "2.6.2"
============================================================
--- conf/distro/mamona.conf	fd683d8ddd62359322234b247211b416f546a004
+++ conf/distro/mamona.conf	2259bb76e74ceface351ef6266ee9f3284c8e414
@@ -34,6 +34,7 @@ PREFERRED_PROVIDERS_virtual/${TARGET_PRE
 
 # gcc
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
@@ -41,6 +42,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 # binutils
 PREFERRED_VERSION_binutils ?= "2.18"
@@ -55,17 +57,15 @@ PREFERRED_VERSION_glibc ?= "2.5"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
 
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_uclibc ?= "0.9.29"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc"
 
 # Other Packages
 # ==============
@@ -82,4 +82,4 @@ PREFERRED_VERSION_gpsd ?= "2.33"
 
 PREFERRED_VERSION_apt = "0.7.6"
 PREFERRED_VERSION_gpsd ?= "2.33"
-PREFERRED_VERSION_hal_nokia770 = "0.5.7"
\ No newline at end of file
+PREFERRED_VERSION_hal_nokia770 = "0.5.7"
============================================================
--- conf/distro/minimal.conf	bd599ccea87a555d1025fc9d422556bb405c21d9
+++ conf/distro/minimal.conf	0528532430720923ec9c329e2c7eba81fb2a6072
@@ -37,6 +37,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Binutils & Compiler
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross"
@@ -45,6 +46,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 PREFERRED_VERSION_binutils ?= "2.18"
 PREFERRED_VERSION_binutils-cross ?= "2.18"
 
@@ -61,11 +63,10 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/nylon.conf	55b55fd58b093f18dc69ad389287e77c548403ae
+++ conf/distro/nylon.conf	93b37b27f5a8b665966cdcd8b90187ec5428f2bc
@@ -17,6 +17,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 INHERIT += "linux-kernel-base"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -35,6 +36,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_kismet = "2005-01-R1"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.3.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.3.4"
 PREFERRED_VERSION_gcc-cross = "3.3.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.3.4" 
 PREFERRED_VERSION_gcc = "3.3.4"
@@ -50,6 +52,7 @@ PREFERRED_VERSION_gcc-cross-initial_mtx-
 
 #PREFERRED_VERSION_glibc_mtx-3 = "2.3.5+cvs20050627"
 PREFERRED_VERSION_gcc-cross-initial_mtx-3 = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate_mtx-3 = "3.4.4"
 PREFERRED_VERSION_gcc-cross_mtx-3 = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk_mtx-3 = "3.4.4" 
 PREFERRED_VERSION_gcc_mtx-3 = "3.4.4"
@@ -71,6 +74,7 @@ PREFERRED_VERSION_gcc-cross-initial_mtx-
 
 #PREFERRED_VERSION_glibc_mtx-3a = "2.3.5+cvs20050627"
 PREFERRED_VERSION_gcc-cross-initial_mtx-3a = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate_mtx-3a = "3.4.4"
 PREFERRED_VERSION_gcc-cross_mtx-3a = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk_mtx-3a = "3.4.4" 
 PREFERRED_VERSION_gcc_mtx-3a = "3.4.4"
============================================================
--- conf/distro/openprotium.conf	c91df50d1b1b24f6a52eba1264c1e195813952dd
+++ conf/distro/openprotium.conf	191b4f511b2b4e2ded2075e527d6e87588dbf292
@@ -45,9 +45,9 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 PREFERRED_VERSION_glibc		     = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 PREFERRED_VERSION_glibc-initial      = "2.6.1"
 
 PREFERRED_VERSION_linux-libc-headers = "2.6.11.1"
@@ -59,11 +59,12 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial"
 
 PREFERRED_PROVIDER_virtual/libc     = "glibc"
============================================================
--- conf/distro/oplinux-uclibc.conf	ded77d3149a141de656d62e5c1ed7e161f1e500d
+++ conf/distro/oplinux-uclibc.conf	af3019dae5fb6717311d042ac2f3114f99cdd50e
@@ -43,12 +43,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
 PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
 
============================================================
--- conf/distro/oplinux.conf	0dbc9a811a5f426f5d3e4ead5a20330b56e51e41
+++ conf/distro/oplinux.conf	007c319d5693215e75c73b455c5c76a0f2465501
@@ -35,6 +35,7 @@ PREFERRED_PROVIDERS += "virtual/${TARGET
 TARGET_OS = "linux"
 
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross"
 
@@ -51,14 +52,14 @@ PREFERRED_PROVIDER_virtual/libc ?= "glib
 PREFERRED_PROVIDER_virtual/libc ?= "glibc"
 
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc"
 
 
 
@@ -84,6 +85,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 
 PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
 PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
@@ -96,7 +98,6 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
 
 PREFERRED_VERSION_glibc-initial ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc ?= "2.5"
 
 PCMCIA_MANAGER = "pcmciautils"
============================================================
--- conf/distro/sharprom-compatible.conf	866d17894061cd031cda619513332fa012433fa3
+++ conf/distro/sharprom-compatible.conf	89b78178c717a75e6dc950636c6903fbfb6fb989
@@ -41,6 +41,7 @@ PREFERRED_PROVIDER_virtual/arm-linux-gcc
 PREFERRED_PROVIDER_virtual/arm-linux-gcc = "sharprom-toolchain-native" 
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_PROVIDER_virtual/arm-linux-gcc-initial = "sharprom-toolchain-native"
+PREFERRED_PROVIDER_virtual/arm-linux-gcc-intermediate = "sharprom-toolchain-native"
 
 PREFERRED_VERSION_glibc = "2.2.5"
 
============================================================
--- conf/distro/ucslugc.conf	13de2c9a77700ae97b0f7a3dbb79971cb6451ca6
+++ conf/distro/ucslugc.conf	bb32cc5c8cbf8d2446f2bf2eef140a2ccd04ee1d
@@ -10,6 +10,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc = "3.4.4"
 
============================================================
--- conf/distro/unslung.conf	0ef6d906a67568b77e1f68fc1ac5c65f65586c67
+++ conf/distro/unslung.conf	a7d66feda58ef5de37cbaf33395cb0dd4e1e7586
@@ -42,6 +42,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 
 # Select between multiple alternative providers, if more than one is eligible.
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -54,6 +55,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_binutils ?= "2.15.94.0.1"
 PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "3.4.4"
 PREFERRED_VERSION_gcc-cross ?= "3.4.4"
 PREFERRED_VERSION_gcc ?= "3.4.4"
 PREFERRED_VERSION_glibc ?= "2.2.5"
============================================================
--- conf/distro/wrt54oe.conf	9d556281a94a6474ec9b7e6edffabcecd876b083
+++ conf/distro/wrt54oe.conf	511263e0f8d97edcbcab96283a7c703b27f7072b
@@ -14,11 +14,13 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.4.4" 
 PREFERRED_VERSION_gcc = "3.4.4"
============================================================
--- conf/local.conf.sample	fa7f5ad0f812c943367b2c88b4e4f7165797959d
+++ conf/local.conf.sample	5164ed855456a3c58975fcfbad1c9da8dd8d60f2
@@ -51,6 +51,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 PREFERRED_PROVIDERS = "virtual/qte:qte virtual/libqpe:libqpe-opie"
 PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-x11"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
============================================================
--- conf/machine/native.conf	9f73a28ea65b27265df3e4afa2107401f9463ead
+++ conf/machine/native.conf	e4b8c17ba26581950b67bf9e306d9f1664c0741f
@@ -7,7 +7,7 @@ PREFERRED_PROVIDER_virtual/kernel = "nat
 VENDOR = "-oe"
 
 PREFERRED_PROVIDER_virtual/kernel = "native-kernel"
-ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc virtual/g++ virtual/libc virtual/libintl virtual/libiconv"
+ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc-intermediate virtual/gcc virtual/g++"
 ASSUME_PROVIDED += "binutils-cross"
 ASSUME_PROVIDED += "virtual/libiconv virtual/libintl virtual/libc"
 
============================================================
--- packages/eglibc/eglibc-initial.inc	9cc9a816e903fd588bfe9b6529f690d24297a54b
+++ packages/eglibc/eglibc-initial.inc	4b2b73384f3c8f940e42387057da88a76435f44c
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,11 +9,13 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \
+        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+        find ${S} -name "configure" | xargs touch
 	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+		--prefix=/usr \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
-		--enable-hacker-mode
+		--enable-hacker-mode --enable-addons
 }
 
 do_compile () {
@@ -22,8 +24,14 @@ do_stage () {
 
 do_stage () {
 	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
-	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers \
+	install-bootstrap-headers=yes
+        oe_runmake csu/subdir_lib
 
+        mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+        install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+        ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+                       -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/eglibc/eglibc.inc	20ecb0b8894a6fa79214db154c8cd4e8458d7237
+++ packages/eglibc/eglibc.inc	eef22ba34145bef9522d66a4eb30da587ba3e6a2
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/glibc/glibc-initial.inc	0480105971d23c66b379db96774c07f2a0913989
+++ packages/glibc/glibc-initial.inc	b63bfe7eb2b35475f853b3d412838a369830b95d
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,7 +9,8 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+	find ${S} -name "configure" | xargs touch
+	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
 		--enable-hacker-mode
@@ -31,7 +32,7 @@ do_stage () {
 
 do_stage () {
 	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
-
+	oe_runmake csu/subdir_lib
 	# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
 	# so do them by hand.  We can tolerate an empty stubs.h for the moment.
 	# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
@@ -42,6 +43,10 @@ do_stage () {
 	if [ -e ${B}/bits/stdio_lim.h ]; then
 		cp ${B}/bits/stdio_lim.h  ${STAGING_INCDIR}/bits/
 	fi
+	mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+	install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/glibc/glibc.inc	94a32473f1193137d45da97d6ed786ae9e755094
+++ packages/glibc/glibc.inc	d7da3e08d193524257645bad4468dbb3dd7ed044
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/glibc/glibc_2.3.6.bb	a180c138b01077df8b234264ee6abd46cbf72314
+++ packages/glibc/glibc_2.3.6.bb	582c26ae42b610a56928589814381bd13bc4c5de
@@ -19,13 +19,16 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gli
            ${CROSSTOOL_PATCH_URL}glibc-2.3.6-fix-pr631.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}glibc-fp-byteorder.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}glibc-mips-bootstrap-gcc-header-install.patch;patch=1 \
+           ${CROSSTOOL_PATCH_URL}arm-ctl_bus_isa.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}make-install-lib-all.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}maybe/glibc-2.3.6-allow-gcc-4.0-powerpc32.patch;patch=1 \
            file://glibc-2.3.6-bind-already-defined-on-powerpc.patch;patch=1 \
            file://glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
            file://glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
-           file://late-install-loop-break.patch \
-	   \
+           file://late-install-loop-break.patch;patch=1 \
+           file://glibc-arm-socket-weakalias.patch;patch=1 \
+           file://glibc-2.3.6-linuxthreads-pthread-raise.patch;patch=1 \
+           file://glibc-rtld-libcc-eh.patch;patch=1 \
            file://etc/ld.so.conf \
 	   file://generate-supported.mk"
 
@@ -60,7 +63,7 @@ do_configure () {
 		exit 1
 	fi
 	(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
-	CPPFLAGS="" oe_runconf
+	CPPFLAGS="" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes oe_runconf
 }
 
 rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
============================================================
--- packages/meta/external-toolchain.bb	ebcd8679c393d51824573b5a70c7a071f8521117
+++ packages/meta/external-toolchain.bb	fe769763ba169fd561e2c5f1153726281afa9952
@@ -6,6 +6,7 @@ PROVIDES = "\
     linux-libc-headers \
     virtual/${TARGET_PREFIX}gcc \
     virtual/${TARGET_PREFIX}gcc-initial \
+    virtual/${TARGET_PREFIX}gcc-intermediate \
     virtual/${TARGET_PREFIX}binutils \
     virtual/${TARGET_PREFIX}libc-for-gcc \
     virtual/libc \
============================================================
--- packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	63c582236d5e631780a864456ba4db4862602a0e
+++ packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	8e92e1882cb3bc63515abe5cc42b6577706e118d
@@ -12,6 +12,7 @@ PROVIDES_sharprom-compatible = "\
   virtual/libiconv \
   virtual/arm-linux-gcc \
   virtual/arm-linux-libc-for-gcc \
+  virtual/arm-linux-gcc-intermediate \
   virtual/arm-linux-gcc-initial "
 PR = "r2"
 
============================================================
--- packages/uclibc/uclibc-initial_0.9.26.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.26.bb	a184826f227450c3799472708b38d95c759f1457
@@ -3,20 +3,26 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.27.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.27.bb	bf5a03c0a95f607474c7585a1cdaec562bbb1747
@@ -3,20 +3,27 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.28.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.28.bb	bf5a03c0a95f607474c7585a1cdaec562bbb1747
@@ -3,20 +3,27 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.29.bb	d9cf01fb4dec69ff1f796d39c9078030982eacca
+++ packages/uclibc/uclibc-initial_0.9.29.bb	af0ccde83d59f1948f1f2b5f7d4952d4855c58bc
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,13 +11,20 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	install -d ${CROSS_DIR}/${TARGET_SYS}	
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_svn.bb	2715cc791b3fdd1b8e62328291e3ef33973bacc0
+++ packages/uclibc/uclibc-initial_svn.bb	766c264be7d787f2285f02b13a392f43cb2a87d2
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,18 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc.inc	48b0ba2e4cff05071b3b812ef0be0861870cd00c
+++ packages/uclibc/uclibc.inc	4f97a9d058115dbb12ae1c5d047fb84965500a51
@@ -22,7 +22,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binut
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
-	   virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+	   virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native"
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 
 # Blackfin needs a wrapper around ld

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-16 20:43   ` Leon Woestenberg
  2008-07-17  8:43     ` Khem Raj
@ 2008-07-22  0:28     ` Khem Raj
       [not found]     ` <20080720014112.GA13759@oberlord>
  2 siblings, 0 replies; 20+ messages in thread
From: Khem Raj @ 2008-07-22  0:28 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1481 bytes --]

On Wednesday 16 July 2008 13:43:26 Leon Woestenberg wrote:
> Khem,
> 
> On Wed, Jul 16, 2008 at 10:10 AM, Khem Raj <raj.khem@gmail.com> wrote:
> >> I have not tested it on older compiler/library combinations but I think
> >> it will work there too as I have build various combinations in the past
> >> with same sequence outside OE.
> >>
> >> Comments and feedback is welcome.
> >>
> 
> I will try some combinations over the next few days.
> 
> anyone: This would be a perfect candidate for some good testing
> outside of .dev, what would be the best approach for that currently
> besides the posted patch?
> 
> Excellent work by the way!
> 
> Regards,

I have done some more testing using various toolchain combinations. I could build all gcc 4.x + glibc 2.4+ combos and eglibc as well as uclibc 0.9.28 and uclibc 0.9.29 and uclibc_svn. In this gcc 3.4.4 glibc 2.3.6 was the oldest combination I could  build on x86 with some surgeries.

This is yet another version of the patch with more stuff in it. ( including the fix to build sdk with gcc 4.3.1) 

Unless you folks approve of this patch is going to get bigger and bigger :)

slugOS maintainers confirmed that they do not need the old combo's so I was more concentrating on gcc 4.x and glibc 2.4+ combos.

I would be happy if someone can test it in his scenario and see if the patch has problems.

I have tested arm and x86. I would appreciate other arch builds if possible.

Thanks

-Khem

[-- Attachment #2: oe-new-toolchain-build-sequence.patch --]
[-- Type: text/x-patch, Size: 333474 bytes --]

#
# old_revision [7235543953cf5b68de17cb866a0f3ba5dc88ab8e]
#
# delete "packages/eglibc/eglibc-intermediate.inc"
# 
# delete "packages/eglibc/eglibc-intermediate_svn.bb"
# 
# delete "packages/glibc/glibc-intermediate.inc"
# 
# delete "packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.3.6.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.4.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.5.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.6.1.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.7.bb"
# 
# delete "packages/glibc/glibc-intermediate_cvs.bb"
# 
# add_dir "packages/glibc/glibc-2.7"
# 
# add_file "packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch"
#  content [19c707575d5be816904f4ced86b7450a2e54c9c3]
# 
# add_file "packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch"
#  content [8e6d3785dd29dc45cdb795c6a4a1c70b3aa60300]
# 
# add_file "packages/gcc/gcc-4.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch"
#  content [2cbc3b136ee24e92a85a74d95f62c6efd87f7591]
# 
# add_file "packages/gcc/gcc-cross-intermediate.inc"
#  content [3fd758b824b19229a3f6e7df95246f0d382bc7ea]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.0.2.bb"
#  content [d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.0.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.1.bb"
#  content [3fc0ba21af09070a730a4b3e0b726ee8918c8f65]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.2.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.1.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.2.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.3.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.4.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.3.1.bb"
#  content [30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb"
#  content [bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb"
#  content [7ca0df097d7377b3d3e86f9ab60edc17327fc874]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch"
#  content [cd6208674ca556cef23fcfe071a929d4c768e68f]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch"
#  content [1233a371e51da2cb27c42ec18bc33f11a9288f28]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch"
#  content [3cb1771cb1ffb55fd118435cae54bade8a5c7d4e]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch"
#  content [59253459fc269a11bbb26d9f5e7a42b6871fd287]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-memusage.patch"
#  content [2a58393c519f5c0ba7293bdd4643302367f2845d]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch"
#  content [f31f3425ae1f8afcb869cd8e0f3c414d01aa211f]
# 
# add_file "packages/glibc/glibc-2.7/all_glibc-i586-chk.patch"
#  content [5adb32eb0f211aa8fca2fcb25d68b7dbbce3d121]
# 
# patch "conf/distro/angstrom-2008.1.conf"
#  from [f64ebcf55e85b504d3be169befac3c7981aa74d9]
#    to [dd3ab976c49eec5fbb5e9e740aa8dfe99aa64fa6]
# 
# patch "conf/distro/celinux-test.conf"
#  from [89d7e451fc9af9bf40690f40acee9b8634d4239f]
#    to [1405fee6f781db757cd0819b219abd9f47fc4b93]
# 
# patch "conf/distro/chinook-compat.conf"
#  from [6792236a4e268fbe64e7adc994afef1224f52c9a]
#    to [19281a425235c6217a5de40204e18655583cf001]
# 
# patch "conf/distro/gmustix.conf"
#  from [88db2db3032412eac284ef6efa7a4668c79a29b2]
#    to [e5a0ed1602a23b5cbddbee1a07669efa041cd191]
# 
# patch "conf/distro/include/angstrom-2007-for-openmoko.inc"
#  from [4e926bdf5178cce4d068eeb210aba5adf7982351]
#    to [85b9d88526b7e40205f13f547c01c721f42fa32f]
# 
# patch "conf/distro/include/angstrom-eglibc.inc"
#  from [e0e7b6758775be96c0a58faecff645b05ef7c3e2]
#    to [e56df3f5a1f620f0dfa7795ff188661bf1524389]
# 
# patch "conf/distro/include/angstrom-glibc.inc"
#  from [64060b7ace4591e34cd8206bb5cd3ba77c6554d4]
#    to [9a81308293772bcff0ea1b412e0fa3a478a205fe]
# 
# patch "conf/distro/include/insane-srcrevs.inc"
#  from [e685e3b620d54ebf0b096e4709ed95ca3329b08c]
#    to [cbc144484de6ac4d699d0a609a011f4f1f04d2bf]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [3f7f64ecffb3a08b7d6d6b1dcbb873b77c474243]
#    to [fff789e4d1f239ac260c9e3632a3b3e21fac565c]
# 
# patch "conf/distro/include/slugos.inc"
#  from [9b41afe5f573c4ce71c88ddf2bcda240c4dae42c]
#    to [15ec40d1c8105150bd6e9f5af9d3efa15ffa623d]
# 
# patch "conf/distro/jlime-donkey.conf"
#  from [fb7ea51917dde4bafa36f1b4a43be01e96610ad6]
#    to [af6cabdd09a5bd6796c790944232bdcb47f2c83b]
# 
# patch "conf/distro/jlime-henchman.conf"
#  from [40b971ca62e022ba5da642d0dd65e9472369efc9]
#    to [576306734d9284a03e4a2c7d9af7aeab477b903c]
# 
# patch "conf/distro/jlime-mongo.conf"
#  from [239a9bf19ee598d83ee84d5958a12b71bd7bef47]
#    to [326f98ce35aedb012b0e23bd6d1c4d5364d22c5b]
# 
# patch "conf/distro/jlime-shrek.conf"
#  from [4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491]
#    to [4960e4997a76b212b2bda2ec3ddab16d81622075]
# 
# patch "conf/distro/mamona.conf"
#  from [fd683d8ddd62359322234b247211b416f546a004]
#    to [2259bb76e74ceface351ef6266ee9f3284c8e414]
# 
# patch "conf/distro/minimal.conf"
#  from [3659ec6bf90d9eac32c48e7ac2207b2a8c100d28]
#    to [bb050fd7b97576649bce4f1605b0c122f9cbea02]
# 
# patch "conf/distro/nylon.conf"
#  from [55b55fd58b093f18dc69ad389287e77c548403ae]
#    to [93b37b27f5a8b665966cdcd8b90187ec5428f2bc]
# 
# patch "conf/distro/openprotium.conf"
#  from [fa9e89af0f2d1321bd93fb2c08dfc7fa720a7d51]
#    to [982f64d7db8d48f170cd1aa284d266ddbc1030ce]
# 
# patch "conf/distro/oplinux-uclibc.conf"
#  from [ded77d3149a141de656d62e5c1ed7e161f1e500d]
#    to [af3019dae5fb6717311d042ac2f3114f99cdd50e]
# 
# patch "conf/distro/oplinux.conf"
#  from [0dbc9a811a5f426f5d3e4ead5a20330b56e51e41]
#    to [007c319d5693215e75c73b455c5c76a0f2465501]
# 
# patch "conf/distro/sharprom-compatible.conf"
#  from [866d17894061cd031cda619513332fa012433fa3]
#    to [89b78178c717a75e6dc950636c6903fbfb6fb989]
# 
# patch "conf/distro/ucslugc.conf"
#  from [13de2c9a77700ae97b0f7a3dbb79971cb6451ca6]
#    to [bb32cc5c8cbf8d2446f2bf2eef140a2ccd04ee1d]
# 
# patch "conf/distro/unslung.conf"
#  from [0ef6d906a67568b77e1f68fc1ac5c65f65586c67]
#    to [a7d66feda58ef5de37cbaf33395cb0dd4e1e7586]
# 
# patch "conf/distro/wrt54oe.conf"
#  from [9d556281a94a6474ec9b7e6edffabcecd876b083]
#    to [511263e0f8d97edcbcab96283a7c703b27f7072b]
# 
# patch "conf/local.conf.sample"
#  from [fa7f5ad0f812c943367b2c88b4e4f7165797959d]
#    to [5164ed855456a3c58975fcfbad1c9da8dd8d60f2]
# 
# patch "conf/machine/native.conf"
#  from [9f73a28ea65b27265df3e4afa2107401f9463ead]
#    to [e4b8c17ba26581950b67bf9e306d9f1664c0741f]
# 
# patch "packages/eglibc/eglibc-initial.inc"
#  from [9cc9a816e903fd588bfe9b6529f690d24297a54b]
#    to [4b2b73384f3c8f940e42387057da88a76435f44c]
# 
# patch "packages/eglibc/eglibc.inc"
#  from [20ecb0b8894a6fa79214db154c8cd4e8458d7237]
#    to [eef22ba34145bef9522d66a4eb30da587ba3e6a2]
# 
# patch "packages/gcc/gcc-3.4.4.inc"
#  from [b6121dbf8fda33791722c94759192ce86145319f]
#    to [db48eb2b8c53c3d57d561258a42cace119a70438]
# 
# patch "packages/gcc/gcc-4.3.1.inc"
#  from [c95319fe788a145ce0a5aecd6d6c270424e47e03]
#    to [7ee3a1d24f6fe58cc59653a6e65c7e8bcc68a8a7]
# 
# patch "packages/gcc/gcc-configure-cross.inc"
#  from [703d1979546f41f4a81d5aed72bf335e2bc5c69e]
#    to [4882906171abcb3738dfefb319ad714053c3adbe]
# 
# patch "packages/gcc/gcc-cross-initial.inc"
#  from [ad4596bca70fbc850a629b1582fafb6479bcb65d]
#    to [6dc1ca2688a86e10d96b345c271514ca7e6b0f1e]
# 
# patch "packages/gcc/gcc-cross-initial_4.3.1.bb"
#  from [4b22e8ec5d3911ce0553e074354f5ad218d7fce8]
#    to [1aadd72b822c32000450e9ae18faceef0112a99a]
# 
# patch "packages/glibc/glibc-initial.inc"
#  from [0480105971d23c66b379db96774c07f2a0913989]
#    to [7a1a79ecca0658f29a905c2140d27445a57bad55]
# 
# patch "packages/glibc/glibc-initial_2.5.bb"
#  from [c87dce64dc313f734e0764420892401b0c7301ee]
#    to [717f9cbf298c7866010b883caec46b01814a1ca4]
# 
# patch "packages/glibc/glibc-stage.inc"
#  from [8abe1d7d9fd4c34d725a7f26db2110bb66ec3e16]
#    to [9add53332fea43aff1a7efdeba79858facecfc1a]
# 
# patch "packages/glibc/glibc.inc"
#  from [94a32473f1193137d45da97d6ed786ae9e755094]
#    to [d7da3e08d193524257645bad4468dbb3dd7ed044]
# 
# patch "packages/glibc/glibc_2.3.6.bb"
#  from [a180c138b01077df8b234264ee6abd46cbf72314]
#    to [7ce57da5312cee1deb44c097867123d097f84146]
# 
# patch "packages/glibc/glibc_2.5.bb"
#  from [3c1686afff4b72f25b0ee4879fa7df5bed91c6b3]
#    to [330520507426ad66fcbf5a266a8aa5845504a744]
# 
# patch "packages/glibc/glibc_2.6.1.bb"
#  from [8b5e0d298c84d71b8a15be26527883a393e5483d]
#    to [17745de42ba1ebc4c1d4242154c294e27aa5a73c]
# 
# patch "packages/glibc/glibc_2.7.bb"
#  from [02c169c2754286db4f842bbe42a680e438defb73]
#    to [73c2cf870a5fd5c6da7625ada47fefdf0948c1be]
# 
# patch "packages/meta/external-toolchain.bb"
#  from [ebcd8679c393d51824573b5a70c7a071f8521117]
#    to [fe769763ba169fd561e2c5f1153726281afa9952]
# 
# patch "packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb"
#  from [63c582236d5e631780a864456ba4db4862602a0e]
#    to [8e92e1882cb3bc63515abe5cc42b6577706e118d]
# 
# patch "packages/uclibc/uclibc-initial_0.9.26.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [a184826f227450c3799472708b38d95c759f1457]
# 
# patch "packages/uclibc/uclibc-initial_0.9.27.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [bf5a03c0a95f607474c7585a1cdaec562bbb1747]
# 
# patch "packages/uclibc/uclibc-initial_0.9.28.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [bf5a03c0a95f607474c7585a1cdaec562bbb1747]
# 
# patch "packages/uclibc/uclibc-initial_0.9.29.bb"
#  from [d9cf01fb4dec69ff1f796d39c9078030982eacca]
#    to [af0ccde83d59f1948f1f2b5f7d4952d4855c58bc]
# 
# patch "packages/uclibc/uclibc-initial_svn.bb"
#  from [2715cc791b3fdd1b8e62328291e3ef33973bacc0]
#    to [766c264be7d787f2285f02b13a392f43cb2a87d2]
# 
# patch "packages/uclibc/uclibc.inc"
#  from [48b0ba2e4cff05071b3b812ef0be0861870cd00c]
#    to [4f97a9d058115dbb12ae1c5d047fb84965500a51]
#
============================================================
--- packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch	19c707575d5be816904f4ced86b7450a2e54c9c3
+++ packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch	19c707575d5be816904f4ced86b7450a2e54c9c3
@@ -0,0 +1,21 @@
+---
+ gcc/config/i386/linux.h |    2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: gcc-3.4.4/gcc/config/i386/linux.h
+===================================================================
+--- gcc-3.4.4.orig/gcc/config/i386/linux.h	2008-07-17 23:40:00.000000000 -0700
++++ gcc-3.4.4/gcc/config/i386/linux.h	2008-07-17 23:40:41.000000000 -0700
+@@ -218,6 +218,7 @@ Boston, MA 02111-1307, USA.  */
+ /* Do code reading to identify a signal frame, and set the frame
+    state data appropriately.  See unwind-dw2.c for the structs.  */
+ 
++#ifndef inhibit_libc
+ #ifdef IN_LIBGCC2
+ /* There's no sys/ucontext.h for some (all?) libc1, so no
+    signal-turned-exceptions for them.  There's also no configure-run for
+@@ -282,3 +283,4 @@ Boston, MA 02111-1307, USA.  */
+   } while (0)
+ #endif /* not USE_GNULIBC_1 */
+ #endif /* IN_LIBGCC2 */
++#endif
============================================================
--- packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch	8e6d3785dd29dc45cdb795c6a4a1c70b3aa60300
+++ packages/gcc/gcc-4.3.1/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch	8e6d3785dd29dc45cdb795c6a4a1c70b3aa60300
@@ -0,0 +1,31 @@
+---
+ configure    |    2 +-
+ configure.ac |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: gcc-4.3.1/configure.ac
+===================================================================
+--- gcc-4.3.1.orig/configure.ac	2008-07-21 12:29:18.000000000 -0700
++++ gcc-4.3.1/configure.ac	2008-07-21 12:29:35.000000000 -0700
+@@ -2352,7 +2352,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.3.1/configure
+===================================================================
+--- gcc-4.3.1.orig/configure	2008-07-21 12:29:48.000000000 -0700
++++ gcc-4.3.1/configure	2008-07-21 12:29:59.000000000 -0700
+@@ -5841,7 +5841,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
============================================================
--- packages/gcc/gcc-4.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch	2cbc3b136ee24e92a85a74d95f62c6efd87f7591
+++ packages/gcc/gcc-4.3.1/gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch	2cbc3b136ee24e92a85a74d95f62c6efd87f7591
@@ -0,0 +1,5466 @@
+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@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@gnu.org>
+
+	PR bootstrap/32009
+	* mh-ppc-darwin (BOOT_CFLAGS): Reenable.
+
+gcc:
+2008-02-19  Paolo Bonzini  <bonzini@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         |   24 
+ Makefile.in          | 1802 +++++++++++++++++++++++++++++++--------------------
+ Makefile.tpl         |   57 -
+ config/mh-ppc-darwin |    3 
+ configure            |   36 -
+ configure.ac         |   32 
+ gcc/doc/install.texi |   56 -
+ 7 files changed, 1261 insertions(+), 749 deletions(-)
+
+Index: gcc-4.3.1/configure.ac
+===================================================================
+--- gcc-4.3.1.orig/configure.ac	2008-02-01 19:29:30.000000000 -0800
++++ gcc-4.3.1/configure.ac	2008-07-21 10:56:15.000000000 -0700
+@@ -1667,6 +1667,38 @@ AC_ARG_WITH([debug-prefix-map],
+   [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
+ AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
+ 
++# 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
++AC_SUBST(CFLAGS_FOR_TARGET)
++
++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
++AC_SUBST(CXXFLAGS_FOR_TARGET)
++
+ # 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
+Index: gcc-4.3.1/Makefile.def
+===================================================================
+--- gcc-4.3.1.orig/Makefile.def	2007-10-23 08:53:18.000000000 -0700
++++ gcc-4.3.1/Makefile.def	2008-07-21 10:56:15.000000000 -0700
+@@ -511,43 +511,51 @@ bootstrap_stage = {
+ 	//   compiler probably has never heard of them.
+ 	stage_configure_flags='--disable-intermodule $(STAGE1_CHECKING) \
+ 	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"' ;
+-	stage_cflags='$(STAGE1_CFLAGS)' ; };
++	stage_cflags='$(STAGE1_CFLAGS)' ;
++	stage_libcflags='$(STAGE1_LIBCFLAGS)' ; };
+ bootstrap_stage = {
+ 	id=2 ; prev=1 ;
+ 	bootstrap_target=bootstrap2 ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags="$(STAGE2_CFLAGS)" ; };
++	stage_cflags="$(STAGE2_CFLAGS)" ;
++	stage_libcflags="$(STAGE2_LIBCFLAGS)" ; };
+ bootstrap_stage = {
+ 	id=b2g0 ; prev=1 ;
+ 	bootstrap_target=bootstrap2-debug ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags="$(STAGE2_CFLAGS) -g0" ; };
++	stage_cflags="$(STAGE2_CFLAGS) -g0" ;
++	stage_libcflags="$(STAGE2_LIBCFLAGS) -g0" ; };
+ bootstrap_stage = {
+ 	id=3 ; prev=2 ; lean=1 ;
+ 	compare_target=compare ;
+ 	bootstrap_target=bootstrap ;
+ 	cleanstrap_target=cleanstrap ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags="$(STAGE3_CFLAGS)" ; };
++	stage_cflags="$(STAGE3_CFLAGS)" ;
++	stage_libcflags="$(STAGE3_LIBCFLAGS)" ; };
+ bootstrap_stage = {
+ 	id=b3g2 ; prev=b2g0 ; lean=1 ;
+ 	compare_target=compare-debug ;
+ 	bootstrap_target=bootstrap-debug ;
+ 	cleanstrap_target=cleanstrap-debug ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags="$(STAGE3_CFLAGS) -g2" ; };
++	stage_cflags="$(STAGE3_CFLAGS) -g2" ;
++	stage_libcflags="$(STAGE3_LIBCFLAGS) -g2" ; };
+ bootstrap_stage = {
+ 	id=4 ; prev=3 ; lean=2 ;
+ 	compare_target=compare3 ;
+ 	bootstrap_target=bootstrap4 ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags="$(STAGE4_CFLAGS)" ; };
++	stage_cflags="$(STAGE4_CFLAGS)" ;
++	stage_libcflags="$(STAGE4_CFLAGS)" ; };
+ bootstrap_stage = {
+ 	id=profile ; prev=1 ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags='$(STAGE2_CFLAGS) -fprofile-generate' ; };
++	stage_cflags='$(STAGE2_CFLAGS) -fprofile-generate' ;
++	stage_libcflags='$(STAGE2_LIBCFLAGS) -fprofile-generate' ; };
+ bootstrap_stage = {
+ 	id=feedback ; prev=profile ;
+ 	bootstrap_target=profiledbootstrap ;
+ 	stage_configure_flags="@stage2_werror_flag@" ;
+-	stage_cflags='$(STAGE3_CFLAGS) -fprofile-use' ; };
++	stage_cflags='$(STAGE3_CFLAGS) -fprofile-use' ;
++	stage_libcflags='$(STAGE3_LIBCFLAGS) -fprofile-use' ; };
+Index: gcc-4.3.1/Makefile.tpl
+===================================================================
+--- gcc-4.3.1.orig/Makefile.tpl	2008-07-21 10:56:14.000000000 -0700
++++ gcc-4.3.1/Makefile.tpl	2008-07-21 10:56:15.000000000 -0700
+@@ -207,10 +207,10 @@ BASE_TARGET_EXPORTS = \
+ 	AR="$(AR_FOR_TARGET)"; export AR; \
+ 	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+ 	CC="$(CC_FOR_TARGET)"; export CC; \
+-	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
+ 	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ 	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+-	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
++	CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ 	GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+ 	GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \
+ 	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+@@ -330,14 +330,19 @@ PICFLAG = 
+ # MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
+ # overrideable (for a bootstrap build stage1 also builds gcc.info).
+ 
+-STAGE1_CFLAGS=@stage1_cflags@
+ STAGE1_CHECKING=@stage1_checking@
+ STAGE1_LANGUAGES=@stage1_languages@
+ 
++STAGE1_CFLAGS=@stage1_cflags@
+ STAGE2_CFLAGS=$(BOOT_CFLAGS)
+ STAGE3_CFLAGS=$(BOOT_CFLAGS)
+ STAGE4_CFLAGS=$(BOOT_CFLAGS)
+ 
++STAGE1_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE2_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE3_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE4_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++
+ do-compare = @do_compare@
+ do-compare3 = $(do-compare)
+ do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
+@@ -376,18 +381,11 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_
+ COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@
+ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
+ 
+-# 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 prepend those options when setting
+-# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
+-CFLAGS_FOR_TARGET = -O2 -g $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+-	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@
++CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@
+ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
+ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
+-CXXFLAGS_FOR_TARGET = -O2 -g $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+-	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++
+ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
+ LDFLAGS_FOR_TARGET = @LDFLAGS@ 
+@@ -491,19 +489,20 @@ POSTSTAGE1_FLAGS_TO_PASS = \
+ # Flags to pass down to makes which are built with the target environment.
+ # The double $ decreases the length of the command line; those variables
+ # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.  The
+-# COMPILER_ prefixed variables are not passed down so we expand them here.
++# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty,
++# so we expand them here.
+ EXTRA_TARGET_FLAGS = \
+ 	'AR=$$(AR_FOR_TARGET)' \
+ 	'AS=$(COMPILER_AS_FOR_TARGET)' \
+ 	'CC=$$(CC_FOR_TARGET)' \
+-	'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
++	'CFLAGS=$$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 	'CXX=$$(CXX_FOR_TARGET)' \
+-	'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
++	'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 	'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
+ 	'LD=$(COMPILER_LD_FOR_TARGET)' \
+ 	'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \
+-	'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
+-	'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
++	'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
++	'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 	'NM=$(COMPILER_NM_FOR_TARGET)' \
+ 	'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \
+ 	'RANLIB=$$(RANLIB_FOR_TARGET)' \
+@@ -851,9 +850,11 @@ configure-stage[+id+]-[+prefix+][+module
+ 	fi; \
+ 	[+ ENDIF check_multilibs +]test ! -f [+subdir+]/[+module+]/Makefile || exit 0; \
+ 	[+exports+][+ IF prev +] \
+-	[+poststage1_exports+][+ ENDIF prev +] \
++	[+poststage1_exports+][+ ENDIF prev +] [+ IF prefix +] \
++	CFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="[+stage_libcflags+] $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; [+ ELSE +] \
+ 	CFLAGS="[+stage_cflags+]"; export CFLAGS; \
+-	LIBCFLAGS="[+stage_cflags+]"; export LIBCFLAGS; \
++	CXXFLAGS="[+stage_cflags+]"; export CXXFLAGS; [+ ENDIF +] \
+ 	echo Configuring stage [+id+] in [+subdir+]/[+module+] ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs [+subdir+]/[+module+] ; \
+ 	cd [+subdir+]/[+module+] || exit 1; \
+@@ -890,7 +891,8 @@ all-[+prefix+][+module+]: configure-[+pr
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	[+exports+] \
+ 	(cd [+subdir+]/[+module+] && \
+-	  $(MAKE) [+args+] [+extra_make_flags+] $(TARGET-[+prefix+][+module+]))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) [+args+] [+extra_make_flags+] \
++		$(TARGET-[+prefix+][+module+]))
+ @endif [+prefix+][+module+]
+ 
+ [+ IF bootstrap +]
+@@ -910,8 +912,11 @@ all-stage[+id+]-[+prefix+][+module+]: co
+ 	[+exports+][+ IF prev +] \
+ 	[+poststage1_exports+][+ ENDIF prev +] \
+ 	cd [+subdir+]/[+module+] && \
+-	$(MAKE) [+args+] \
+-		CFLAGS="[+stage_cflags+]" LIBCFLAGS="[+stage_cflags+]" [+
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="[+stage_cflags+]" CXXFLAGS="[+stage_cflags+]" \
++		LIBCFLAGS="[+stage_libcflags+]" \
++		CFLAGS_FOR_TARGET="[+stage_libcflags+]" \
++		CXXFLAGS_FOR_TARGET="[+stage_libcflags+]" [+args+] [+
+ 		IF prev +][+poststage1_args+][+ ENDIF prev
+ 		+] [+extra_make_flags+] \
+ 		$(TARGET-stage[+id+]-[+prefix+][+module+])
+@@ -961,7 +966,7 @@ clean-stage[+id+]-[+prefix+][+module+]:
+ [+ all prefix="" subdir="$(HOST_SUBDIR)"
+        exports="$(HOST_EXPORTS)"
+        poststage1_exports="$(POSTSTAGE1_HOST_EXPORTS)"
+-       args="$(FLAGS_TO_PASS)"
++       args="$(EXTRA_HOST_FLAGS)"
+        poststage1_args="$(POSTSTAGE1_FLAGS_TO_PASS)" +]
+ 
+ .PHONY: check-[+module+] maybe-check-[+module+]
+@@ -1059,7 +1064,7 @@ maybe-[+make_target+]-[+module+]: [+make
+ 
+ [+ all prefix="target-" subdir="$(TARGET_SUBDIR)"
+        exports="$(RAW_CXX_TARGET_EXPORTS)"
+-       args="$(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +]
++       args="$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'" +]
+ [+ ELSE +]
+ [+ configure prefix="target-" subdir="$(TARGET_SUBDIR)"
+ 	     check_multilibs=true
+@@ -1070,7 +1075,7 @@ maybe-[+make_target+]-[+module+]: [+make
+ 
+ [+ all prefix="target-" subdir="$(TARGET_SUBDIR)"
+        exports="$(NORMAL_TARGET_EXPORTS)"
+-       args="$(TARGET_FLAGS_TO_PASS)" +]
++       args="$(EXTRA_TARGET_FLAGS)" +]
+ [+ ENDIF +]
+ 
+ .PHONY: check-target-[+module+] maybe-check-target-[+module+]
+Index: gcc-4.3.1/config/mh-ppc-darwin
+===================================================================
+--- gcc-4.3.1.orig/config/mh-ppc-darwin	2007-05-23 07:26:31.000000000 -0700
++++ gcc-4.3.1/config/mh-ppc-darwin	2008-07-21 10:56:15.000000000 -0700
+@@ -2,5 +2,4 @@
+ # position-independent-code -- the usual default on Darwin. This fix speeds
+ # compiles by 3-5%.
+ 
+-# Broken because of PR32009.
+-# BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
++BOOT_CFLAGS=-g -O2 -mdynamic-no-pic
+Index: gcc-4.3.1/gcc/doc/install.texi
+===================================================================
+--- gcc-4.3.1.orig/gcc/doc/install.texi	2008-05-22 23:58:10.000000000 -0700
++++ gcc-4.3.1/gcc/doc/install.texi	2008-07-21 10:56:15.000000000 -0700
+@@ -1772,33 +1772,35 @@ same described above, but object files f
+ stage2 of the 3-stage bootstrap of the compiler are deleted as
+ soon as they are no longer needed.
+ 
+-If you want to save additional space during the bootstrap and in
+-the final installation as well, you can build the compiler binaries
+-without debugging information as in the following example.  This will save
+-roughly 40% of disk space both for the bootstrap and the final installation.
+-(Libraries will still contain debugging information.)
+-
+-@smallexample
+-     make CFLAGS='-O' LIBCFLAGS='-g -O2' \
+-       LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
+-@end smallexample
+-
+-If you wish to use non-default GCC flags when compiling the stage2 and
+-stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing
+-@samp{make}.  Non-default optimization flags are less well
+-tested here than the default of @samp{-g -O2}, but should still work.
+-In a few cases, you may find that you need to specify special flags such
+-as @option{-msoft-float} here to complete the bootstrap; or, if the
+-native compiler miscompiles the stage1 compiler, you may need to work
+-around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
+-stage1 compiler that were miscompiled, or by using @samp{make
++If you wish to use non-default GCC flags when compiling the stage2
++and stage3 compilers, set @code{BOOT_CFLAGS} on the command line when
++doing @samp{make}.  For example, if you want to save additional space
++during the bootstrap and in the final installation as well, you can
++build the compiler binaries without debugging information as in the
++following example.  This will save roughly 40% of disk space both for
++the bootstrap and the final installation.  (Libraries will still contain
++debugging information.)
++
++@smallexample
++     make BOOT_CFLAGS='-O' bootstrap
++@end smallexample
++
++You can place non-default optimization flags into @code{BOOT_CFLAGS}; they
++are less well tested here than the default of @samp{-g -O2}, but should
++still work.  In a few cases, you may find that you need to specify special
++flags such as @option{-msoft-float} here to complete the bootstrap; or,
++if the native compiler miscompiles the stage1 compiler, you may need
++to work around this, by choosing @code{BOOT_CFLAGS} to avoid the parts
++of the stage1 compiler that were miscompiled, or by using @samp{make
+ bootstrap4} to increase the number of stages of bootstrap.
+ 
+-Note that using non-standard @code{CFLAGS} can cause bootstrap to fail
+-if these trigger a warning with the new compiler.  For example using
+-@samp{-O2 -g -mcpu=i686} on @code{i686-pc-linux-gnu} will cause bootstrap
+-failure as @option{-mcpu=} is deprecated in 3.4.0 and above.
+-
++@code{BOOT_CFLAGS} does not apply to bootstrapped target libraries.
++Since these are always compiled with the compiler currently being
++bootstrapped, you can use @code{CFLAGS_FOR_TARGET} to modify their
++compilation flags, as for non-bootstrapped target libraries.
++Again, if the native compiler miscompiles the stage1 compiler, you may
++need to work around this by avoiding non-working parts of the stage1
++compiler.  Use @code{STAGE1_LIBCFLAGS} to this end.
+ 
+ If you used the flag @option{--enable-languages=@dots{}} to restrict
+ the compilers to be built, only those you've actually enabled will be
+@@ -2689,8 +2691,8 @@ cross-compilers on the Alpha for 32-bit 
+ a few cases and may not work properly.
+ 
+ @samp{make compare} may fail on old versions of DEC Unix unless you add
+-@option{-save-temps} to @code{CFLAGS}.  On these systems, the name of the
+-assembler input file is stored in the object file, and that makes
++@option{-save-temps} to @code{BOOT_CFLAGS}.  On these systems, the name
++of the assembler input file is stored in the object file, and that makes
+ comparison fail if it differs between the @code{stage1} and
+ @code{stage2} compilations.  The option @option{-save-temps} forces a
+ fixed name to be used for the assembler input file, instead of a
+Index: gcc-4.3.1/Makefile.in
+===================================================================
+--- gcc-4.3.1.orig/Makefile.in	2008-07-21 10:56:14.000000000 -0700
++++ gcc-4.3.1/Makefile.in	2008-07-21 10:56:15.000000000 -0700
+@@ -204,11 +204,10 @@ BASE_TARGET_EXPORTS = \
+ 	AR="$(AR_FOR_TARGET)"; export AR; \
+ 	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+ 	CC="$(CC_FOR_TARGET)"; export CC; \
+-	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+-	CPP="$(CC_FOR_TARGET) -E"; export CPP; \
++	CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
+ 	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ 	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+-	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
++	CXXFLAGS="$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ 	GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+ 	GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \
+ 	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+@@ -328,14 +327,19 @@ PICFLAG = 
+ # MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
+ # overrideable (for a bootstrap build stage1 also builds gcc.info).
+ 
+-STAGE1_CFLAGS=@stage1_cflags@
+ STAGE1_CHECKING=@stage1_checking@
+ STAGE1_LANGUAGES=@stage1_languages@
+ 
++STAGE1_CFLAGS=@stage1_cflags@
+ STAGE2_CFLAGS=$(BOOT_CFLAGS)
+ STAGE3_CFLAGS=$(BOOT_CFLAGS)
+ STAGE4_CFLAGS=$(BOOT_CFLAGS)
+ 
++STAGE1_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE2_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE3_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++STAGE4_LIBCFLAGS=$(CFLAGS_FOR_TARGET)
++
+ do-compare = @do_compare@
+ do-compare3 = $(do-compare)
+ do-compare-debug = $(SHELL) $(srcdir)/contrib/compare-debug $$f1 $$f2
+@@ -374,18 +378,11 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_
+ COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@
+ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
+ 
+-# 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 prepend those options when setting
+-# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
+-CFLAGS_FOR_TARGET = -O2 -g $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+-	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@
++CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@
+ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
+ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
+-CXXFLAGS_FOR_TARGET = -O2 -g $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
+-	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
++
+ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
+ LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
+ LDFLAGS_FOR_TARGET = @LDFLAGS@ 
+@@ -592,19 +589,20 @@ POSTSTAGE1_FLAGS_TO_PASS = \
+ # Flags to pass down to makes which are built with the target environment.
+ # The double $ decreases the length of the command line; those variables
+ # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.  The
+-# COMPILER_ prefixed variables are not passed down so we expand them here.
++# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty,
++# so we expand them here.
+ EXTRA_TARGET_FLAGS = \
+ 	'AR=$$(AR_FOR_TARGET)' \
+ 	'AS=$(COMPILER_AS_FOR_TARGET)' \
+ 	'CC=$$(CC_FOR_TARGET)' \
+-	'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
++	'CFLAGS=$$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 	'CXX=$$(CXX_FOR_TARGET)' \
+-	'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
++	'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 	'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
+ 	'LD=$(COMPILER_LD_FOR_TARGET)' \
+ 	'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \
+-	'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
+-	'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
++	'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
++	'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)' \
+ 	'NM=$(COMPILER_NM_FOR_TARGET)' \
+ 	'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \
+ 	'RANLIB=$$(RANLIB_FOR_TARGET)' \
+@@ -2738,7 +2736,8 @@ all-build-libiberty: configure-build-lib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/libiberty && \
+-	  $(MAKE)   $(TARGET-build-libiberty))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-libiberty))
+ @endif build-libiberty
+ 
+ 
+@@ -2793,7 +2792,8 @@ all-build-bison: configure-build-bison
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/bison && \
+-	  $(MAKE)   $(TARGET-build-bison))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-bison))
+ @endif build-bison
+ 
+ 
+@@ -2848,7 +2848,8 @@ all-build-byacc: configure-build-byacc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/byacc && \
+-	  $(MAKE)   $(TARGET-build-byacc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-byacc))
+ @endif build-byacc
+ 
+ 
+@@ -2903,7 +2904,8 @@ all-build-flex: configure-build-flex
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/flex && \
+-	  $(MAKE)   $(TARGET-build-flex))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-flex))
+ @endif build-flex
+ 
+ 
+@@ -2958,7 +2960,8 @@ all-build-m4: configure-build-m4
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/m4 && \
+-	  $(MAKE)   $(TARGET-build-m4))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-m4))
+ @endif build-m4
+ 
+ 
+@@ -3013,7 +3016,8 @@ all-build-texinfo: configure-build-texin
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/texinfo && \
+-	  $(MAKE)   $(TARGET-build-texinfo))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-texinfo))
+ @endif build-texinfo
+ 
+ 
+@@ -3068,7 +3072,8 @@ all-build-fixincludes: configure-build-f
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(BUILD_EXPORTS) \
+ 	(cd $(BUILD_SUBDIR)/fixincludes && \
+-	  $(MAKE)   $(TARGET-build-fixincludes))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS)   \
++		$(TARGET-build-fixincludes))
+ @endif build-fixincludes
+ 
+ 
+@@ -3127,7 +3132,8 @@ all-ash: configure-ash
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/ash && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-ash))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-ash))
+ @endif ash
+ 
+ 
+@@ -3551,7 +3557,8 @@ all-autoconf: configure-autoconf
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/autoconf && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-autoconf))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-autoconf))
+ @endif autoconf
+ 
+ 
+@@ -3975,7 +3982,8 @@ all-automake: configure-automake
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/automake && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-automake))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-automake))
+ @endif automake
+ 
+ 
+@@ -4399,7 +4407,8 @@ all-bash: configure-bash
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/bash && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-bash))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-bash))
+ @endif bash
+ 
+ 
+@@ -4816,9 +4825,9 @@ configure-stage1-bfd:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4847,9 +4856,9 @@ configure-stage2-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4878,9 +4887,9 @@ configure-stageb2g0-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4909,9 +4918,9 @@ configure-stage3-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4940,9 +4949,9 @@ configure-stageb3g2-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -4971,9 +4980,9 @@ configure-stage4-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -5002,9 +5011,9 @@ configure-stageprofile-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -5033,9 +5042,9 @@ configure-stagefeedback-bfd:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/bfd ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd ; \
+ 	cd $(HOST_SUBDIR)/bfd || exit 1; \
+@@ -5070,7 +5079,8 @@ all-bfd: configure-bfd
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/bfd && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-bfd))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-bfd))
+ @endif bfd
+ 
+ 
+@@ -5089,8 +5099,11 @@ all-stage1-bfd: configure-stage1-bfd
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-bfd)
+ 
+ maybe-clean-stage1-bfd: clean-stage1-bfd
+@@ -5103,7 +5116,7 @@ clean-stage1-bfd:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif bfd-bootstrap
+ 
+@@ -5123,8 +5136,11 @@ all-stage2-bfd: configure-stage2-bfd
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-bfd)
+ 
+ maybe-clean-stage2-bfd: clean-stage2-bfd
+@@ -5137,7 +5153,7 @@ clean-stage2-bfd:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5158,8 +5174,11 @@ all-stageb2g0-bfd: configure-stageb2g0-b
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-bfd)
+ 
+ maybe-clean-stageb2g0-bfd: clean-stageb2g0-bfd
+@@ -5172,7 +5191,7 @@ clean-stageb2g0-bfd:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5193,8 +5212,11 @@ all-stage3-bfd: configure-stage3-bfd
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-bfd)
+ 
+ maybe-clean-stage3-bfd: clean-stage3-bfd
+@@ -5207,7 +5229,7 @@ clean-stage3-bfd:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5228,8 +5250,11 @@ all-stageb3g2-bfd: configure-stageb3g2-b
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-bfd)
+ 
+ maybe-clean-stageb3g2-bfd: clean-stageb3g2-bfd
+@@ -5242,7 +5267,7 @@ clean-stageb3g2-bfd:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5263,8 +5288,11 @@ all-stage4-bfd: configure-stage4-bfd
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-bfd)
+ 
+ maybe-clean-stage4-bfd: clean-stage4-bfd
+@@ -5277,7 +5305,7 @@ clean-stage4-bfd:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5298,8 +5326,11 @@ all-stageprofile-bfd: configure-stagepro
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-bfd)
+ 
+ maybe-clean-stageprofile-bfd: clean-stageprofile-bfd
+@@ -5312,7 +5343,7 @@ clean-stageprofile-bfd:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5333,8 +5364,11 @@ all-stagefeedback-bfd: configure-stagefe
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-bfd)
+ 
+ maybe-clean-stagefeedback-bfd: clean-stagefeedback-bfd
+@@ -5347,7 +5381,7 @@ clean-stagefeedback-bfd:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/bfd && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif bfd-bootstrap
+@@ -5754,9 +5788,9 @@ configure-stage1-opcodes:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5785,9 +5819,9 @@ configure-stage2-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5816,9 +5850,9 @@ configure-stageb2g0-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5847,9 +5881,9 @@ configure-stage3-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5878,9 +5912,9 @@ configure-stageb3g2-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5909,9 +5943,9 @@ configure-stage4-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5940,9 +5974,9 @@ configure-stageprofile-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -5971,9 +6005,9 @@ configure-stagefeedback-opcodes:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/opcodes ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes ; \
+ 	cd $(HOST_SUBDIR)/opcodes || exit 1; \
+@@ -6008,7 +6042,8 @@ all-opcodes: configure-opcodes
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/opcodes && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-opcodes))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-opcodes))
+ @endif opcodes
+ 
+ 
+@@ -6027,8 +6062,11 @@ all-stage1-opcodes: configure-stage1-opc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-opcodes)
+ 
+ maybe-clean-stage1-opcodes: clean-stage1-opcodes
+@@ -6041,7 +6079,7 @@ clean-stage1-opcodes:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+ 
+@@ -6061,8 +6099,11 @@ all-stage2-opcodes: configure-stage2-opc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-opcodes)
+ 
+ maybe-clean-stage2-opcodes: clean-stage2-opcodes
+@@ -6075,7 +6116,7 @@ clean-stage2-opcodes:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6096,8 +6137,11 @@ all-stageb2g0-opcodes: configure-stageb2
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-opcodes)
+ 
+ maybe-clean-stageb2g0-opcodes: clean-stageb2g0-opcodes
+@@ -6110,7 +6154,7 @@ clean-stageb2g0-opcodes:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6131,8 +6175,11 @@ all-stage3-opcodes: configure-stage3-opc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-opcodes)
+ 
+ maybe-clean-stage3-opcodes: clean-stage3-opcodes
+@@ -6145,7 +6192,7 @@ clean-stage3-opcodes:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6166,8 +6213,11 @@ all-stageb3g2-opcodes: configure-stageb3
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-opcodes)
+ 
+ maybe-clean-stageb3g2-opcodes: clean-stageb3g2-opcodes
+@@ -6180,7 +6230,7 @@ clean-stageb3g2-opcodes:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6201,8 +6251,11 @@ all-stage4-opcodes: configure-stage4-opc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-opcodes)
+ 
+ maybe-clean-stage4-opcodes: clean-stage4-opcodes
+@@ -6215,7 +6268,7 @@ clean-stage4-opcodes:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6236,8 +6289,11 @@ all-stageprofile-opcodes: configure-stag
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-opcodes)
+ 
+ maybe-clean-stageprofile-opcodes: clean-stageprofile-opcodes
+@@ -6250,7 +6306,7 @@ clean-stageprofile-opcodes:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6271,8 +6327,11 @@ all-stagefeedback-opcodes: configure-sta
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-opcodes)
+ 
+ maybe-clean-stagefeedback-opcodes: clean-stagefeedback-opcodes
+@@ -6285,7 +6344,7 @@ clean-stagefeedback-opcodes:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/opcodes && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif opcodes-bootstrap
+@@ -6692,9 +6751,9 @@ configure-stage1-binutils:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6723,9 +6782,9 @@ configure-stage2-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6754,9 +6813,9 @@ configure-stageb2g0-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6785,9 +6844,9 @@ configure-stage3-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6816,9 +6875,9 @@ configure-stageb3g2-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6847,9 +6906,9 @@ configure-stage4-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6878,9 +6937,9 @@ configure-stageprofile-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6909,9 +6968,9 @@ configure-stagefeedback-binutils:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/binutils ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils ; \
+ 	cd $(HOST_SUBDIR)/binutils || exit 1; \
+@@ -6946,7 +7005,8 @@ all-binutils: configure-binutils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/binutils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-binutils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-binutils))
+ @endif binutils
+ 
+ 
+@@ -6965,8 +7025,11 @@ all-stage1-binutils: configure-stage1-bi
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-binutils)
+ 
+ maybe-clean-stage1-binutils: clean-stage1-binutils
+@@ -6979,7 +7042,7 @@ clean-stage1-binutils:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif binutils-bootstrap
+ 
+@@ -6999,8 +7062,11 @@ all-stage2-binutils: configure-stage2-bi
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-binutils)
+ 
+ maybe-clean-stage2-binutils: clean-stage2-binutils
+@@ -7013,7 +7079,7 @@ clean-stage2-binutils:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7034,8 +7100,11 @@ all-stageb2g0-binutils: configure-stageb
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-binutils)
+ 
+ maybe-clean-stageb2g0-binutils: clean-stageb2g0-binutils
+@@ -7048,7 +7117,7 @@ clean-stageb2g0-binutils:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7069,8 +7138,11 @@ all-stage3-binutils: configure-stage3-bi
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-binutils)
+ 
+ maybe-clean-stage3-binutils: clean-stage3-binutils
+@@ -7083,7 +7155,7 @@ clean-stage3-binutils:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7104,8 +7176,11 @@ all-stageb3g2-binutils: configure-stageb
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-binutils)
+ 
+ maybe-clean-stageb3g2-binutils: clean-stageb3g2-binutils
+@@ -7118,7 +7193,7 @@ clean-stageb3g2-binutils:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7139,8 +7214,11 @@ all-stage4-binutils: configure-stage4-bi
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-binutils)
+ 
+ maybe-clean-stage4-binutils: clean-stage4-binutils
+@@ -7153,7 +7231,7 @@ clean-stage4-binutils:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7174,8 +7252,11 @@ all-stageprofile-binutils: configure-sta
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-binutils)
+ 
+ maybe-clean-stageprofile-binutils: clean-stageprofile-binutils
+@@ -7188,7 +7269,7 @@ clean-stageprofile-binutils:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7209,8 +7290,11 @@ all-stagefeedback-binutils: configure-st
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-binutils)
+ 
+ maybe-clean-stagefeedback-binutils: clean-stagefeedback-binutils
+@@ -7223,7 +7307,7 @@ clean-stagefeedback-binutils:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/binutils && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif binutils-bootstrap
+@@ -7637,7 +7721,8 @@ all-bison: configure-bison
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/bison && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-bison))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-bison))
+ @endif bison
+ 
+ 
+@@ -8064,7 +8149,8 @@ all-byacc: configure-byacc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/byacc && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-byacc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-byacc))
+ @endif byacc
+ 
+ 
+@@ -8491,7 +8577,8 @@ all-bzip2: configure-bzip2
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/bzip2 && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-bzip2))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-bzip2))
+ @endif bzip2
+ 
+ 
+@@ -8915,7 +9002,8 @@ all-dejagnu: configure-dejagnu
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/dejagnu && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-dejagnu))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-dejagnu))
+ @endif dejagnu
+ 
+ 
+@@ -9339,7 +9427,8 @@ all-diff: configure-diff
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/diff && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-diff))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-diff))
+ @endif diff
+ 
+ 
+@@ -9763,7 +9852,8 @@ all-dosutils: configure-dosutils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/dosutils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-dosutils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-dosutils))
+ @endif dosutils
+ 
+ 
+@@ -10181,7 +10271,8 @@ all-etc: configure-etc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/etc && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-etc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-etc))
+ @endif etc
+ 
+ 
+@@ -10605,7 +10696,8 @@ all-fastjar: configure-fastjar
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/fastjar && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-fastjar))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-fastjar))
+ @endif fastjar
+ 
+ 
+@@ -11032,7 +11124,8 @@ all-fileutils: configure-fileutils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/fileutils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-fileutils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-fileutils))
+ @endif fileutils
+ 
+ 
+@@ -11456,7 +11549,8 @@ all-findutils: configure-findutils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/findutils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-findutils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-findutils))
+ @endif findutils
+ 
+ 
+@@ -11880,7 +11974,8 @@ all-find: configure-find
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/find && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-find))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-find))
+ @endif find
+ 
+ 
+@@ -12304,7 +12399,8 @@ all-fixincludes: configure-fixincludes
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/fixincludes && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-fixincludes))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-fixincludes))
+ @endif fixincludes
+ 
+ 
+@@ -12712,7 +12808,8 @@ all-flex: configure-flex
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/flex && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-flex))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-flex))
+ @endif flex
+ 
+ 
+@@ -13132,9 +13229,9 @@ configure-stage1-gas:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13163,9 +13260,9 @@ configure-stage2-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13194,9 +13291,9 @@ configure-stageb2g0-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13225,9 +13322,9 @@ configure-stage3-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13256,9 +13353,9 @@ configure-stageb3g2-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13287,9 +13384,9 @@ configure-stage4-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13318,9 +13415,9 @@ configure-stageprofile-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13349,9 +13446,9 @@ configure-stagefeedback-gas:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/gas ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas ; \
+ 	cd $(HOST_SUBDIR)/gas || exit 1; \
+@@ -13386,7 +13483,8 @@ all-gas: configure-gas
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gas && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gas))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gas))
+ @endif gas
+ 
+ 
+@@ -13405,8 +13503,11 @@ all-stage1-gas: configure-stage1-gas
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-gas)
+ 
+ maybe-clean-stage1-gas: clean-stage1-gas
+@@ -13419,7 +13520,7 @@ clean-stage1-gas:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif gas-bootstrap
+ 
+@@ -13439,8 +13540,11 @@ all-stage2-gas: configure-stage2-gas
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-gas)
+ 
+ maybe-clean-stage2-gas: clean-stage2-gas
+@@ -13453,7 +13557,7 @@ clean-stage2-gas:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -13474,8 +13578,11 @@ all-stageb2g0-gas: configure-stageb2g0-g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-gas)
+ 
+ maybe-clean-stageb2g0-gas: clean-stageb2g0-gas
+@@ -13488,7 +13595,7 @@ clean-stageb2g0-gas:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -13509,8 +13616,11 @@ all-stage3-gas: configure-stage3-gas
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-gas)
+ 
+ maybe-clean-stage3-gas: clean-stage3-gas
+@@ -13523,7 +13633,7 @@ clean-stage3-gas:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -13544,8 +13654,11 @@ all-stageb3g2-gas: configure-stageb3g2-g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-gas)
+ 
+ maybe-clean-stageb3g2-gas: clean-stageb3g2-gas
+@@ -13558,7 +13671,7 @@ clean-stageb3g2-gas:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -13579,8 +13692,11 @@ all-stage4-gas: configure-stage4-gas
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-gas)
+ 
+ maybe-clean-stage4-gas: clean-stage4-gas
+@@ -13593,7 +13709,7 @@ clean-stage4-gas:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -13614,8 +13730,11 @@ all-stageprofile-gas: configure-stagepro
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-gas)
+ 
+ maybe-clean-stageprofile-gas: clean-stageprofile-gas
+@@ -13628,7 +13747,7 @@ clean-stageprofile-gas:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -13649,8 +13768,11 @@ all-stagefeedback-gas: configure-stagefe
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-gas)
+ 
+ maybe-clean-stagefeedback-gas: clean-stagefeedback-gas
+@@ -13663,7 +13785,7 @@ clean-stagefeedback-gas:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gas && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gas-bootstrap
+@@ -14070,9 +14192,9 @@ configure-stage1-gcc:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14101,9 +14223,9 @@ configure-stage2-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14132,9 +14254,9 @@ configure-stageb2g0-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14163,9 +14285,9 @@ configure-stage3-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14194,9 +14316,9 @@ configure-stageb3g2-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14225,9 +14347,9 @@ configure-stage4-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14256,9 +14378,9 @@ configure-stageprofile-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14287,9 +14409,9 @@ configure-stagefeedback-gcc:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/gcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc ; \
+ 	cd $(HOST_SUBDIR)/gcc || exit 1; \
+@@ -14324,7 +14446,8 @@ all-gcc: configure-gcc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gcc && \
+-	  $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) $(TARGET-gcc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS) \
++		$(TARGET-gcc))
+ @endif gcc
+ 
+ 
+@@ -14343,8 +14466,11 @@ all-stage1-gcc: configure-stage1-gcc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"  $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)  $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stage1-gcc)
+ 
+ maybe-clean-stage1-gcc: clean-stage1-gcc
+@@ -14357,7 +14483,7 @@ clean-stage1-gcc:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+ 
+@@ -14377,8 +14503,11 @@ all-stage2-gcc: configure-stage2-gcc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stage2-gcc)
+ 
+ maybe-clean-stage2-gcc: clean-stage2-gcc
+@@ -14391,7 +14520,7 @@ clean-stage2-gcc:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14412,8 +14541,11 @@ all-stageb2g0-gcc: configure-stageb2g0-g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stageb2g0-gcc)
+ 
+ maybe-clean-stageb2g0-gcc: clean-stageb2g0-gcc
+@@ -14426,7 +14558,7 @@ clean-stageb2g0-gcc:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14447,8 +14579,11 @@ all-stage3-gcc: configure-stage3-gcc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stage3-gcc)
+ 
+ maybe-clean-stage3-gcc: clean-stage3-gcc
+@@ -14461,7 +14596,7 @@ clean-stage3-gcc:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14482,8 +14617,11 @@ all-stageb3g2-gcc: configure-stageb3g2-g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stageb3g2-gcc)
+ 
+ maybe-clean-stageb3g2-gcc: clean-stageb3g2-gcc
+@@ -14496,7 +14634,7 @@ clean-stageb3g2-gcc:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14517,8 +14655,11 @@ all-stage4-gcc: configure-stage4-gcc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stage4-gcc)
+ 
+ maybe-clean-stage4-gcc: clean-stage4-gcc
+@@ -14531,7 +14672,7 @@ clean-stage4-gcc:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14552,8 +14693,11 @@ all-stageprofile-gcc: configure-stagepro
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stageprofile-gcc)
+ 
+ maybe-clean-stageprofile-gcc: clean-stageprofile-gcc
+@@ -14566,7 +14710,7 @@ clean-stageprofile-gcc:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -14587,8 +14731,11 @@ all-stagefeedback-gcc: configure-stagefe
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
+ 		$(TARGET-stagefeedback-gcc)
+ 
+ maybe-clean-stagefeedback-gcc: clean-stagefeedback-gcc
+@@ -14601,7 +14748,7 @@ clean-stagefeedback-gcc:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gcc && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(EXTRA_GCC_FLAGS) clean
+ @endif gcc-bootstrap
+@@ -15015,7 +15162,8 @@ all-gawk: configure-gawk
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gawk && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gawk))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gawk))
+ @endif gawk
+ 
+ 
+@@ -15439,7 +15587,8 @@ all-gettext: configure-gettext
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gettext && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gettext))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gettext))
+ @endif gettext
+ 
+ 
+@@ -15856,9 +16005,9 @@ configure-stage1-gmp:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15887,9 +16036,9 @@ configure-stage2-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15918,9 +16067,9 @@ configure-stageb2g0-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15949,9 +16098,9 @@ configure-stage3-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -15980,9 +16129,9 @@ configure-stageb3g2-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16011,9 +16160,9 @@ configure-stage4-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16042,9 +16191,9 @@ configure-stageprofile-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16073,9 +16222,9 @@ configure-stagefeedback-gmp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/gmp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp ; \
+ 	cd $(HOST_SUBDIR)/gmp || exit 1; \
+@@ -16110,7 +16259,8 @@ all-gmp: configure-gmp
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gmp && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gmp))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gmp))
+ @endif gmp
+ 
+ 
+@@ -16129,8 +16279,11 @@ all-stage1-gmp: configure-stage1-gmp
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-gmp)
+ 
+ maybe-clean-stage1-gmp: clean-stage1-gmp
+@@ -16143,7 +16296,7 @@ clean-stage1-gmp:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif gmp-bootstrap
+ 
+@@ -16163,8 +16316,11 @@ all-stage2-gmp: configure-stage2-gmp
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-gmp)
+ 
+ maybe-clean-stage2-gmp: clean-stage2-gmp
+@@ -16177,7 +16333,7 @@ clean-stage2-gmp:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16198,8 +16354,11 @@ all-stageb2g0-gmp: configure-stageb2g0-g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-gmp)
+ 
+ maybe-clean-stageb2g0-gmp: clean-stageb2g0-gmp
+@@ -16212,7 +16371,7 @@ clean-stageb2g0-gmp:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16233,8 +16392,11 @@ all-stage3-gmp: configure-stage3-gmp
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-gmp)
+ 
+ maybe-clean-stage3-gmp: clean-stage3-gmp
+@@ -16247,7 +16409,7 @@ clean-stage3-gmp:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16268,8 +16430,11 @@ all-stageb3g2-gmp: configure-stageb3g2-g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-gmp)
+ 
+ maybe-clean-stageb3g2-gmp: clean-stageb3g2-gmp
+@@ -16282,7 +16447,7 @@ clean-stageb3g2-gmp:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16303,8 +16468,11 @@ all-stage4-gmp: configure-stage4-gmp
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-gmp)
+ 
+ maybe-clean-stage4-gmp: clean-stage4-gmp
+@@ -16317,7 +16485,7 @@ clean-stage4-gmp:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16338,8 +16506,11 @@ all-stageprofile-gmp: configure-stagepro
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-gmp)
+ 
+ maybe-clean-stageprofile-gmp: clean-stageprofile-gmp
+@@ -16352,7 +16523,7 @@ clean-stageprofile-gmp:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16373,8 +16544,11 @@ all-stagefeedback-gmp: configure-stagefe
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-gmp)
+ 
+ maybe-clean-stagefeedback-gmp: clean-stagefeedback-gmp
+@@ -16387,7 +16561,7 @@ clean-stagefeedback-gmp:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/gmp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif gmp-bootstrap
+@@ -16788,9 +16962,9 @@ configure-stage1-mpfr:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16819,9 +16993,9 @@ configure-stage2-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16850,9 +17024,9 @@ configure-stageb2g0-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16881,9 +17055,9 @@ configure-stage3-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16912,9 +17086,9 @@ configure-stageb3g2-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16943,9 +17117,9 @@ configure-stage4-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -16974,9 +17148,9 @@ configure-stageprofile-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -17005,9 +17179,9 @@ configure-stagefeedback-mpfr:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/mpfr ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr ; \
+ 	cd $(HOST_SUBDIR)/mpfr || exit 1; \
+@@ -17042,7 +17216,8 @@ all-mpfr: configure-mpfr
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/mpfr && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-mpfr))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-mpfr))
+ @endif mpfr
+ 
+ 
+@@ -17061,8 +17236,11 @@ all-stage1-mpfr: configure-stage1-mpfr
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-mpfr)
+ 
+ maybe-clean-stage1-mpfr: clean-stage1-mpfr
+@@ -17075,7 +17253,7 @@ clean-stage1-mpfr:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+ 
+@@ -17095,8 +17273,11 @@ all-stage2-mpfr: configure-stage2-mpfr
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-mpfr)
+ 
+ maybe-clean-stage2-mpfr: clean-stage2-mpfr
+@@ -17109,7 +17290,7 @@ clean-stage2-mpfr:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17130,8 +17311,11 @@ all-stageb2g0-mpfr: configure-stageb2g0-
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-mpfr)
+ 
+ maybe-clean-stageb2g0-mpfr: clean-stageb2g0-mpfr
+@@ -17144,7 +17328,7 @@ clean-stageb2g0-mpfr:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17165,8 +17349,11 @@ all-stage3-mpfr: configure-stage3-mpfr
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-mpfr)
+ 
+ maybe-clean-stage3-mpfr: clean-stage3-mpfr
+@@ -17179,7 +17366,7 @@ clean-stage3-mpfr:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17200,8 +17387,11 @@ all-stageb3g2-mpfr: configure-stageb3g2-
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-mpfr)
+ 
+ maybe-clean-stageb3g2-mpfr: clean-stageb3g2-mpfr
+@@ -17214,7 +17404,7 @@ clean-stageb3g2-mpfr:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17235,8 +17425,11 @@ all-stage4-mpfr: configure-stage4-mpfr
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-mpfr)
+ 
+ maybe-clean-stage4-mpfr: clean-stage4-mpfr
+@@ -17249,7 +17442,7 @@ clean-stage4-mpfr:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17270,8 +17463,11 @@ all-stageprofile-mpfr: configure-stagepr
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-mpfr)
+ 
+ maybe-clean-stageprofile-mpfr: clean-stageprofile-mpfr
+@@ -17284,7 +17480,7 @@ clean-stageprofile-mpfr:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17305,8 +17501,11 @@ all-stagefeedback-mpfr: configure-stagef
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-mpfr)
+ 
+ maybe-clean-stagefeedback-mpfr: clean-stagefeedback-mpfr
+@@ -17319,7 +17518,7 @@ clean-stagefeedback-mpfr:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/mpfr && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif mpfr-bootstrap
+@@ -17727,7 +17926,8 @@ all-gnuserv: configure-gnuserv
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gnuserv && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gnuserv))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gnuserv))
+ @endif gnuserv
+ 
+ 
+@@ -18151,7 +18351,8 @@ all-gprof: configure-gprof
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gprof && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gprof))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gprof))
+ @endif gprof
+ 
+ 
+@@ -18575,7 +18776,8 @@ all-gzip: configure-gzip
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gzip && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gzip))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gzip))
+ @endif gzip
+ 
+ 
+@@ -18999,7 +19201,8 @@ all-hello: configure-hello
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/hello && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-hello))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-hello))
+ @endif hello
+ 
+ 
+@@ -19423,7 +19626,8 @@ all-indent: configure-indent
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/indent && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-indent))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-indent))
+ @endif indent
+ 
+ 
+@@ -19840,9 +20044,9 @@ configure-stage1-intl:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19871,9 +20075,9 @@ configure-stage2-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19902,9 +20106,9 @@ configure-stageb2g0-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19933,9 +20137,9 @@ configure-stage3-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19964,9 +20168,9 @@ configure-stageb3g2-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -19995,9 +20199,9 @@ configure-stage4-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -20026,9 +20230,9 @@ configure-stageprofile-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -20057,9 +20261,9 @@ configure-stagefeedback-intl:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/intl ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl ; \
+ 	cd $(HOST_SUBDIR)/intl || exit 1; \
+@@ -20094,7 +20298,8 @@ all-intl: configure-intl
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/intl && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-intl))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-intl))
+ @endif intl
+ 
+ 
+@@ -20113,8 +20318,11 @@ all-stage1-intl: configure-stage1-intl
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-intl)
+ 
+ maybe-clean-stage1-intl: clean-stage1-intl
+@@ -20127,7 +20335,7 @@ clean-stage1-intl:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif intl-bootstrap
+ 
+@@ -20147,8 +20355,11 @@ all-stage2-intl: configure-stage2-intl
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-intl)
+ 
+ maybe-clean-stage2-intl: clean-stage2-intl
+@@ -20161,7 +20372,7 @@ clean-stage2-intl:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20182,8 +20393,11 @@ all-stageb2g0-intl: configure-stageb2g0-
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-intl)
+ 
+ maybe-clean-stageb2g0-intl: clean-stageb2g0-intl
+@@ -20196,7 +20410,7 @@ clean-stageb2g0-intl:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20217,8 +20431,11 @@ all-stage3-intl: configure-stage3-intl
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-intl)
+ 
+ maybe-clean-stage3-intl: clean-stage3-intl
+@@ -20231,7 +20448,7 @@ clean-stage3-intl:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20252,8 +20469,11 @@ all-stageb3g2-intl: configure-stageb3g2-
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-intl)
+ 
+ maybe-clean-stageb3g2-intl: clean-stageb3g2-intl
+@@ -20266,7 +20486,7 @@ clean-stageb3g2-intl:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20287,8 +20507,11 @@ all-stage4-intl: configure-stage4-intl
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-intl)
+ 
+ maybe-clean-stage4-intl: clean-stage4-intl
+@@ -20301,7 +20524,7 @@ clean-stage4-intl:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20322,8 +20545,11 @@ all-stageprofile-intl: configure-stagepr
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-intl)
+ 
+ maybe-clean-stageprofile-intl: clean-stageprofile-intl
+@@ -20336,7 +20562,7 @@ clean-stageprofile-intl:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20357,8 +20583,11 @@ all-stagefeedback-intl: configure-stagef
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-intl)
+ 
+ maybe-clean-stagefeedback-intl: clean-stagefeedback-intl
+@@ -20371,7 +20600,7 @@ clean-stagefeedback-intl:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/intl && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif intl-bootstrap
+@@ -20785,7 +21014,8 @@ all-tcl: configure-tcl
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/tcl && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-tcl))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-tcl))
+ @endif tcl
+ 
+ 
+@@ -21194,7 +21424,8 @@ all-itcl: configure-itcl
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/itcl && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-itcl))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-itcl))
+ @endif itcl
+ 
+ 
+@@ -21611,9 +21842,9 @@ configure-stage1-ld:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21642,9 +21873,9 @@ configure-stage2-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21673,9 +21904,9 @@ configure-stageb2g0-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21704,9 +21935,9 @@ configure-stage3-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21735,9 +21966,9 @@ configure-stageb3g2-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21766,9 +21997,9 @@ configure-stage4-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21797,9 +22028,9 @@ configure-stageprofile-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21828,9 +22059,9 @@ configure-stagefeedback-ld:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/ld ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld ; \
+ 	cd $(HOST_SUBDIR)/ld || exit 1; \
+@@ -21865,7 +22096,8 @@ all-ld: configure-ld
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/ld && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-ld))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-ld))
+ @endif ld
+ 
+ 
+@@ -21884,8 +22116,11 @@ all-stage1-ld: configure-stage1-ld
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-ld)
+ 
+ maybe-clean-stage1-ld: clean-stage1-ld
+@@ -21898,7 +22133,7 @@ clean-stage1-ld:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif ld-bootstrap
+ 
+@@ -21918,8 +22153,11 @@ all-stage2-ld: configure-stage2-ld
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-ld)
+ 
+ maybe-clean-stage2-ld: clean-stage2-ld
+@@ -21932,7 +22170,7 @@ clean-stage2-ld:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -21953,8 +22191,11 @@ all-stageb2g0-ld: configure-stageb2g0-ld
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-ld)
+ 
+ maybe-clean-stageb2g0-ld: clean-stageb2g0-ld
+@@ -21967,7 +22208,7 @@ clean-stageb2g0-ld:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -21988,8 +22229,11 @@ all-stage3-ld: configure-stage3-ld
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-ld)
+ 
+ maybe-clean-stage3-ld: clean-stage3-ld
+@@ -22002,7 +22246,7 @@ clean-stage3-ld:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -22023,8 +22267,11 @@ all-stageb3g2-ld: configure-stageb3g2-ld
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-ld)
+ 
+ maybe-clean-stageb3g2-ld: clean-stageb3g2-ld
+@@ -22037,7 +22284,7 @@ clean-stageb3g2-ld:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -22058,8 +22305,11 @@ all-stage4-ld: configure-stage4-ld
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-ld)
+ 
+ maybe-clean-stage4-ld: clean-stage4-ld
+@@ -22072,7 +22322,7 @@ clean-stage4-ld:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -22093,8 +22343,11 @@ all-stageprofile-ld: configure-stageprof
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-ld)
+ 
+ maybe-clean-stageprofile-ld: clean-stageprofile-ld
+@@ -22107,7 +22360,7 @@ clean-stageprofile-ld:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -22128,8 +22381,11 @@ all-stagefeedback-ld: configure-stagefee
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-ld)
+ 
+ maybe-clean-stagefeedback-ld: clean-stagefeedback-ld
+@@ -22142,7 +22398,7 @@ clean-stagefeedback-ld:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/ld && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif ld-bootstrap
+@@ -22549,9 +22805,9 @@ configure-stage1-libcpp:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22580,9 +22836,9 @@ configure-stage2-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22611,9 +22867,9 @@ configure-stageb2g0-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22642,9 +22898,9 @@ configure-stage3-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22673,9 +22929,9 @@ configure-stageb3g2-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22704,9 +22960,9 @@ configure-stage4-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22735,9 +22991,9 @@ configure-stageprofile-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22766,9 +23022,9 @@ configure-stagefeedback-libcpp:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/libcpp ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp ; \
+ 	cd $(HOST_SUBDIR)/libcpp || exit 1; \
+@@ -22803,7 +23059,8 @@ all-libcpp: configure-libcpp
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libcpp && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-libcpp))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-libcpp))
+ @endif libcpp
+ 
+ 
+@@ -22822,8 +23079,11 @@ all-stage1-libcpp: configure-stage1-libc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-libcpp)
+ 
+ maybe-clean-stage1-libcpp: clean-stage1-libcpp
+@@ -22836,7 +23096,7 @@ clean-stage1-libcpp:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+ 
+@@ -22856,8 +23116,11 @@ all-stage2-libcpp: configure-stage2-libc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-libcpp)
+ 
+ maybe-clean-stage2-libcpp: clean-stage2-libcpp
+@@ -22870,7 +23133,7 @@ clean-stage2-libcpp:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -22891,8 +23154,11 @@ all-stageb2g0-libcpp: configure-stageb2g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-libcpp)
+ 
+ maybe-clean-stageb2g0-libcpp: clean-stageb2g0-libcpp
+@@ -22905,7 +23171,7 @@ clean-stageb2g0-libcpp:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -22926,8 +23192,11 @@ all-stage3-libcpp: configure-stage3-libc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-libcpp)
+ 
+ maybe-clean-stage3-libcpp: clean-stage3-libcpp
+@@ -22940,7 +23209,7 @@ clean-stage3-libcpp:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -22961,8 +23230,11 @@ all-stageb3g2-libcpp: configure-stageb3g
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-libcpp)
+ 
+ maybe-clean-stageb3g2-libcpp: clean-stageb3g2-libcpp
+@@ -22975,7 +23247,7 @@ clean-stageb3g2-libcpp:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -22996,8 +23268,11 @@ all-stage4-libcpp: configure-stage4-libc
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-libcpp)
+ 
+ maybe-clean-stage4-libcpp: clean-stage4-libcpp
+@@ -23010,7 +23285,7 @@ clean-stage4-libcpp:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -23031,8 +23306,11 @@ all-stageprofile-libcpp: configure-stage
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-libcpp)
+ 
+ maybe-clean-stageprofile-libcpp: clean-stageprofile-libcpp
+@@ -23045,7 +23323,7 @@ clean-stageprofile-libcpp:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -23066,8 +23344,11 @@ all-stagefeedback-libcpp: configure-stag
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-libcpp)
+ 
+ maybe-clean-stagefeedback-libcpp: clean-stagefeedback-libcpp
+@@ -23080,7 +23361,7 @@ clean-stagefeedback-libcpp:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libcpp && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libcpp-bootstrap
+@@ -23487,9 +23768,9 @@ configure-stage1-libdecnumber:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23518,9 +23799,9 @@ configure-stage2-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23549,9 +23830,9 @@ configure-stageb2g0-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23580,9 +23861,9 @@ configure-stage3-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23611,9 +23892,9 @@ configure-stageb3g2-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23642,9 +23923,9 @@ configure-stage4-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23673,9 +23954,9 @@ configure-stageprofile-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23704,9 +23985,9 @@ configure-stagefeedback-libdecnumber:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/libdecnumber ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber ; \
+ 	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
+@@ -23741,7 +24022,8 @@ all-libdecnumber: configure-libdecnumber
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libdecnumber && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-libdecnumber))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-libdecnumber))
+ @endif libdecnumber
+ 
+ 
+@@ -23760,8 +24042,11 @@ all-stage1-libdecnumber: configure-stage
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-libdecnumber)
+ 
+ maybe-clean-stage1-libdecnumber: clean-stage1-libdecnumber
+@@ -23774,7 +24059,7 @@ clean-stage1-libdecnumber:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+ 
+@@ -23794,8 +24079,11 @@ all-stage2-libdecnumber: configure-stage
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-libdecnumber)
+ 
+ maybe-clean-stage2-libdecnumber: clean-stage2-libdecnumber
+@@ -23808,7 +24096,7 @@ clean-stage2-libdecnumber:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -23829,8 +24117,11 @@ all-stageb2g0-libdecnumber: configure-st
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-libdecnumber)
+ 
+ maybe-clean-stageb2g0-libdecnumber: clean-stageb2g0-libdecnumber
+@@ -23843,7 +24134,7 @@ clean-stageb2g0-libdecnumber:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -23864,8 +24155,11 @@ all-stage3-libdecnumber: configure-stage
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-libdecnumber)
+ 
+ maybe-clean-stage3-libdecnumber: clean-stage3-libdecnumber
+@@ -23878,7 +24172,7 @@ clean-stage3-libdecnumber:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -23899,8 +24193,11 @@ all-stageb3g2-libdecnumber: configure-st
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-libdecnumber)
+ 
+ maybe-clean-stageb3g2-libdecnumber: clean-stageb3g2-libdecnumber
+@@ -23913,7 +24210,7 @@ clean-stageb3g2-libdecnumber:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -23934,8 +24231,11 @@ all-stage4-libdecnumber: configure-stage
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-libdecnumber)
+ 
+ maybe-clean-stage4-libdecnumber: clean-stage4-libdecnumber
+@@ -23948,7 +24248,7 @@ clean-stage4-libdecnumber:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -23969,8 +24269,11 @@ all-stageprofile-libdecnumber: configure
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-libdecnumber)
+ 
+ maybe-clean-stageprofile-libdecnumber: clean-stageprofile-libdecnumber
+@@ -23983,7 +24286,7 @@ clean-stageprofile-libdecnumber:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -24004,8 +24307,11 @@ all-stagefeedback-libdecnumber: configur
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-libdecnumber)
+ 
+ maybe-clean-stagefeedback-libdecnumber: clean-stagefeedback-libdecnumber
+@@ -24018,7 +24324,7 @@ clean-stagefeedback-libdecnumber:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libdecnumber && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libdecnumber-bootstrap
+@@ -24432,7 +24738,8 @@ all-libgui: configure-libgui
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libgui && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-libgui))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-libgui))
+ @endif libgui
+ 
+ 
+@@ -24849,9 +25156,9 @@ configure-stage1-libiberty:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24880,9 +25187,9 @@ configure-stage2-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24911,9 +25218,9 @@ configure-stageb2g0-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24942,9 +25249,9 @@ configure-stage3-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -24973,9 +25280,9 @@ configure-stageb3g2-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25004,9 +25311,9 @@ configure-stage4-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25035,9 +25342,9 @@ configure-stageprofile-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25066,9 +25373,9 @@ configure-stagefeedback-libiberty:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/libiberty ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty ; \
+ 	cd $(HOST_SUBDIR)/libiberty || exit 1; \
+@@ -25103,7 +25410,8 @@ all-libiberty: configure-libiberty
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libiberty && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-libiberty))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-libiberty))
+ @endif libiberty
+ 
+ 
+@@ -25122,8 +25430,11 @@ all-stage1-libiberty: configure-stage1-l
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-libiberty)
+ 
+ maybe-clean-stage1-libiberty: clean-stage1-libiberty
+@@ -25136,7 +25447,7 @@ clean-stage1-libiberty:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+ 
+@@ -25156,8 +25467,11 @@ all-stage2-libiberty: configure-stage2-l
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-libiberty)
+ 
+ maybe-clean-stage2-libiberty: clean-stage2-libiberty
+@@ -25170,7 +25484,7 @@ clean-stage2-libiberty:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25191,8 +25505,11 @@ all-stageb2g0-libiberty: configure-stage
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-libiberty)
+ 
+ maybe-clean-stageb2g0-libiberty: clean-stageb2g0-libiberty
+@@ -25205,7 +25522,7 @@ clean-stageb2g0-libiberty:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25226,8 +25543,11 @@ all-stage3-libiberty: configure-stage3-l
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-libiberty)
+ 
+ maybe-clean-stage3-libiberty: clean-stage3-libiberty
+@@ -25240,7 +25560,7 @@ clean-stage3-libiberty:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25261,8 +25581,11 @@ all-stageb3g2-libiberty: configure-stage
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-libiberty)
+ 
+ maybe-clean-stageb3g2-libiberty: clean-stageb3g2-libiberty
+@@ -25275,7 +25598,7 @@ clean-stageb3g2-libiberty:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25296,8 +25619,11 @@ all-stage4-libiberty: configure-stage4-l
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-libiberty)
+ 
+ maybe-clean-stage4-libiberty: clean-stage4-libiberty
+@@ -25310,7 +25636,7 @@ clean-stage4-libiberty:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25331,8 +25657,11 @@ all-stageprofile-libiberty: configure-st
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-libiberty)
+ 
+ maybe-clean-stageprofile-libiberty: clean-stageprofile-libiberty
+@@ -25345,7 +25674,7 @@ clean-stageprofile-libiberty:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25366,8 +25695,11 @@ all-stagefeedback-libiberty: configure-s
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-libiberty)
+ 
+ maybe-clean-stagefeedback-libiberty: clean-stagefeedback-libiberty
+@@ -25380,7 +25712,7 @@ clean-stagefeedback-libiberty:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/libiberty && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif libiberty-bootstrap
+@@ -25794,7 +26126,8 @@ all-libtool: configure-libtool
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libtool && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-libtool))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-libtool))
+ @endif libtool
+ 
+ 
+@@ -26218,7 +26551,8 @@ all-m4: configure-m4
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/m4 && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-m4))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-m4))
+ @endif m4
+ 
+ 
+@@ -26642,7 +26976,8 @@ all-make: configure-make
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/make && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-make))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-make))
+ @endif make
+ 
+ 
+@@ -27066,7 +27401,8 @@ all-mmalloc: configure-mmalloc
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/mmalloc && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-mmalloc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-mmalloc))
+ @endif mmalloc
+ 
+ 
+@@ -27484,7 +27820,8 @@ all-patch: configure-patch
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/patch && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-patch))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-patch))
+ @endif patch
+ 
+ 
+@@ -27908,7 +28245,8 @@ all-perl: configure-perl
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/perl && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-perl))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-perl))
+ @endif perl
+ 
+ 
+@@ -28332,7 +28670,8 @@ all-prms: configure-prms
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/prms && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-prms))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-prms))
+ @endif prms
+ 
+ 
+@@ -28756,7 +29095,8 @@ all-rcs: configure-rcs
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/rcs && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-rcs))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-rcs))
+ @endif rcs
+ 
+ 
+@@ -29180,7 +29520,8 @@ all-readline: configure-readline
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/readline && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-readline))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-readline))
+ @endif readline
+ 
+ 
+@@ -29604,7 +29945,8 @@ all-release: configure-release
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/release && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-release))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-release))
+ @endif release
+ 
+ 
+@@ -30016,7 +30358,8 @@ all-recode: configure-recode
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/recode && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-recode))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-recode))
+ @endif recode
+ 
+ 
+@@ -30440,7 +30783,8 @@ all-sed: configure-sed
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/sed && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-sed))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-sed))
+ @endif sed
+ 
+ 
+@@ -30864,7 +31208,8 @@ all-send-pr: configure-send-pr
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/send-pr && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-send-pr))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-send-pr))
+ @endif send-pr
+ 
+ 
+@@ -31288,7 +31633,8 @@ all-shellutils: configure-shellutils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/shellutils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-shellutils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-shellutils))
+ @endif shellutils
+ 
+ 
+@@ -31712,7 +32058,8 @@ all-sid: configure-sid
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/sid && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-sid))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-sid))
+ @endif sid
+ 
+ 
+@@ -32136,7 +32483,8 @@ all-sim: configure-sim
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/sim && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-sim))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-sim))
+ @endif sim
+ 
+ 
+@@ -32560,7 +32908,8 @@ all-tar: configure-tar
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/tar && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-tar))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-tar))
+ @endif tar
+ 
+ 
+@@ -32984,7 +33333,8 @@ all-texinfo: configure-texinfo
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/texinfo && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-texinfo))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-texinfo))
+ @endif texinfo
+ 
+ 
+@@ -33402,7 +33752,8 @@ all-textutils: configure-textutils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/textutils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-textutils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-textutils))
+ @endif textutils
+ 
+ 
+@@ -33826,7 +34177,8 @@ all-time: configure-time
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/time && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-time))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-time))
+ @endif time
+ 
+ 
+@@ -34250,7 +34602,8 @@ all-uudecode: configure-uudecode
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/uudecode && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-uudecode))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-uudecode))
+ @endif uudecode
+ 
+ 
+@@ -34674,7 +35027,8 @@ all-wdiff: configure-wdiff
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/wdiff && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-wdiff))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-wdiff))
+ @endif wdiff
+ 
+ 
+@@ -35098,7 +35452,8 @@ all-zip: configure-zip
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/zip && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-zip))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-zip))
+ @endif zip
+ 
+ 
+@@ -35518,9 +35873,9 @@ configure-stage1-zlib:
+ 	@r=`${PWD_COMMAND}`; export r; \
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+-	$(HOST_EXPORTS) \
++	$(HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE1_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35549,9 +35904,9 @@ configure-stage2-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35580,9 +35935,9 @@ configure-stageb2g0-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -g0"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35611,9 +35966,9 @@ configure-stage3-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35642,9 +35997,9 @@ configure-stageb3g2-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -g2"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35673,9 +36028,9 @@ configure-stage4-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35704,9 +36059,9 @@ configure-stageprofile-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35735,9 +36090,9 @@ configure-stagefeedback-zlib:
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
+ 	$(HOST_EXPORTS) \
+-	$(POSTSTAGE1_HOST_EXPORTS) \
++	$(POSTSTAGE1_HOST_EXPORTS)  \
+ 	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(HOST_SUBDIR)/zlib ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib ; \
+ 	cd $(HOST_SUBDIR)/zlib || exit 1; \
+@@ -35772,7 +36127,8 @@ all-zlib: configure-zlib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/zlib && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-zlib))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-zlib))
+ @endif zlib
+ 
+ 
+@@ -35791,8 +36147,11 @@ all-stage1-zlib: configure-stage1-zlib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_HOST_FLAGS)   \
+ 		$(TARGET-stage1-zlib)
+ 
+ maybe-clean-stage1-zlib: clean-stage1-zlib
+@@ -35805,7 +36164,7 @@ clean-stage1-zlib:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		 clean
+ @endif zlib-bootstrap
+ 
+@@ -35825,8 +36184,11 @@ all-stage2-zlib: configure-stage2-zlib
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage2-zlib)
+ 
+ maybe-clean-stage2-zlib: clean-stage2-zlib
+@@ -35839,7 +36201,7 @@ clean-stage2-zlib:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -35860,8 +36222,11 @@ all-stageb2g0-zlib: configure-stageb2g0-
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb2g0-zlib)
+ 
+ maybe-clean-stageb2g0-zlib: clean-stageb2g0-zlib
+@@ -35874,7 +36239,7 @@ clean-stageb2g0-zlib:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -35895,8 +36260,11 @@ all-stage3-zlib: configure-stage3-zlib
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage3-zlib)
+ 
+ maybe-clean-stage3-zlib: clean-stage3-zlib
+@@ -35909,7 +36277,7 @@ clean-stage3-zlib:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -35930,8 +36298,11 @@ all-stageb3g2-zlib: configure-stageb3g2-
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageb3g2-zlib)
+ 
+ maybe-clean-stageb3g2-zlib: clean-stageb3g2-zlib
+@@ -35944,7 +36315,7 @@ clean-stageb3g2-zlib:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -35965,8 +36336,11 @@ all-stage4-zlib: configure-stage4-zlib
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stage4-zlib)
+ 
+ maybe-clean-stage4-zlib: clean-stage4-zlib
+@@ -35979,7 +36353,7 @@ clean-stage4-zlib:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -36000,8 +36374,11 @@ all-stageprofile-zlib: configure-stagepr
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stageprofile-zlib)
+ 
+ maybe-clean-stageprofile-zlib: clean-stageprofile-zlib
+@@ -36014,7 +36391,7 @@ clean-stageprofile-zlib:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -36035,8 +36412,11 @@ all-stagefeedback-zlib: configure-stagef
+ 	$(HOST_EXPORTS) \
+ 	$(POSTSTAGE1_HOST_EXPORTS) \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use" $(POSTSTAGE1_FLAGS_TO_PASS)  \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		$(TARGET-stagefeedback-zlib)
+ 
+ maybe-clean-stagefeedback-zlib: clean-stagefeedback-zlib
+@@ -36049,7 +36429,7 @@ clean-stagefeedback-zlib:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(HOST_SUBDIR)/zlib && \
+-	$(MAKE) $(FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_HOST_FLAGS)  \
+ 		$(POSTSTAGE1_FLAGS_TO_PASS)  \
+ 		 clean
+ @endif zlib-bootstrap
+@@ -36451,7 +36831,8 @@ all-gdb: configure-gdb
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gdb && \
+-	  $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-gdb))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++		$(TARGET-gdb))
+ @endif gdb
+ 
+ 
+@@ -36875,7 +37256,8 @@ all-expect: configure-expect
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/expect && \
+-	  $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-expect))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++		$(TARGET-expect))
+ @endif expect
+ 
+ 
+@@ -37299,7 +37681,8 @@ all-guile: configure-guile
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/guile && \
+-	  $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-guile))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++		$(TARGET-guile))
+ @endif guile
+ 
+ 
+@@ -37723,7 +38106,8 @@ all-tk: configure-tk
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/tk && \
+-	  $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) $(TARGET-tk))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS) \
++		$(TARGET-tk))
+ @endif tk
+ 
+ 
+@@ -38147,7 +38531,8 @@ all-libtermcap: configure-libtermcap
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/libtermcap && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-libtermcap))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-libtermcap))
+ @endif libtermcap
+ 
+ 
+@@ -38505,7 +38890,8 @@ all-utils: configure-utils
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/utils && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-utils))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-utils))
+ @endif utils
+ 
+ 
+@@ -38923,7 +39309,8 @@ all-gnattools: configure-gnattools
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(HOST_EXPORTS) \
+ 	(cd $(HOST_SUBDIR)/gnattools && \
+-	  $(MAKE) $(FLAGS_TO_PASS)  $(TARGET-gnattools))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)  \
++		$(TARGET-gnattools))
+ @endif gnattools
+ 
+ 
+@@ -39368,7 +39755,8 @@ all-target-libstdc++-v3: configure-targe
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(RAW_CXX_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  $(TARGET-target-libstdc++-v3))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
++		$(TARGET-target-libstdc++-v3))
+ @endif target-libstdc++-v3
+ 
+ 
+@@ -39809,7 +40197,8 @@ all-target-libmudflap: configure-target-
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libmudflap && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libmudflap))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libmudflap))
+ @endif target-libmudflap
+ 
+ 
+@@ -40250,7 +40639,8 @@ all-target-libssp: configure-target-libs
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libssp && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libssp))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libssp))
+ @endif target-libssp
+ 
+ 
+@@ -40691,7 +41081,8 @@ all-target-newlib: configure-target-newl
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/newlib && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-newlib))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-newlib))
+ @endif target-newlib
+ 
+ 
+@@ -41137,9 +41528,9 @@ configure-stage1-target-libgcc:
+ 	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+-	$(NORMAL_TARGET_EXPORTS) \
+-	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE1_CFLAGS)"; export LIBCFLAGS; \
++	$(NORMAL_TARGET_EXPORTS)  \
++	CFLAGS="$(STAGE1_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE1_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage 1 in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41180,9 +41571,9 @@ configure-stage2-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE2_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE2_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage 2 in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41223,9 +41614,9 @@ configure-stageb2g0-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE2_CFLAGS) -g0"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -g0"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE2_LIBCFLAGS) -g0 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE2_LIBCFLAGS) -g0 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage b2g0 in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41266,9 +41657,9 @@ configure-stage3-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE3_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE3_LIBCFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage 3 in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41309,9 +41700,9 @@ configure-stageb3g2-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE3_CFLAGS) -g2"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -g2"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE3_LIBCFLAGS) -g2 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE3_LIBCFLAGS) -g2 $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage b3g2 in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41352,9 +41743,9 @@ configure-stage4-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE4_CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE4_CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage 4 in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41395,9 +41786,9 @@ configure-stageprofile-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage profile in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41438,9 +41829,9 @@ configure-stagefeedback-target-libgcc:
+ 	fi; \
+ 	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+-	 \
+-	CFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export CFLAGS; \
+-	LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"; export LIBCFLAGS; \
++	  \
++	CFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
++	CXXFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CXXFLAGS;  \
+ 	echo Configuring stage feedback in $(TARGET_SUBDIR)/libgcc ; \
+ 	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc ; \
+ 	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
+@@ -41475,7 +41866,8 @@ all-target-libgcc: configure-target-libg
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgcc && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libgcc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libgcc))
+ @endif target-libgcc
+ 
+ 
+@@ -41494,8 +41886,11 @@ all-stage1-target-libgcc: configure-stag
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE1_CFLAGS)" LIBCFLAGS="$(STAGE1_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE1_CFLAGS)" CXXFLAGS="$(STAGE1_CFLAGS)" \
++		LIBCFLAGS="$(STAGE1_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE1_LIBCFLAGS)" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stage1-target-libgcc)
+ 
+ maybe-clean-stage1-target-libgcc: clean-stage1-target-libgcc
+@@ -41508,7 +41903,7 @@ clean-stage1-target-libgcc:
+ 	  $(MAKE) stage1-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+ 
+@@ -41528,8 +41923,11 @@ all-stage2-target-libgcc: configure-stag
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS)" LIBCFLAGS="$(STAGE2_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS)" CXXFLAGS="$(STAGE2_CFLAGS)" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS)" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stage2-target-libgcc)
+ 
+ maybe-clean-stage2-target-libgcc: clean-stage2-target-libgcc
+@@ -41542,7 +41940,7 @@ clean-stage2-target-libgcc:
+ 	  $(MAKE) stage2-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -41563,8 +41961,11 @@ all-stageb2g0-target-libgcc: configure-s
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -g0" LIBCFLAGS="$(STAGE2_CFLAGS) -g0"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -g0" CXXFLAGS="$(STAGE2_CFLAGS) -g0" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -g0" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -g0" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stageb2g0-target-libgcc)
+ 
+ maybe-clean-stageb2g0-target-libgcc: clean-stageb2g0-target-libgcc
+@@ -41577,7 +41978,7 @@ clean-stageb2g0-target-libgcc:
+ 	  $(MAKE) stageb2g0-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -41598,8 +41999,11 @@ all-stage3-target-libgcc: configure-stag
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS)" LIBCFLAGS="$(STAGE3_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS)" CXXFLAGS="$(STAGE3_CFLAGS)" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS)" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stage3-target-libgcc)
+ 
+ maybe-clean-stage3-target-libgcc: clean-stage3-target-libgcc
+@@ -41612,7 +42016,7 @@ clean-stage3-target-libgcc:
+ 	  $(MAKE) stage3-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -41633,8 +42037,11 @@ all-stageb3g2-target-libgcc: configure-s
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -g2" LIBCFLAGS="$(STAGE3_CFLAGS) -g2"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -g2" CXXFLAGS="$(STAGE3_CFLAGS) -g2" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -g2" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -g2" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stageb3g2-target-libgcc)
+ 
+ maybe-clean-stageb3g2-target-libgcc: clean-stageb3g2-target-libgcc
+@@ -41647,7 +42054,7 @@ clean-stageb3g2-target-libgcc:
+ 	  $(MAKE) stageb3g2-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -41668,8 +42075,11 @@ all-stage4-target-libgcc: configure-stag
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE4_CFLAGS)" LIBCFLAGS="$(STAGE4_CFLAGS)"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE4_CFLAGS)" CXXFLAGS="$(STAGE4_CFLAGS)" \
++		LIBCFLAGS="$(STAGE4_CFLAGS)" \
++		CFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" \
++		CXXFLAGS_FOR_TARGET="$(STAGE4_CFLAGS)" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stage4-target-libgcc)
+ 
+ maybe-clean-stage4-target-libgcc: clean-stage4-target-libgcc
+@@ -41682,7 +42092,7 @@ clean-stage4-target-libgcc:
+ 	  $(MAKE) stage4-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -41703,8 +42113,11 @@ all-stageprofile-target-libgcc: configur
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" LIBCFLAGS="$(STAGE2_CFLAGS) -fprofile-generate"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" CXXFLAGS="$(STAGE2_CFLAGS) -fprofile-generate" \
++		LIBCFLAGS="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" \
++		CXXFLAGS_FOR_TARGET="$(STAGE2_LIBCFLAGS) -fprofile-generate" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stageprofile-target-libgcc)
+ 
+ maybe-clean-stageprofile-target-libgcc: clean-stageprofile-target-libgcc
+@@ -41717,7 +42130,7 @@ clean-stageprofile-target-libgcc:
+ 	  $(MAKE) stageprofile-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -41738,8 +42151,11 @@ all-stagefeedback-target-libgcc: configu
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	 \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS) \
+-		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" LIBCFLAGS="$(STAGE3_CFLAGS) -fprofile-use"   \
++	$(MAKE) $(BASE_FLAGS_TO_PASS) \
++		CFLAGS="$(STAGE3_CFLAGS) -fprofile-use" CXXFLAGS="$(STAGE3_CFLAGS) -fprofile-use" \
++		LIBCFLAGS="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" \
++		CXXFLAGS_FOR_TARGET="$(STAGE3_LIBCFLAGS) -fprofile-use" $(EXTRA_TARGET_FLAGS)   \
+ 		$(TARGET-stagefeedback-target-libgcc)
+ 
+ maybe-clean-stagefeedback-target-libgcc: clean-stagefeedback-target-libgcc
+@@ -41752,7 +42168,7 @@ clean-stagefeedback-target-libgcc:
+ 	  $(MAKE) stagefeedback-start; \
+ 	fi; \
+ 	cd $(TARGET_SUBDIR)/libgcc && \
+-	$(MAKE) $(TARGET_FLAGS_TO_PASS)  \
++	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
+ 		  \
+ 		 clean
+ @endif target-libgcc-bootstrap
+@@ -42191,7 +42607,8 @@ all-target-libgfortran: configure-target
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgfortran && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libgfortran))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libgfortran))
+ @endif target-libgfortran
+ 
+ 
+@@ -42632,7 +43049,8 @@ all-target-libobjc: configure-target-lib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libobjc && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libobjc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libobjc))
+ @endif target-libobjc
+ 
+ 
+@@ -43073,7 +43491,8 @@ all-target-libtermcap: configure-target-
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libtermcap && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libtermcap))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libtermcap))
+ @endif target-libtermcap
+ 
+ 
+@@ -43449,7 +43868,8 @@ all-target-winsup: configure-target-wins
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/winsup && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-winsup))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-winsup))
+ @endif target-winsup
+ 
+ 
+@@ -43890,7 +44310,8 @@ all-target-libgloss: configure-target-li
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgloss && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libgloss))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libgloss))
+ @endif target-libgloss
+ 
+ 
+@@ -44326,7 +44747,8 @@ all-target-libiberty: configure-target-l
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libiberty && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libiberty))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libiberty))
+ @endif target-libiberty
+ 
+ 
+@@ -44767,7 +45189,8 @@ all-target-gperf: configure-target-gperf
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/gperf && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-gperf))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-gperf))
+ @endif target-gperf
+ 
+ 
+@@ -45208,7 +45631,8 @@ all-target-examples: configure-target-ex
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/examples && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-examples))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-examples))
+ @endif target-examples
+ 
+ 
+@@ -45639,7 +46063,8 @@ all-target-libffi: configure-target-libf
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libffi && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libffi))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libffi))
+ @endif target-libffi
+ 
+ 
+@@ -46080,7 +46505,8 @@ all-target-libjava: configure-target-lib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(RAW_CXX_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libjava && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  $(TARGET-target-libjava))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
++		$(TARGET-target-libjava))
+ @endif target-libjava
+ 
+ 
+@@ -46521,7 +46947,8 @@ all-target-zlib: configure-target-zlib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/zlib && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-zlib))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-zlib))
+ @endif target-zlib
+ 
+ 
+@@ -46962,7 +47389,8 @@ all-target-boehm-gc: configure-target-bo
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/boehm-gc && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-boehm-gc))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-boehm-gc))
+ @endif target-boehm-gc
+ 
+ 
+@@ -47403,7 +47831,8 @@ all-target-qthreads: configure-target-qt
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/qthreads && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-qthreads))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-qthreads))
+ @endif target-qthreads
+ 
+ 
+@@ -47844,7 +48273,8 @@ all-target-rda: configure-target-rda
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/rda && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-rda))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-rda))
+ @endif target-rda
+ 
+ 
+@@ -48285,7 +48715,8 @@ all-target-libada: configure-target-liba
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libada && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libada))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libada))
+ @endif target-libada
+ 
+ 
+@@ -48726,7 +49157,8 @@ all-target-libgomp: configure-target-lib
+ 	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ 	$(NORMAL_TARGET_EXPORTS) \
+ 	(cd $(TARGET_SUBDIR)/libgomp && \
+-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  $(TARGET-target-libgomp))
++	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)  \
++		$(TARGET-target-libgomp))
+ @endif target-libgomp
+ 
+ 
+Index: gcc-4.3.1/configure
+===================================================================
+--- gcc-4.3.1.orig/configure	2008-02-01 19:29:30.000000000 -0800
++++ gcc-4.3.1/configure	2008-07-21 11:22:34.000000000 -0700
+@@ -272,7 +272,7 @@ PACKAGE_STRING=
+ PACKAGE_BUGREPORT=
+ 
+ ac_unique_file="move-if-change"
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
+ ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag'
+ 
+ # Initialize some variables set by options.
+@@ -5147,6 +5147,38 @@ else
+ 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
+@@ -12825,6 +12857,8 @@ s,@gmpinc@,$gmpinc,;t t
+ s,@stage1_languages@,$stage1_languages,;t t
+ s,@SYSROOT_CFLAGS_FOR_TARGET@,$SYSROOT_CFLAGS_FOR_TARGET,;t t
+ s,@DEBUG_PREFIX_CFLAGS_FOR_TARGET@,$DEBUG_PREFIX_CFLAGS_FOR_TARGET,;t t
++s,@CFLAGS_FOR_TARGET@,$CFLAGS_FOR_TARGET,;t t
++s,@CXXFLAGS_FOR_TARGET@,$CXXFLAGS_FOR_TARGET,;t t
+ s,@RPATH_ENVVAR@,$RPATH_ENVVAR,;t t
+ s,@tooldir@,$tooldir,;t t
+ s,@build_tooldir@,$build_tooldir,;t t
============================================================
--- packages/gcc/gcc-cross-intermediate.inc	3fd758b824b19229a3f6e7df95246f0d382bc7ea
+++ packages/gcc/gcc-cross-intermediate.inc	3fd758b824b19229a3f6e7df95246f0d382bc7ea
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+		--enable-shared \
+		--disable-multilib \
+		--disable-threads \
+		--enable-languages=c \
+		--enable-target-optspace \
+		--program-prefix=${TARGET_PREFIX} \
+		--with-sysroot=${STAGING_DIR_TARGET} \
+		--with-build-sysroot=${STAGING_DIR_TARGET} \
+		${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+	:
+}
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
+++ packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
@@ -0,0 +1,4 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-multilib"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.1.bb	3fc0ba21af09070a730a4b3e0b726ee8918c8f65
+++ packages/gcc/gcc-cross-intermediate_4.1.1.bb	3fc0ba21af09070a730a4b3e0b726ee8918c8f65
@@ -0,0 +1,6 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libunwind-exceptions \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
+++ packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
@@ -0,0 +1,14 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+		  --disable-libgomp \
+		  --disable-libssp"
+
+# Hack till we fix *libc properly
+do_stage_append() {
+        ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
@@ -0,0 +1,2 @@
+require gcc-cross_csl-arm-2005q3.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
@@ -0,0 +1,7 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-2006q1"
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch	cd6208674ca556cef23fcfe071a929d4c768e68f
+++ packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch	cd6208674ca556cef23fcfe071a929d4c768e68f
@@ -0,0 +1,30 @@
+Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
+
+I am checking this x86 assembler patch:
+
+http://sourceware.org/ml/binutils/2008-01/msg00148.html
+
+to check operand size. fnstsw stores 16bit into %ax. The upper
+16bit of %eax is unchanged.  The new assembler will disallow
+"fnstsw %eax".  Here is a patch for glibc.
+
+
+H.J.
+
+---
+ sysdeps/i386/fpu/ftestexcept.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
+===================================================================
+--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c	2008-07-19 11:00:45.000000000 -0700
++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c	2008-07-19 11:01:25.000000000 -0700
+@@ -26,7 +26,7 @@
+ int
+ fetestexcept (int excepts)
+ {
+-  int temp;
++  short temp;
+   int xtemp = 0;
+ 
+   /* Get current exceptions.  */
============================================================
--- packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch	1233a371e51da2cb27c42ec18bc33f11a9288f28
+++ packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch	1233a371e51da2cb27c42ec18bc33f11a9288f28
@@ -0,0 +1,37 @@
+--- glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c.org	2008-07-16 22:57:58.000000000 -0700
++++ glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c	2008-07-16 22:58:26.000000000 -0700
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1996, 2002, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1991, 1996, 2002, 2003, 2005 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -18,10 +18,13 @@
+ 
+ #include <signal.h>
+ #include <unistd.h>
+-#include <bits/libc-lock.h>
+ 
+-#ifndef SHARED
++#ifndef IS_IN_rtld
++# include <bits/libc-lock.h>
++
++# ifndef SHARED
+ weak_extern (__pthread_raise)
++# endif
+ #endif
+ 
+ /* Raise the signal SIG.  */
+@@ -29,8 +32,12 @@ int
+ raise (sig)
+      int sig;
+ {
++#ifdef IS_IN_rtld
++  return __kill (__getpid (), sig);
++#else
+   return __libc_maybe_call2 (pthread_raise, (sig),
+ 			     __kill (__getpid (), sig));
++#endif
+ }
+ libc_hidden_def (raise)
+ weak_alias (raise, gsignal)
============================================================
--- packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch	3cb1771cb1ffb55fd118435cae54bade8a5c7d4e
+++ packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch	3cb1771cb1ffb55fd118435cae54bade8a5c7d4e
@@ -0,0 +1,45 @@
+This one was taken from debian.
+
+# DP: Description: Fix __bind redefinition problem
+# DP: Related bugs: 
+# DP: Dpatch author: Phil Blundell
+# DP: Patch author: Daniel Jacobowitz
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-12-25
+
+Index: sysdeps/unix/sysv/linux/arm/socket.S
+===================================================================
+RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/socket.S,v
+retrieving revision 1.12
+retrieving revision 1.13
+diff -u -r1.12 -r1.13
+--- glibc-2.3.6.ds1.orig/sysdeps/unix/sysv/linux/arm/socket.S	4 Dec 2004 21:20:16 -0000	1.12
++++ glibc-2.3.6.ds1/sysdeps/unix/sysv/linux/arm/socket.S	27 Oct 2005 18:50:12 -0000	1.13
+@@ -1,4 +1,6 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2004, 2005
++   Free Software Foundation, Inc.
++
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -32,7 +34,11 @@
+    The .S files for the other calls just #define socket and #include this.  */
+ 
+ #ifndef __socket
++#ifndef NO_WEAK_ALIAS
+ #define __socket P(__,socket)
++#else
++#define __socket socket
++#endif
+ #endif
+ 
+ #define PUSHARGS_1	str a1, [sp, $-4]!
+@@ -120,4 +126,6 @@
+ 
+ PSEUDO_END (__socket)
+ 
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
============================================================
--- packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch	59253459fc269a11bbb26d9f5e7a42b6871fd287
+++ packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch	59253459fc269a11bbb26d9f5e7a42b6871fd287
@@ -0,0 +1,79 @@
+Fix rpcsvc headers missing from glibc, also
+allows glibc to produce the rpc headers when cross compiling,
+And fix for glibc-bootstrap package doesn't currently build because the
+generated sunrpc headers are not available
+    
+
+---
+ sunrpc/Makefile |   28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+Index: glibc-2.3.6/sunrpc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/sunrpc/Makefile	2005-07-17 20:03:49.000000000 -0700
++++ glibc-2.3.6/sunrpc/Makefile	2008-07-17 15:28:04.000000000 -0700
+@@ -75,6 +75,8 @@ install-sbin := rpcinfo
+ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
+ 	      rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
+ 	      rpc_tblout.o rpc_sample.o
++host-rpcgen-objs = $(addprefix host-,$(rpcgen-objs))
++
+ # These headers are part of rpcgen.
+ distribute := proto.h rpc_util.h rpc_parse.h rpc_scan.h \
+ 	      $(rpcgen-objs:.o=.c) etc.rpc \
+@@ -98,8 +100,8 @@ otherlibs += $(nssobjdir)/libnss_files.a
+ 	     $(resolvobjdir)/libresolv.a
+ endif
+ 
+-ifeq (no,$(cross-compiling))
+-# We can only build this library if we can run the rpcgen we build.
++ifneq (,$(findstring subdir_install,$(MAKECMDGOALS)))
++## We can only build this library if we can run the rpcgen we build.
+ headers += $(rpcsvc:%.x=rpcsvc/%.h)
+ extra-libs := librpcsvc
+ extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass.
+@@ -144,8 +146,26 @@ cpp-srcs-left := $(rpcgen-objs:.o=.c)
+ lib := nonlib
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+ 
++# Rely on the target rpcgen objects for dependency information.
++$(objpfx)host-%.o: %.c $(objpfx)%.o
++	$(patsubst %/,cd % &&,$(objpfx)) \
++	$(BUILD_CC) $($(basename $(<F))-CFLAGS) \
++		-I$(shell cd .. && pwd) \
++		-Dattribute_hidden= \
++		-include $(shell cd ../include && pwd)/libintl.h \
++		-O2 $(ALL_BUILD_CFLAGS) $(shell pwd)/$(<F) -c -o $(@F)
++
++$(objpfx)host-rpcgen: $(addprefix $(objpfx),$(host-rpcgen-objs))
++	$(BUILD_CC) $(BUILD_CFLAGS) $+ -o $(objpfx)host-rpcgen
++
+ # Tell rpcgen where to find the C preprocessor.
++ifeq ($(cross-compiling),no)
+ rpcgen-cmd = CPP='$(CC) -E -x c-header' $(built-program-cmd) -Y ../scripts
++rpcgen-prog = $(objpfx)rpcgen
++else
++rpcgen-cmd = CPP='$(CC) -E -x c-header' $(objpfx)host-rpcgen -Y ../scripts
++rpcgen-prog = $(objpfx)host-rpcgen
++endif
+ 
+ # Install the rpc data base file.
+ $(inst_sysconfdir)/rpc: etc.rpc $(+force)
+@@ -156,7 +176,7 @@ $(inst_sysconfdir)/rpc: etc.rpc $(+force
+ # relinked.
+ $(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
+ 	@:
+-$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ 	$(make-target-directory)
+ 	-@rm -f ${@:stmp=T} $@
+ 	$(rpcgen-cmd) -h $< -o ${@:stmp=T}
+@@ -166,7 +186,7 @@ $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(obj
+ # Generate the rpcsvc XDR functions with rpcgen.
+ $(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp
+ 	@:
+-$(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)x%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ 	-@rm -f ${@:stmp=T} $@
+ 	$(rpcgen-cmd) -c $< -o ${@:stmp=T}
+ 	$(move-if-change) $(@:stmp=T) $(@:stmp=c)
============================================================
--- packages/glibc/glibc-2.3.6/glibc-memusage.patch	2a58393c519f5c0ba7293bdd4643302367f2845d
+++ packages/glibc/glibc-2.3.6/glibc-memusage.patch	2a58393c519f5c0ba7293bdd4643302367f2845d
@@ -0,0 +1,44 @@
+---
+ malloc/Makefile    |    4 +++-
+ malloc/memusage.sh |    6 ++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/malloc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/malloc/Makefile	2008-07-17 14:40:54.000000000 -0700
++++ glibc-2.3.6/malloc/Makefile	2008-07-17 14:42:07.000000000 -0700
+@@ -80,7 +80,7 @@ ifneq ($(cross-compiling),yes)
+ ifneq ($(LIBGD),no)
+ install-bin = memusagestat
+ install-bin-script += memusage
+-generated += memusagestat memusage
++generated += memusagestat
+ extra-objs += memusagestat.o
+ 
+ # The configure.in check for libgd and its headers did not use $SYSINCLUDES.
+@@ -90,6 +90,8 @@ extra-objs += memusagestat.o
+ $(objpfx)memusagestat.o: sysincludes = # nothing
+ endif
+ endif
++install-bin-script += memusage
++generated += memusage
+ 
+ # Another goal which can be used to override the configure decision.
+ .PHONY: do-memusagestat
+Index: glibc-2.3.6/malloc/memusage.sh
+===================================================================
+--- glibc-2.3.6.orig/malloc/memusage.sh	2008-07-17 14:42:17.000000000 -0700
++++ glibc-2.3.6/malloc/memusage.sh	2008-07-17 14:42:54.000000000 -0700
+@@ -205,6 +205,12 @@ if test $# -eq 0; then
+   do_usage
+ fi
+ 
++# Find memusagestat.
++if test -n "$png" -a ! -x $memusagestat; then
++  echo >&2 $"PNG generation is not supported."
++  png=""
++fi
++
+ # This will be in the environment.
+ add_env="LD_PRELOAD=$memusageso"
+ 
============================================================
--- packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch	f31f3425ae1f8afcb869cd8e0f3c414d01aa211f
+++ packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch	f31f3425ae1f8afcb869cd8e0f3c414d01aa211f
@@ -0,0 +1,25 @@
+---
+ elf/Makefile |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/elf/Makefile
+===================================================================
+--- glibc-2.3.6.orig/elf/Makefile	2008-07-17 01:10:39.000000000 -0700
++++ glibc-2.3.6/elf/Makefile	2008-07-17 01:17:18.000000000 -0700
+@@ -279,7 +279,7 @@ $(objpfx)rtld-libc.a: $(objpfx)librtld.m
+ 	$(MAKE) -f $< -f rtld-Rules
+ 
+ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
+-	$(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
++	$(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc -lgcc_eh '-Wl,-)' \
+ 		  -Wl,-Map,$@.map
+ 
+ generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
+@@ -295,6 +295,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld
+ 		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ 		  > $@.lds
+ 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
++		  -lgcc -lgcc_eh					\
+ 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
+ 		  $(filter-out $(map-file),$^) $(load-map-file)		\
+ 		  -Wl,-soname=$(rtld-installed-name) -T $@.lds
============================================================
--- packages/glibc/glibc-2.7/all_glibc-i586-chk.patch	5adb32eb0f211aa8fca2fcb25d68b7dbbce3d121
+++ packages/glibc/glibc-2.7/all_glibc-i586-chk.patch	5adb32eb0f211aa8fca2fcb25d68b7dbbce3d121
@@ -0,0 +1,33 @@
+http://bugs.gentoo.org/199479
+
+2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/i386/i586/memcpy_chk.S: New file.
+	* sysdeps/i386/i586/mempcpy_chk.S: Likewise.
+	* sysdeps/i386/i586/memset_chk.S: Likewise.
+
+Index: glibc/sysdeps/i386/i586/memcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memcpy_chk.S
+diff -N sysdeps/i386/i586/memcpy_chk.S
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memcpy_chk.S	13 Nov 2007 01:56:18 -0000	1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/mempcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/mempcpy_chk.S
+diff -N sysdeps/i386/i586/mempcpy_chk.S
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/mempcpy_chk.S	13 Nov 2007 01:56:18 -0000	1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/mempcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/memset_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memset_chk.S
+diff -N sysdeps/i386/i586/memset_chk.S
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memset_chk.S	13 Nov 2007 01:56:18 -0000	1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memset_chk.S>
+
============================================================
--- conf/distro/angstrom-2008.1.conf	f64ebcf55e85b504d3be169befac3c7981aa74d9
+++ conf/distro/angstrom-2008.1.conf	dd3ab976c49eec5fbb5e9e740aa8dfe99aa64fa6
@@ -71,7 +71,6 @@ PREFERRED_VERSION_glibc 		?= "2.6.1"
 
 #Prefer glibc 2.6 and uclibc 0.9.29, these have had the most testing.
 PREFERRED_VERSION_glibc 		?= "2.6.1"
-PREFERRED_VERSION_glibc-intermediate 	?= "2.6.1"
 PREFERRED_VERSION_glibc-initial 	?= "2.6.1"
 
 #Prefer a newer GTK+ and friends
@@ -103,12 +102,14 @@ ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 
 #Everybody else can just use this: 
-ANGSTROM_GCC_VERSION 			?= "4.2.4"
+ANGSTROM_GCC_VERSION 			?= "4.3.1"
+#PREFERRED_VERSION_binutils-cross 	?= "2.18"
 
-PREFERRED_VERSION_gcc               ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross         ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross-sdk     ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross-initial ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc                    ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross              ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-sdk          ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-initial      ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "${ANGSTROM_GCC_VERSION}"
 
 #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom
 require conf/distro/include/preferred-gpe-versions-2.8.inc
@@ -123,6 +124,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
============================================================
--- conf/distro/celinux-test.conf	89d7e451fc9af9bf40690f40acee9b8634d4239f
+++ conf/distro/celinux-test.conf	1405fee6f781db757cd0819b219abd9f47fc4b93
@@ -35,6 +35,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # toolchain
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
@@ -46,6 +47,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_gcc = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 
 PREFERRED_VERSION_glibc = "2.3.5+cvs20050627"
 
============================================================
--- conf/distro/chinook-compat.conf	6792236a4e268fbe64e7adc994afef1224f52c9a
+++ conf/distro/chinook-compat.conf	19281a425235c6217a5de40204e18655583cf001
@@ -42,14 +42,15 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 MACHINE_KERNEL_VERSION = "2.6"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_PROVIDER_virtual/libc = "glibc"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-header = "linux-libc-headers"
@@ -64,6 +65,7 @@ PREFERRED_VERSION_gcc-cross-initial = "4
 PREFERRED_VERSION_gcc = "3.4.4cs2005q3.2"
 PREFERRED_VERSION_gcc-cross = "3.4.4cs2005q3.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.1.1"
 
 #PREFERRED_VERSION_gcc-cross-initial = "3.4.4cs2005q3.2"
 
@@ -71,7 +73,6 @@ PREFERRED_VERSION_glibc = "2.5"
 PREFERRED_VERSION_linux-libc-headers = "2.6.20"
 
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 PREFERRED_VERSION_glibc-initial = "2.5"
 
 PREFERRED_VERSION_libtool = "1.5.6"
============================================================
--- conf/distro/gmustix.conf	88db2db3032412eac284ef6efa7a4668c79a29b2
+++ conf/distro/gmustix.conf	e5a0ed1602a23b5cbddbee1a07669efa041cd191
@@ -8,6 +8,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 IMAGE_FSTYPES = "jffs2"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
@@ -15,6 +16,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_PROVIDER_classpath = "classpath-minimal"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.4.4" 
 PREFERRED_VERSION_gcc = "3.4.4"
============================================================
--- conf/distro/include/angstrom-2007-for-openmoko.inc	4e926bdf5178cce4d068eeb210aba5adf7982351
+++ conf/distro/include/angstrom-2007-for-openmoko.inc	85b9d88526b7e40205f13f547c01c721f42fa32f
@@ -89,21 +89,25 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross         ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk     ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 PREFERRED_VERSION_gcc_dht-walnut               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_dht-walnut         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_dht-walnut     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_dht-walnut ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_dht-walnut ?= "4.1.1"
 
 PREFERRED_VERSION_gcc_xilinx-ml403               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_xilinx-ml403         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_xilinx-ml403     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_xilinx-ml403 ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_xilinx-ml403 ?= "4.1.1"
 
 PREFERRED_VERSION_gcc_mpc8323e-rdb               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_mpc8323e-rdb         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_mpc8323e-rdb     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_mpc8323e-rdb ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_mpc8323e-rdb ?= "4.1.1"
 
 PREFERRED_VERSION_binutils          ?= "2.18"
 PREFERRED_VERSION_binutils-cross    ?= "2.18"
@@ -115,6 +119,7 @@ PREFERRED_VERSION_gcc-cross-initial_avr3
 PREFERRED_VERSION_avr32-gcc-cross         = "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk_avr32     = "4.0.2"
 PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.0.2"
+PREFERRED_VERSION_gcc-cross-intermediate_avr32 = "4.0.2"
 
 PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
@@ -133,9 +138,6 @@ PREFERRED_VERSION_uclibc-initial_avr32 =
 PREFERRED_VERSION_uclibc_avr32 = "0.9.28"
 PREFERRED_VERSION_uclibc-initial_avr32 = "0.9.28"
 
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
-
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 
 # To use an EABI compatible version 3 series gcc, either uncomment 
@@ -143,6 +145,7 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 #
 # PREFERRED_VERSION_gcc-cross = "3.4.4+csl-arm-2005q3"
 # PREFERRED_VERSION_gcc-cross-initial = "3.4.4+csl-arm-2005q3"
+# PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4+csl-arm-2005q3"
 
 #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom
 require conf/distro/include/preferred-xorg-versions.inc
@@ -153,17 +156,17 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
 PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
============================================================
--- conf/distro/include/angstrom-eglibc.inc	e0e7b6758775be96c0a58faecff645b05ef7c3e2
+++ conf/distro/include/angstrom-eglibc.inc	e56df3f5a1f620f0dfa7795ff188661bf1524389
@@ -4,13 +4,13 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 PREFERRED_PROVIDER_virtual/libc = "eglibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
+PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
+PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
+PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
+PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
 
============================================================
--- conf/distro/include/angstrom-glibc.inc	64060b7ace4591e34cd8206bb5cd3ba77c6554d4
+++ conf/distro/include/angstrom-glibc.inc	9a81308293772bcff0ea1b412e0fa3a478a205fe
@@ -6,13 +6,13 @@ PREFERRED_PROVIDER_linux-libc-headers ?=
 PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
@@ -25,13 +25,11 @@ FULL_OPTIMIZATION_pn-perl = "-fexpensive
 FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -Os"
 
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
-FULL_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
 
 BUILD_OPTIMIZATION = "-Os"
 BUILD_OPTIMIZATION_pn-perl = "-O1"
-BUILD_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 BUILD_OPTIMIZATION_pn-glibc = "-O2"
 BUILD_OPTIMIZATION_sparc = "-O2"
 
============================================================
--- conf/distro/include/insane-srcrevs.inc	e685e3b620d54ebf0b096e4709ed95ca3329b08c
+++ conf/distro/include/insane-srcrevs.inc	cbc144484de6ac4d699d0a609a011f4f1f04d2bf
@@ -4,7 +4,6 @@ SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
 SRCREV_pn-eds-dbus ?= "${AUTOREV}"
 SRCREV_pn-eglibc ?= "${AUTOREV}"
 SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
-SRCREV_pn-eglibc-intermediate ?= "${AUTOREV}"
 SRCREV_pn-ezxd ?= "${AUTOREV}"
 SRCREV_pn-fbgrab-viewer-native ?= "${AUTOREV}"
 SRCREV_pn-fstests ?= "${AUTOREV}"
============================================================
--- conf/distro/include/sane-srcrevs.inc	3f7f64ecffb3a08b7d6d6b1dcbb873b77c474243
+++ conf/distro/include/sane-srcrevs.inc	fff789e4d1f239ac260c9e3632a3b3e21fac565c
@@ -28,7 +28,6 @@ SRCREV_pn-eglibc-initial ?= "6229"
 SRCREV_pn-eds-dbus ?= "659"
 SRCREV_pn-eglibc ?= "6229"
 SRCREV_pn-eglibc-initial ?= "6229"
-SRCREV_pn-eglibc-intermediate ?= "6229"
 SRCREV_pn-enlazar ?= "37"
 SRCREV_pn-exalt ?= "79"
 SRCREV_pn-exalt-daemon ?= "78"
============================================================
--- conf/distro/include/slugos.inc	9b41afe5f573c4ce71c88ddf2bcda240c4dae42c
+++ conf/distro/include/slugos.inc	15ec40d1c8105150bd6e9f5af9d3efa15ffa623d
@@ -96,13 +96,14 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc"
 
 # Set the preferred provider for a few toolchain-related items, otherwise
 # these may be selected from the external-toolchain instead.
@@ -118,8 +119,8 @@ PREFERRED_VERSION_gcc-cross-initial  ?= 
 PREFERRED_VERSION_gcc-cross          ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk      ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial  ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate  ?= "4.1.2"
 PREFERRED_VERSION_glibc              ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial      ?= "2.5"
 
 # Select the smallest provider of x11 libraries
============================================================
--- conf/distro/jlime-donkey.conf	fb7ea51917dde4bafa36f1b4a43be01e96610ad6
+++ conf/distro/jlime-donkey.conf	af6cabdd09a5bd6796c790944232bdcb47f2c83b
@@ -20,10 +20,11 @@ PREFERRED_PROVIDERS +=  "virtual/${TARGE
 #<> We will set CVS DATE when things are known to work.
 #<>-----------------------------------------------------------------<
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
 
 #<>----------------------------------------------------------------->
 #<> We want this so we can crosscompile the kernel using gcc 3.4.3
@@ -51,10 +52,10 @@ PREFERRED_VERSION_gcc-cross-initial = "4
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"                                             		    
 PREFERRED_VERSION_glibc = "2.6.1"
 PREFERRED_VERSION_glibc-initial = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 
 #<>------------------------------------------------------------------>
 #<>
============================================================
--- conf/distro/jlime-henchman.conf	40b971ca62e022ba5da642d0dd65e9472369efc9
+++ conf/distro/jlime-henchman.conf	576306734d9284a03e4a2c7d9af7aeab477b903c
@@ -50,12 +50,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_binutils = "2.18"
 PREFERRED_VERSION_binutils-cross = "2.18"
 
@@ -69,12 +71,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-mongo.conf	239a9bf19ee598d83ee84d5958a12b71bd7bef47
+++ conf/distro/jlime-mongo.conf	326f98ce35aedb012b0e23bd6d1c4d5364d22c5b
@@ -51,12 +51,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_binutils = "2.18"
 PREFERRED_VERSION_binutils-cross = "2.18"
 
@@ -70,12 +72,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.18"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-shrek.conf	4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491
+++ conf/distro/jlime-shrek.conf	4960e4997a76b212b2bda2ec3ddab16d81622075
@@ -12,6 +12,7 @@ PREFERRED_PROVIDERS  =  "virtual/${TARGE
 SRCDATE = "20050518"
 
 PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -24,6 +25,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_gcc = "3.4.3"
 PREFERRED_VERSION_gcc-cross = "3.4.3"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.3"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.3"
 PREFERRED_VERSION_linux-libc-headers = "2.6.7.0"                                             		    
 PREFERRED_VERSION_glib-2.0-native = "2.6.2"
 PREFERRED_VERSION_glib-2.0 = "2.6.2"
============================================================
--- conf/distro/mamona.conf	fd683d8ddd62359322234b247211b416f546a004
+++ conf/distro/mamona.conf	2259bb76e74ceface351ef6266ee9f3284c8e414
@@ -34,6 +34,7 @@ PREFERRED_PROVIDERS_virtual/${TARGET_PRE
 
 # gcc
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
@@ -41,6 +42,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 # binutils
 PREFERRED_VERSION_binutils ?= "2.18"
@@ -55,17 +57,15 @@ PREFERRED_VERSION_glibc ?= "2.5"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
 
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_uclibc ?= "0.9.29"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc"
 
 # Other Packages
 # ==============
@@ -82,4 +82,4 @@ PREFERRED_VERSION_gpsd ?= "2.33"
 
 PREFERRED_VERSION_apt = "0.7.6"
 PREFERRED_VERSION_gpsd ?= "2.33"
-PREFERRED_VERSION_hal_nokia770 = "0.5.7"
\ No newline at end of file
+PREFERRED_VERSION_hal_nokia770 = "0.5.7"
============================================================
--- conf/distro/minimal.conf	3659ec6bf90d9eac32c48e7ac2207b2a8c100d28
+++ conf/distro/minimal.conf	bb050fd7b97576649bce4f1605b0c122f9cbea02
@@ -37,6 +37,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Binutils & Compiler
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross"
@@ -45,6 +46,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 PREFERRED_VERSION_binutils ?= "2.18"
 PREFERRED_VERSION_binutils-cross ?= "2.18"
 
@@ -61,11 +63,10 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/nylon.conf	55b55fd58b093f18dc69ad389287e77c548403ae
+++ conf/distro/nylon.conf	93b37b27f5a8b665966cdcd8b90187ec5428f2bc
@@ -17,6 +17,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 INHERIT += "linux-kernel-base"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -35,6 +36,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_kismet = "2005-01-R1"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.3.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.3.4"
 PREFERRED_VERSION_gcc-cross = "3.3.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.3.4" 
 PREFERRED_VERSION_gcc = "3.3.4"
@@ -50,6 +52,7 @@ PREFERRED_VERSION_gcc-cross-initial_mtx-
 
 #PREFERRED_VERSION_glibc_mtx-3 = "2.3.5+cvs20050627"
 PREFERRED_VERSION_gcc-cross-initial_mtx-3 = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate_mtx-3 = "3.4.4"
 PREFERRED_VERSION_gcc-cross_mtx-3 = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk_mtx-3 = "3.4.4" 
 PREFERRED_VERSION_gcc_mtx-3 = "3.4.4"
@@ -71,6 +74,7 @@ PREFERRED_VERSION_gcc-cross-initial_mtx-
 
 #PREFERRED_VERSION_glibc_mtx-3a = "2.3.5+cvs20050627"
 PREFERRED_VERSION_gcc-cross-initial_mtx-3a = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate_mtx-3a = "3.4.4"
 PREFERRED_VERSION_gcc-cross_mtx-3a = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk_mtx-3a = "3.4.4" 
 PREFERRED_VERSION_gcc_mtx-3a = "3.4.4"
============================================================
--- conf/distro/openprotium.conf	fa9e89af0f2d1321bd93fb2c08dfc7fa720a7d51
+++ conf/distro/openprotium.conf	982f64d7db8d48f170cd1aa284d266ddbc1030ce
@@ -45,9 +45,9 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 PREFERRED_VERSION_glibc		     = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 PREFERRED_VERSION_glibc-initial      = "2.6.1"
 
 PREFERRED_VERSION_linux-libc-headers = "2.6.11.1"
@@ -59,11 +59,12 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial"
 
 PREFERRED_PROVIDER_virtual/libc     = "glibc"
============================================================
--- conf/distro/oplinux-uclibc.conf	ded77d3149a141de656d62e5c1ed7e161f1e500d
+++ conf/distro/oplinux-uclibc.conf	af3019dae5fb6717311d042ac2f3114f99cdd50e
@@ -43,12 +43,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
 PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
 
============================================================
--- conf/distro/oplinux.conf	0dbc9a811a5f426f5d3e4ead5a20330b56e51e41
+++ conf/distro/oplinux.conf	007c319d5693215e75c73b455c5c76a0f2465501
@@ -35,6 +35,7 @@ PREFERRED_PROVIDERS += "virtual/${TARGET
 TARGET_OS = "linux"
 
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross"
 
@@ -51,14 +52,14 @@ PREFERRED_PROVIDER_virtual/libc ?= "glib
 PREFERRED_PROVIDER_virtual/libc ?= "glibc"
 
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc"
 
 
 
@@ -84,6 +85,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 
 PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
 PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
@@ -96,7 +98,6 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
 
 PREFERRED_VERSION_glibc-initial ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc ?= "2.5"
 
 PCMCIA_MANAGER = "pcmciautils"
============================================================
--- conf/distro/sharprom-compatible.conf	866d17894061cd031cda619513332fa012433fa3
+++ conf/distro/sharprom-compatible.conf	89b78178c717a75e6dc950636c6903fbfb6fb989
@@ -41,6 +41,7 @@ PREFERRED_PROVIDER_virtual/arm-linux-gcc
 PREFERRED_PROVIDER_virtual/arm-linux-gcc = "sharprom-toolchain-native" 
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_PROVIDER_virtual/arm-linux-gcc-initial = "sharprom-toolchain-native"
+PREFERRED_PROVIDER_virtual/arm-linux-gcc-intermediate = "sharprom-toolchain-native"
 
 PREFERRED_VERSION_glibc = "2.2.5"
 
============================================================
--- conf/distro/ucslugc.conf	13de2c9a77700ae97b0f7a3dbb79971cb6451ca6
+++ conf/distro/ucslugc.conf	bb32cc5c8cbf8d2446f2bf2eef140a2ccd04ee1d
@@ -10,6 +10,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc = "3.4.4"
 
============================================================
--- conf/distro/unslung.conf	0ef6d906a67568b77e1f68fc1ac5c65f65586c67
+++ conf/distro/unslung.conf	a7d66feda58ef5de37cbaf33395cb0dd4e1e7586
@@ -42,6 +42,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 
 # Select between multiple alternative providers, if more than one is eligible.
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -54,6 +55,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_binutils ?= "2.15.94.0.1"
 PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "3.4.4"
 PREFERRED_VERSION_gcc-cross ?= "3.4.4"
 PREFERRED_VERSION_gcc ?= "3.4.4"
 PREFERRED_VERSION_glibc ?= "2.2.5"
============================================================
--- conf/distro/wrt54oe.conf	9d556281a94a6474ec9b7e6edffabcecd876b083
+++ conf/distro/wrt54oe.conf	511263e0f8d97edcbcab96283a7c703b27f7072b
@@ -14,11 +14,13 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.4.4" 
 PREFERRED_VERSION_gcc = "3.4.4"
============================================================
--- conf/local.conf.sample	fa7f5ad0f812c943367b2c88b4e4f7165797959d
+++ conf/local.conf.sample	5164ed855456a3c58975fcfbad1c9da8dd8d60f2
@@ -51,6 +51,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 PREFERRED_PROVIDERS = "virtual/qte:qte virtual/libqpe:libqpe-opie"
 PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-x11"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
============================================================
--- conf/machine/native.conf	9f73a28ea65b27265df3e4afa2107401f9463ead
+++ conf/machine/native.conf	e4b8c17ba26581950b67bf9e306d9f1664c0741f
@@ -7,7 +7,7 @@ PREFERRED_PROVIDER_virtual/kernel = "nat
 VENDOR = "-oe"
 
 PREFERRED_PROVIDER_virtual/kernel = "native-kernel"
-ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc virtual/g++ virtual/libc virtual/libintl virtual/libiconv"
+ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc-intermediate virtual/gcc virtual/g++"
 ASSUME_PROVIDED += "binutils-cross"
 ASSUME_PROVIDED += "virtual/libiconv virtual/libintl virtual/libc"
 
============================================================
--- packages/eglibc/eglibc-initial.inc	9cc9a816e903fd588bfe9b6529f690d24297a54b
+++ packages/eglibc/eglibc-initial.inc	4b2b73384f3c8f940e42387057da88a76435f44c
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,11 +9,13 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \
+        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+        find ${S} -name "configure" | xargs touch
 	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+		--prefix=/usr \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
-		--enable-hacker-mode
+		--enable-hacker-mode --enable-addons
 }
 
 do_compile () {
@@ -22,8 +24,14 @@ do_stage () {
 
 do_stage () {
 	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
-	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers \
+	install-bootstrap-headers=yes
+        oe_runmake csu/subdir_lib
 
+        mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+        install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+        ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+                       -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/eglibc/eglibc.inc	20ecb0b8894a6fa79214db154c8cd4e8458d7237
+++ packages/eglibc/eglibc.inc	eef22ba34145bef9522d66a4eb30da587ba3e6a2
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/gcc/gcc-3.4.4.inc	b6121dbf8fda33791722c94759192ce86145319f
+++ packages/gcc/gcc-3.4.4.inc	db48eb2b8c53c3d57d561258a42cace119a70438
@@ -17,6 +17,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/g
 	   file://always-fixincperm.patch;patch=1 \
 	   file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1 \
 	   file://zecke-xgcc-cpp.patch;patch=1 \
+	   file://gcc-libgcc2-inhibit-libc.patch;patch=1 \
 	   file://gcc4-mtune-compat.patch;patch=1"
 
 SRC_URI += "file://gcc34-configure.in.patch;patch=1"
============================================================
--- packages/gcc/gcc-4.3.1.inc	c95319fe788a145ce0a5aecd6d6c270424e47e03
+++ packages/gcc/gcc-4.3.1.inc	7ee3a1d24f6fe58cc59653a6e65c7e8bcc68a8a7
@@ -45,7 +45,6 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc
 	file://904-flatten-switch-stmt-00.patch;patch=1 \
 	file://arm-nolibfloat.patch;patch=1 \
 	file://arm-softfloat.patch;patch=1 \
-#	file://gcc41-configure.in.patch;patch=1 \
 #	file://arm-thumb.patch;patch=1 \
 #	file://arm-thumb-cache.patch;patch=1 \
 	file://ldflags.patch;patch=1 \
@@ -59,6 +58,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc
 #	file://intermask-bigendian.patch;patch=1 \
 	file://gcc-arm-frename-registers.patch;patch=1 \
 	file://gcc-release-branch/PR-36500-fix-neon.patch;patch=1 \
+	file://gcc-4.3.1-SYSROOT_CFLAGS_FOR_TARGET.patch;patch=1 \
+	file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch;patch=1 \
 "
 
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch;patch=1 "
============================================================
--- packages/gcc/gcc-configure-cross.inc	703d1979546f41f4a81d5aed72bf335e2bc5c69e
+++ packages/gcc/gcc-configure-cross.inc	4882906171abcb3738dfefb319ad714053c3adbe
@@ -7,10 +7,6 @@ EXTRA_OECONF_PATHS = "--with-local-prefi
                       --with-sysroot=${STAGING_DIR_TARGET} \
                       --with-build-sysroot=${STAGING_DIR_TARGET}"
 
-do_configure_prepend () {
-	rm -f ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
 do_compile_prepend () {
 	export CC="${BUILD_CC}"
 	export AR_FOR_TARGET="${TARGET_SYS}-ar"
============================================================
--- packages/gcc/gcc-cross-initial.inc	ad4596bca70fbc850a629b1582fafb6479bcb65d
+++ packages/gcc/gcc-cross-initial.inc	6dc1ca2688a86e10d96b345c271514ca7e6b0f1e
@@ -1,6 +1,4 @@ DEPENDS = "virtual/${TARGET_PREFIX}binut
 DEPENDS = "virtual/${TARGET_PREFIX}binutils"
-# @todo Please add comment on why this is (still?) needed?
-DEPENDS += "${@['virtual/${TARGET_PREFIX}libc-initial',''][bb.data.getVar('TARGET_ARCH', d, 1) in ['arm', 'armeb', 'mips', 'mipsel', 'powerpc']]}"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
 PACKAGES = ""
 
@@ -8,6 +6,7 @@ EXTRA_OECONF = "--with-local-prefix=${ST
 # sysroot is needed in case we use libc-initial
 EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
 		--with-newlib \
+		--without-headers \
 		--disable-shared \
 		--disable-threads \
 		--disable-multilib \
@@ -19,11 +18,6 @@ EXTRA_OECONF = "--with-local-prefix=${ST
 		--with-build-sysroot=${STAGING_DIR_TARGET} \
 		${@get_gcc_fpu_setting(bb, d)}"
 
-do_stage_prepend () {
-	mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}
-	ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
 do_install () {
 	:
 }
============================================================
--- packages/gcc/gcc-cross-initial_4.3.1.bb	4b22e8ec5d3911ce0553e074354f5ad218d7fce8
+++ packages/gcc/gcc-cross-initial_4.3.1.bb	1aadd72b822c32000450e9ae18faceef0112a99a
@@ -5,6 +5,7 @@ EXTRA_OECONF += " --disable-libmudflap \
 
 EXTRA_OECONF += " --disable-libmudflap \
 		  --disable-libgomp \
+		  --enable-decimal-float=no \
 		  --disable-libssp"
 
 # Hack till we fix *libc properly
============================================================
--- packages/glibc/glibc-initial.inc	0480105971d23c66b379db96774c07f2a0913989
+++ packages/glibc/glibc-initial.inc	7a1a79ecca0658f29a905c2140d27445a57bad55
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,7 +9,8 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+	find ${S} -name "configure" | xargs touch
+	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
 		--enable-hacker-mode
@@ -30,8 +31,11 @@ do_stage () {
 }
 
 do_stage () {
-	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
+	includedir='${layout_includedir}' prefix='${layout_prefix}' \
+	install-bootstrap-headers=yes install-headers
 
+	oe_runmake csu/subdir_lib
 	# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
 	# so do them by hand.  We can tolerate an empty stubs.h for the moment.
 	# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
@@ -42,6 +46,10 @@ do_stage () {
 	if [ -e ${B}/bits/stdio_lim.h ]; then
 		cp ${B}/bits/stdio_lim.h  ${STAGING_INCDIR}/bits/
 	fi
+	mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+	install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/glibc/glibc-initial_2.5.bb	c87dce64dc313f734e0764420892401b0c7301ee
+++ packages/glibc/glibc-initial_2.5.bb	717f9cbf298c7866010b883caec46b01814a1ca4
@@ -5,7 +5,7 @@ do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
 	unset CFLAGS
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_INCDIR} \
 		--enable-hacker-mode
============================================================
--- packages/glibc/glibc-stage.inc	8abe1d7d9fd4c34d725a7f26db2110bb66ec3e16
+++ packages/glibc/glibc-stage.inc	9add53332fea43aff1a7efdeba79858facecfc1a
@@ -3,7 +3,7 @@ do_stage() {
 	oe_runmake 'install_root=${STAGING_DIR_HOST}' \
 		   'includedir=${layout_includedir}' 'libdir=${layout_libdir}' 'slibdir=${layout_base_libdir}' \
 		   '${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6' \
-		   install-headers install-lib
+		   install
 
 	install -d ${STAGING_INCDIR}/gnu \
 		   ${STAGING_INCDIR}/bits \
@@ -15,9 +15,4 @@ do_stage() {
 		h=`echo $r|sed -e's,\.x$,.h,'`
 		install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/
 	done
-	for i in libc.a libc_pic.a libc_nonshared.a; do
-		install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_libdir}/ || die "failed to install $i"
-	done
-	echo 'GROUP ( ${layout_base_libdir}/libpthread.so.0 ${layout_libdir}/libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libpthread.so
-	echo 'GROUP ( ${layout_base_libdir}/libc.so.6 ${layout_libdir}/libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libc.so
 }
============================================================
--- packages/glibc/glibc.inc	94a32473f1193137d45da97d6ed786ae9e755094
+++ packages/glibc/glibc.inc	d7da3e08d193524257645bad4468dbb3dd7ed044
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/glibc/glibc_2.3.6.bb	a180c138b01077df8b234264ee6abd46cbf72314
+++ packages/glibc/glibc_2.3.6.bb	7ce57da5312cee1deb44c097867123d097f84146
@@ -19,13 +19,16 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gli
            ${CROSSTOOL_PATCH_URL}glibc-2.3.6-fix-pr631.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}glibc-fp-byteorder.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}glibc-mips-bootstrap-gcc-header-install.patch;patch=1 \
+           ${CROSSTOOL_PATCH_URL}arm-ctl_bus_isa.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}make-install-lib-all.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}maybe/glibc-2.3.6-allow-gcc-4.0-powerpc32.patch;patch=1 \
            file://glibc-2.3.6-bind-already-defined-on-powerpc.patch;patch=1 \
            file://glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
            file://glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
-           file://late-install-loop-break.patch \
-	   \
+           file://late-install-loop-break.patch;patch=1 \
+           file://glibc-arm-socket-weakalias.patch;patch=1 \
+           file://glibc-2.3.6-linuxthreads-pthread-raise.patch;patch=1 \
+           file://glibc-cross_sunrpc.patch;patch=1 \
            file://etc/ld.so.conf \
 	   file://generate-supported.mk"
 
@@ -60,7 +63,7 @@ do_configure () {
 		exit 1
 	fi
 	(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
-	CPPFLAGS="" oe_runconf
+	CPPFLAGS="" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes oe_runconf
 }
 
 rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
============================================================
--- packages/glibc/glibc_2.5.bb	3c1686afff4b72f25b0ee4879fa7df5bed91c6b3
+++ packages/glibc/glibc_2.5.bb	330520507426ad66fcbf5a266a8aa5845504a744
@@ -48,6 +48,7 @@ SRC_URI = "\
   file://glibc-check_pf.patch;patch=1;pnum=0 \
   file://zecke-sane-readelf.patch;patch=1 \
   file://ldd-unbash.patch;patch=1 \
+  file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
   file://generic-bits_select.h \
   file://generic-bits_types.h \
   file://generic-bits_typesizes.h \
============================================================
--- packages/glibc/glibc_2.6.1.bb	8b5e0d298c84d71b8a15be26527883a393e5483d
+++ packages/glibc/glibc_2.6.1.bb	17745de42ba1ebc4c1d4242154c294e27aa5a73c
@@ -56,6 +56,7 @@ SRC_URI = "\
   file://etc/ld.so.conf \
   file://generate-supported.mk \
   file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
+  file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
 "
 
 # Build fails on sh3 and sh4 without additional patches
============================================================
--- packages/glibc/glibc_2.7.bb	02c169c2754286db4f842bbe42a680e438defb73
+++ packages/glibc/glibc_2.7.bb	73c2cf870a5fd5c6da7625ada47fefdf0948c1be
@@ -12,7 +12,7 @@ TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGE
 TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
 
 
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
 GLIBC_ADDONS ?= "ports,nptl,libidn"
 
@@ -58,6 +58,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gli
 #	   file://zecke-sane-readelf.patch;patch=1 \
            file://ldd-unbash.patch;patch=1 \
 	   file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
+	   file://all_glibc-i586-chk.patch;patch=1 \
+	   file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
 	   file://generic-bits_select.h \
 	   file://generic-bits_types.h \
 	   file://generic-bits_typesizes.h \
============================================================
--- packages/meta/external-toolchain.bb	ebcd8679c393d51824573b5a70c7a071f8521117
+++ packages/meta/external-toolchain.bb	fe769763ba169fd561e2c5f1153726281afa9952
@@ -6,6 +6,7 @@ PROVIDES = "\
     linux-libc-headers \
     virtual/${TARGET_PREFIX}gcc \
     virtual/${TARGET_PREFIX}gcc-initial \
+    virtual/${TARGET_PREFIX}gcc-intermediate \
     virtual/${TARGET_PREFIX}binutils \
     virtual/${TARGET_PREFIX}libc-for-gcc \
     virtual/libc \
============================================================
--- packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	63c582236d5e631780a864456ba4db4862602a0e
+++ packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	8e92e1882cb3bc63515abe5cc42b6577706e118d
@@ -12,6 +12,7 @@ PROVIDES_sharprom-compatible = "\
   virtual/libiconv \
   virtual/arm-linux-gcc \
   virtual/arm-linux-libc-for-gcc \
+  virtual/arm-linux-gcc-intermediate \
   virtual/arm-linux-gcc-initial "
 PR = "r2"
 
============================================================
--- packages/uclibc/uclibc-initial_0.9.26.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.26.bb	a184826f227450c3799472708b38d95c759f1457
@@ -3,20 +3,26 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.27.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.27.bb	bf5a03c0a95f607474c7585a1cdaec562bbb1747
@@ -3,20 +3,27 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.28.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.28.bb	bf5a03c0a95f607474c7585a1cdaec562bbb1747
@@ -3,20 +3,27 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.29.bb	d9cf01fb4dec69ff1f796d39c9078030982eacca
+++ packages/uclibc/uclibc-initial_0.9.29.bb	af0ccde83d59f1948f1f2b5f7d4952d4855c58bc
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,13 +11,20 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	install -d ${CROSS_DIR}/${TARGET_SYS}	
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_svn.bb	2715cc791b3fdd1b8e62328291e3ef33973bacc0
+++ packages/uclibc/uclibc-initial_svn.bb	766c264be7d787f2285f02b13a392f43cb2a87d2
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,18 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc.inc	48b0ba2e4cff05071b3b812ef0be0861870cd00c
+++ packages/uclibc/uclibc.inc	4f97a9d058115dbb12ae1c5d047fb84965500a51
@@ -22,7 +22,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binut
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
-	   virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+	   virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native"
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 
 # Blackfin needs a wrapper around ld

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
       [not found]     ` <20080720014112.GA13759@oberlord>
@ 2008-07-23  9:04       ` Khem Raj
  2008-07-24  9:10         ` Richard Purdie
  0 siblings, 1 reply; 20+ messages in thread
From: Khem Raj @ 2008-07-23  9:04 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1003 bytes --]

On (22/07/08 08:42), Khem Raj wrote:
> On Wed, Jul 16, 2008 at 10:43:26PM +0200, Leon Woestenberg wrote:
> > Khem,
> > 
> > On Wed, Jul 16, 2008 at 10:10 AM, Khem Raj <raj.khem@gmail.com> wrote:
> > >> I have not tested it on older compiler/library combinations but I think
> > >> it will work there too as I have build various combinations in the past
> > >> with same sequence outside OE.
> > >>
> > >> Comments and feedback is welcome.
> > >>
> > 
> > I will try some combinations over the next few days.
> 
> Hi All,
> 
> I have tested different combinations of toolchains on arm and x86. I
> have successfully build all gcc 4.x and glibc 2.4+ combinations. It was
> gcc 3.4.4 and glibc 3.4.6 oldest combination I could get build using
> angstrom 2008.1 distro.
> 
> Here is revised patch 
> 
> 
> Thanks
> 
> -Khem
> 

Hi 

I have done some more builds particularly uclibc 0.9.27+ and had to fix
uclibc recipes. 

Here is next updated patch.

Thanks

-Khem


[-- Attachment #2: oe-new-toolchain-build-sequence.patch --]
[-- Type: text/x-diff, Size: 100942 bytes --]

#
# old_revision [4b92368c6e121948ca312aaaa0ad0b7da9b9349b]
#
# delete "packages/eglibc/eglibc-intermediate.inc"
# 
# delete "packages/eglibc/eglibc-intermediate_svn.bb"
# 
# delete "packages/glibc/glibc-intermediate.inc"
# 
# delete "packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.3.6.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.4.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.5.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.6.1.bb"
# 
# delete "packages/glibc/glibc-intermediate_2.7.bb"
# 
# delete "packages/glibc/glibc-intermediate_cvs.bb"
# 
# add_dir "packages/glibc/glibc-2.7"
# 
# add_file "packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch"
#  content [19c707575d5be816904f4ced86b7450a2e54c9c3]
# 
# add_file "packages/gcc/gcc-cross-intermediate.inc"
#  content [3fd758b824b19229a3f6e7df95246f0d382bc7ea]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.3.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.3.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_3.4.4.bb"
#  content [65e5d97bbf12d5db9a90b7522e39e7911d577562]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.0.2.bb"
#  content [d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.0.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.1.bb"
#  content [3fc0ba21af09070a730a4b3e0b726ee8918c8f65]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.1.2.bb"
#  content [211f0593c75ca9fb9078df3e4a57d18d80e1385f]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.1.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.2.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.3.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.2.4.bb"
#  content [90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4]
# 
# add_file "packages/gcc/gcc-cross-intermediate_4.3.1.bb"
#  content [30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb"
#  content [bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb"
#  content [7ca0df097d7377b3d3e86f9ab60edc17327fc874]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb"
#  content [b41165d11071d72ef03ff2bb5742b410f82555ab]
# 
# add_file "packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch"
#  content [cd6208674ca556cef23fcfe071a929d4c768e68f]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch"
#  content [1233a371e51da2cb27c42ec18bc33f11a9288f28]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch"
#  content [3cb1771cb1ffb55fd118435cae54bade8a5c7d4e]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch"
#  content [59253459fc269a11bbb26d9f5e7a42b6871fd287]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-memusage.patch"
#  content [2a58393c519f5c0ba7293bdd4643302367f2845d]
# 
# add_file "packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch"
#  content [f31f3425ae1f8afcb869cd8e0f3c414d01aa211f]
# 
# add_file "packages/glibc/glibc-2.7/all_glibc-i586-chk.patch"
#  content [5adb32eb0f211aa8fca2fcb25d68b7dbbce3d121]
# 
# add_file "packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch"
#  content [831009b50ec6133887dd06cdc4795e7889929e10]
# 
# patch "conf/distro/angstrom-2008.1.conf"
#  from [f64ebcf55e85b504d3be169befac3c7981aa74d9]
#    to [5fb29f325449bbfb395394e6093d5733a044ae74]
# 
# patch "conf/distro/celinux-test.conf"
#  from [89d7e451fc9af9bf40690f40acee9b8634d4239f]
#    to [1405fee6f781db757cd0819b219abd9f47fc4b93]
# 
# patch "conf/distro/chinook-compat.conf"
#  from [6792236a4e268fbe64e7adc994afef1224f52c9a]
#    to [19281a425235c6217a5de40204e18655583cf001]
# 
# patch "conf/distro/gmustix.conf"
#  from [88db2db3032412eac284ef6efa7a4668c79a29b2]
#    to [e5a0ed1602a23b5cbddbee1a07669efa041cd191]
# 
# patch "conf/distro/include/angstrom-2007-for-openmoko.inc"
#  from [4e926bdf5178cce4d068eeb210aba5adf7982351]
#    to [85b9d88526b7e40205f13f547c01c721f42fa32f]
# 
# patch "conf/distro/include/angstrom-2008-preferred-versions.inc"
#  from [d8ed2be12dc133372521c9a88ad1469f0a640df2]
#    to [345628e585c27582599200282307fe68ae1c1937]
# 
# patch "conf/distro/include/angstrom-eglibc.inc"
#  from [e0e7b6758775be96c0a58faecff645b05ef7c3e2]
#    to [e56df3f5a1f620f0dfa7795ff188661bf1524389]
# 
# patch "conf/distro/include/angstrom-glibc.inc"
#  from [64060b7ace4591e34cd8206bb5cd3ba77c6554d4]
#    to [9a81308293772bcff0ea1b412e0fa3a478a205fe]
# 
# patch "conf/distro/include/angstrom-uclibc.inc"
#  from [ca2fe974b58e8678de2abda68a7ace8c061523a2]
#    to [811d455e8ee857e124f2089a5c52c29d5b1124be]
# 
# patch "conf/distro/include/insane-srcrevs.inc"
#  from [e685e3b620d54ebf0b096e4709ed95ca3329b08c]
#    to [cbc144484de6ac4d699d0a609a011f4f1f04d2bf]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [4b304c71e110bbeef27f89dc40072ac231953996]
#    to [f978a9c4326f1feb4b7e6b23a94f6b9ce18b90d1]
# 
# patch "conf/distro/include/slugos.inc"
#  from [9b41afe5f573c4ce71c88ddf2bcda240c4dae42c]
#    to [15ec40d1c8105150bd6e9f5af9d3efa15ffa623d]
# 
# patch "conf/distro/jlime-donkey.conf"
#  from [fb7ea51917dde4bafa36f1b4a43be01e96610ad6]
#    to [af6cabdd09a5bd6796c790944232bdcb47f2c83b]
# 
# patch "conf/distro/jlime-henchman.conf"
#  from [40b971ca62e022ba5da642d0dd65e9472369efc9]
#    to [576306734d9284a03e4a2c7d9af7aeab477b903c]
# 
# patch "conf/distro/jlime-mongo.conf"
#  from [239a9bf19ee598d83ee84d5958a12b71bd7bef47]
#    to [326f98ce35aedb012b0e23bd6d1c4d5364d22c5b]
# 
# patch "conf/distro/jlime-shrek.conf"
#  from [4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491]
#    to [4960e4997a76b212b2bda2ec3ddab16d81622075]
# 
# patch "conf/distro/mamona.conf"
#  from [fd683d8ddd62359322234b247211b416f546a004]
#    to [2259bb76e74ceface351ef6266ee9f3284c8e414]
# 
# patch "conf/distro/minimal.conf"
#  from [3659ec6bf90d9eac32c48e7ac2207b2a8c100d28]
#    to [bb050fd7b97576649bce4f1605b0c122f9cbea02]
# 
# patch "conf/distro/nylon.conf"
#  from [55b55fd58b093f18dc69ad389287e77c548403ae]
#    to [93b37b27f5a8b665966cdcd8b90187ec5428f2bc]
# 
# patch "conf/distro/openprotium.conf"
#  from [fa9e89af0f2d1321bd93fb2c08dfc7fa720a7d51]
#    to [982f64d7db8d48f170cd1aa284d266ddbc1030ce]
# 
# patch "conf/distro/oplinux-uclibc.conf"
#  from [ded77d3149a141de656d62e5c1ed7e161f1e500d]
#    to [af3019dae5fb6717311d042ac2f3114f99cdd50e]
# 
# patch "conf/distro/oplinux.conf"
#  from [0dbc9a811a5f426f5d3e4ead5a20330b56e51e41]
#    to [007c319d5693215e75c73b455c5c76a0f2465501]
# 
# patch "conf/distro/sharprom-compatible.conf"
#  from [866d17894061cd031cda619513332fa012433fa3]
#    to [89b78178c717a75e6dc950636c6903fbfb6fb989]
# 
# patch "conf/distro/ucslugc.conf"
#  from [13de2c9a77700ae97b0f7a3dbb79971cb6451ca6]
#    to [bb32cc5c8cbf8d2446f2bf2eef140a2ccd04ee1d]
# 
# patch "conf/distro/unslung.conf"
#  from [0ef6d906a67568b77e1f68fc1ac5c65f65586c67]
#    to [a7d66feda58ef5de37cbaf33395cb0dd4e1e7586]
# 
# patch "conf/distro/wrt54oe.conf"
#  from [9d556281a94a6474ec9b7e6edffabcecd876b083]
#    to [511263e0f8d97edcbcab96283a7c703b27f7072b]
# 
# patch "conf/local.conf.sample"
#  from [fa7f5ad0f812c943367b2c88b4e4f7165797959d]
#    to [5164ed855456a3c58975fcfbad1c9da8dd8d60f2]
# 
# patch "conf/machine/native.conf"
#  from [9f73a28ea65b27265df3e4afa2107401f9463ead]
#    to [e4b8c17ba26581950b67bf9e306d9f1664c0741f]
# 
# patch "packages/eglibc/eglibc-initial.inc"
#  from [9cc9a816e903fd588bfe9b6529f690d24297a54b]
#    to [4b2b73384f3c8f940e42387057da88a76435f44c]
# 
# patch "packages/eglibc/eglibc.inc"
#  from [20ecb0b8894a6fa79214db154c8cd4e8458d7237]
#    to [eef22ba34145bef9522d66a4eb30da587ba3e6a2]
# 
# patch "packages/gcc/gcc-3.4.4.inc"
#  from [b6121dbf8fda33791722c94759192ce86145319f]
#    to [db48eb2b8c53c3d57d561258a42cace119a70438]
# 
# patch "packages/gcc/gcc-configure-cross.inc"
#  from [703d1979546f41f4a81d5aed72bf335e2bc5c69e]
#    to [4882906171abcb3738dfefb319ad714053c3adbe]
# 
# patch "packages/gcc/gcc-cross-initial.inc"
#  from [ad4596bca70fbc850a629b1582fafb6479bcb65d]
#    to [6dc1ca2688a86e10d96b345c271514ca7e6b0f1e]
# 
# patch "packages/glibc/glibc-initial.inc"
#  from [0480105971d23c66b379db96774c07f2a0913989]
#    to [7a1a79ecca0658f29a905c2140d27445a57bad55]
# 
# patch "packages/glibc/glibc-initial_2.5.bb"
#  from [c87dce64dc313f734e0764420892401b0c7301ee]
#    to [717f9cbf298c7866010b883caec46b01814a1ca4]
# 
# patch "packages/glibc/glibc-stage.inc"
#  from [8abe1d7d9fd4c34d725a7f26db2110bb66ec3e16]
#    to [9add53332fea43aff1a7efdeba79858facecfc1a]
# 
# patch "packages/glibc/glibc.inc"
#  from [94a32473f1193137d45da97d6ed786ae9e755094]
#    to [d7da3e08d193524257645bad4468dbb3dd7ed044]
# 
# patch "packages/glibc/glibc_2.3.6.bb"
#  from [a180c138b01077df8b234264ee6abd46cbf72314]
#    to [7ce57da5312cee1deb44c097867123d097f84146]
# 
# patch "packages/glibc/glibc_2.5.bb"
#  from [3c1686afff4b72f25b0ee4879fa7df5bed91c6b3]
#    to [330520507426ad66fcbf5a266a8aa5845504a744]
# 
# patch "packages/glibc/glibc_2.6.1.bb"
#  from [8b5e0d298c84d71b8a15be26527883a393e5483d]
#    to [17745de42ba1ebc4c1d4242154c294e27aa5a73c]
# 
# patch "packages/glibc/glibc_2.7.bb"
#  from [02c169c2754286db4f842bbe42a680e438defb73]
#    to [73c2cf870a5fd5c6da7625ada47fefdf0948c1be]
# 
# patch "packages/meta/external-toolchain.bb"
#  from [ebcd8679c393d51824573b5a70c7a071f8521117]
#    to [fe769763ba169fd561e2c5f1153726281afa9952]
# 
# patch "packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb"
#  from [63c582236d5e631780a864456ba4db4862602a0e]
#    to [8e92e1882cb3bc63515abe5cc42b6577706e118d]
# 
# patch "packages/uclibc/uclibc-initial_0.9.26.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [adbd582e0383361294af44a087a3221e9818794b]
# 
# patch "packages/uclibc/uclibc-initial_0.9.27.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [30ffb81760fc3a3d952d590bac5a27ec7b14224f]
# 
# patch "packages/uclibc/uclibc-initial_0.9.28.bb"
#  from [4add23305e16ae6d0973c44aae89b3f01d0f5bf8]
#    to [5a0004c3d966c307216a21a7e40317d6af73b78e]
# 
# patch "packages/uclibc/uclibc-initial_0.9.29.bb"
#  from [d9cf01fb4dec69ff1f796d39c9078030982eacca]
#    to [accc40b675983da7e7ed6fbb89968dda0292fa44]
# 
# patch "packages/uclibc/uclibc-initial_svn.bb"
#  from [2715cc791b3fdd1b8e62328291e3ef33973bacc0]
#    to [766c264be7d787f2285f02b13a392f43cb2a87d2]
# 
# patch "packages/uclibc/uclibc.inc"
#  from [48b0ba2e4cff05071b3b812ef0be0861870cd00c]
#    to [ff1fea0ac9072d1d07a86491024bfeabe09bac96]
# 
# patch "packages/uclibc/uclibc_0.9.28.bb"
#  from [0192ea3da2f460a433b9294dceec5bd61b6a456e]
#    to [0ff124f28aae624c8563b4c4c08a382e90969a0c]
# 
# patch "packages/uclibc/uclibc_0.9.29.bb"
#  from [cbf70d92d0ec5221de098ec3bc7f8ad20c014b7a]
#    to [4a756a3b6c8f5f24c12ad91b863465b64bd6d6f0]
#
============================================================
--- packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch	19c707575d5be816904f4ced86b7450a2e54c9c3
+++ packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch	19c707575d5be816904f4ced86b7450a2e54c9c3
@@ -0,0 +1,21 @@
+---
+ gcc/config/i386/linux.h |    2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: gcc-3.4.4/gcc/config/i386/linux.h
+===================================================================
+--- gcc-3.4.4.orig/gcc/config/i386/linux.h	2008-07-17 23:40:00.000000000 -0700
++++ gcc-3.4.4/gcc/config/i386/linux.h	2008-07-17 23:40:41.000000000 -0700
+@@ -218,6 +218,7 @@ Boston, MA 02111-1307, USA.  */
+ /* Do code reading to identify a signal frame, and set the frame
+    state data appropriately.  See unwind-dw2.c for the structs.  */
+ 
++#ifndef inhibit_libc
+ #ifdef IN_LIBGCC2
+ /* There's no sys/ucontext.h for some (all?) libc1, so no
+    signal-turned-exceptions for them.  There's also no configure-run for
+@@ -282,3 +283,4 @@ Boston, MA 02111-1307, USA.  */
+   } while (0)
+ #endif /* not USE_GNULIBC_1 */
+ #endif /* IN_LIBGCC2 */
++#endif
============================================================
--- packages/gcc/gcc-cross-intermediate.inc	3fd758b824b19229a3f6e7df95246f0d382bc7ea
+++ packages/gcc/gcc-cross-intermediate.inc	3fd758b824b19229a3f6e7df95246f0d382bc7ea
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+		--enable-shared \
+		--disable-multilib \
+		--disable-threads \
+		--enable-languages=c \
+		--enable-target-optspace \
+		--program-prefix=${TARGET_PREFIX} \
+		--with-sysroot=${STAGING_DIR_TARGET} \
+		--with-build-sysroot=${STAGING_DIR_TARGET} \
+		${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+	:
+}
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.3.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.3.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
+++ packages/gcc/gcc-cross-intermediate_3.4.4.bb	65e5d97bbf12d5db9a90b7522e39e7911d577562
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
+++ packages/gcc/gcc-cross-intermediate_4.0.2.bb	d6632d3d523fcb2d4e71bab2c5a7effd7c819ba5
@@ -0,0 +1,4 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-multilib"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.0.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.1.bb	3fc0ba21af09070a730a4b3e0b726ee8918c8f65
+++ packages/gcc/gcc-cross-intermediate_4.1.1.bb	3fc0ba21af09070a730a4b3e0b726ee8918c8f65
@@ -0,0 +1,6 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libunwind-exceptions \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
+++ packages/gcc/gcc-cross-intermediate_4.1.2.bb	211f0593c75ca9fb9078df3e4a57d18d80e1385f
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.1.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.2.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.3.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
+++ packages/gcc/gcc-cross-intermediate_4.2.4.bb	90a8bfb6cf14f9e38af8a574b9b5fa9d55ccadd4
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
+++ packages/gcc/gcc-cross-intermediate_4.3.1.bb	30ce0ad3e7c44f2ebfbeb6ee12d62890fbc34086
@@ -0,0 +1,14 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+		  --disable-libgomp \
+		  --disable-libssp"
+
+# Hack till we fix *libc properly
+do_stage_append() {
+        ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb	bdfa3b2a9bb38d911fcba484a8f6a57ab9c6a6d8
@@ -0,0 +1,2 @@
+require gcc-cross_csl-arm-2005q3.bb
+require gcc-cross-intermediate.inc
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb	7ca0df097d7377b3d3e86f9ab60edc17327fc874
@@ -0,0 +1,7 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-2006q1"
+
+EXTRA_OECONF += "--disable-libmudflap \
+		--disable-libssp"
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
+++ packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb	b41165d11071d72ef03ff2bb5742b410f82555ab
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+	ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
============================================================
--- packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch	cd6208674ca556cef23fcfe071a929d4c768e68f
+++ packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch	cd6208674ca556cef23fcfe071a929d4c768e68f
@@ -0,0 +1,30 @@
+Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
+
+I am checking this x86 assembler patch:
+
+http://sourceware.org/ml/binutils/2008-01/msg00148.html
+
+to check operand size. fnstsw stores 16bit into %ax. The upper
+16bit of %eax is unchanged.  The new assembler will disallow
+"fnstsw %eax".  Here is a patch for glibc.
+
+
+H.J.
+
+---
+ sysdeps/i386/fpu/ftestexcept.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
+===================================================================
+--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c	2008-07-19 11:00:45.000000000 -0700
++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c	2008-07-19 11:01:25.000000000 -0700
+@@ -26,7 +26,7 @@
+ int
+ fetestexcept (int excepts)
+ {
+-  int temp;
++  short temp;
+   int xtemp = 0;
+ 
+   /* Get current exceptions.  */
============================================================
--- packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch	1233a371e51da2cb27c42ec18bc33f11a9288f28
+++ packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch	1233a371e51da2cb27c42ec18bc33f11a9288f28
@@ -0,0 +1,37 @@
+--- glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c.org	2008-07-16 22:57:58.000000000 -0700
++++ glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c	2008-07-16 22:58:26.000000000 -0700
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1996, 2002, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1991, 1996, 2002, 2003, 2005 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -18,10 +18,13 @@
+ 
+ #include <signal.h>
+ #include <unistd.h>
+-#include <bits/libc-lock.h>
+ 
+-#ifndef SHARED
++#ifndef IS_IN_rtld
++# include <bits/libc-lock.h>
++
++# ifndef SHARED
+ weak_extern (__pthread_raise)
++# endif
+ #endif
+ 
+ /* Raise the signal SIG.  */
+@@ -29,8 +32,12 @@ int
+ raise (sig)
+      int sig;
+ {
++#ifdef IS_IN_rtld
++  return __kill (__getpid (), sig);
++#else
+   return __libc_maybe_call2 (pthread_raise, (sig),
+ 			     __kill (__getpid (), sig));
++#endif
+ }
+ libc_hidden_def (raise)
+ weak_alias (raise, gsignal)
============================================================
--- packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch	3cb1771cb1ffb55fd118435cae54bade8a5c7d4e
+++ packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch	3cb1771cb1ffb55fd118435cae54bade8a5c7d4e
@@ -0,0 +1,45 @@
+This one was taken from debian.
+
+# DP: Description: Fix __bind redefinition problem
+# DP: Related bugs: 
+# DP: Dpatch author: Phil Blundell
+# DP: Patch author: Daniel Jacobowitz
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-12-25
+
+Index: sysdeps/unix/sysv/linux/arm/socket.S
+===================================================================
+RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/socket.S,v
+retrieving revision 1.12
+retrieving revision 1.13
+diff -u -r1.12 -r1.13
+--- glibc-2.3.6.ds1.orig/sysdeps/unix/sysv/linux/arm/socket.S	4 Dec 2004 21:20:16 -0000	1.12
++++ glibc-2.3.6.ds1/sysdeps/unix/sysv/linux/arm/socket.S	27 Oct 2005 18:50:12 -0000	1.13
+@@ -1,4 +1,6 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2004, 2005
++   Free Software Foundation, Inc.
++
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -32,7 +34,11 @@
+    The .S files for the other calls just #define socket and #include this.  */
+ 
+ #ifndef __socket
++#ifndef NO_WEAK_ALIAS
+ #define __socket P(__,socket)
++#else
++#define __socket socket
++#endif
+ #endif
+ 
+ #define PUSHARGS_1	str a1, [sp, $-4]!
+@@ -120,4 +126,6 @@
+ 
+ PSEUDO_END (__socket)
+ 
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
============================================================
--- packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch	59253459fc269a11bbb26d9f5e7a42b6871fd287
+++ packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch	59253459fc269a11bbb26d9f5e7a42b6871fd287
@@ -0,0 +1,79 @@
+Fix rpcsvc headers missing from glibc, also
+allows glibc to produce the rpc headers when cross compiling,
+And fix for glibc-bootstrap package doesn't currently build because the
+generated sunrpc headers are not available
+    
+
+---
+ sunrpc/Makefile |   28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+Index: glibc-2.3.6/sunrpc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/sunrpc/Makefile	2005-07-17 20:03:49.000000000 -0700
++++ glibc-2.3.6/sunrpc/Makefile	2008-07-17 15:28:04.000000000 -0700
+@@ -75,6 +75,8 @@ install-sbin := rpcinfo
+ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
+ 	      rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
+ 	      rpc_tblout.o rpc_sample.o
++host-rpcgen-objs = $(addprefix host-,$(rpcgen-objs))
++
+ # These headers are part of rpcgen.
+ distribute := proto.h rpc_util.h rpc_parse.h rpc_scan.h \
+ 	      $(rpcgen-objs:.o=.c) etc.rpc \
+@@ -98,8 +100,8 @@ otherlibs += $(nssobjdir)/libnss_files.a
+ 	     $(resolvobjdir)/libresolv.a
+ endif
+ 
+-ifeq (no,$(cross-compiling))
+-# We can only build this library if we can run the rpcgen we build.
++ifneq (,$(findstring subdir_install,$(MAKECMDGOALS)))
++## We can only build this library if we can run the rpcgen we build.
+ headers += $(rpcsvc:%.x=rpcsvc/%.h)
+ extra-libs := librpcsvc
+ extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass.
+@@ -144,8 +146,26 @@ cpp-srcs-left := $(rpcgen-objs:.o=.c)
+ lib := nonlib
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+ 
++# Rely on the target rpcgen objects for dependency information.
++$(objpfx)host-%.o: %.c $(objpfx)%.o
++	$(patsubst %/,cd % &&,$(objpfx)) \
++	$(BUILD_CC) $($(basename $(<F))-CFLAGS) \
++		-I$(shell cd .. && pwd) \
++		-Dattribute_hidden= \
++		-include $(shell cd ../include && pwd)/libintl.h \
++		-O2 $(ALL_BUILD_CFLAGS) $(shell pwd)/$(<F) -c -o $(@F)
++
++$(objpfx)host-rpcgen: $(addprefix $(objpfx),$(host-rpcgen-objs))
++	$(BUILD_CC) $(BUILD_CFLAGS) $+ -o $(objpfx)host-rpcgen
++
+ # Tell rpcgen where to find the C preprocessor.
++ifeq ($(cross-compiling),no)
+ rpcgen-cmd = CPP='$(CC) -E -x c-header' $(built-program-cmd) -Y ../scripts
++rpcgen-prog = $(objpfx)rpcgen
++else
++rpcgen-cmd = CPP='$(CC) -E -x c-header' $(objpfx)host-rpcgen -Y ../scripts
++rpcgen-prog = $(objpfx)host-rpcgen
++endif
+ 
+ # Install the rpc data base file.
+ $(inst_sysconfdir)/rpc: etc.rpc $(+force)
+@@ -156,7 +176,7 @@ $(inst_sysconfdir)/rpc: etc.rpc $(+force
+ # relinked.
+ $(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
+ 	@:
+-$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ 	$(make-target-directory)
+ 	-@rm -f ${@:stmp=T} $@
+ 	$(rpcgen-cmd) -h $< -o ${@:stmp=T}
+@@ -166,7 +186,7 @@ $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(obj
+ # Generate the rpcsvc XDR functions with rpcgen.
+ $(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp
+ 	@:
+-$(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)x%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ 	-@rm -f ${@:stmp=T} $@
+ 	$(rpcgen-cmd) -c $< -o ${@:stmp=T}
+ 	$(move-if-change) $(@:stmp=T) $(@:stmp=c)
============================================================
--- packages/glibc/glibc-2.3.6/glibc-memusage.patch	2a58393c519f5c0ba7293bdd4643302367f2845d
+++ packages/glibc/glibc-2.3.6/glibc-memusage.patch	2a58393c519f5c0ba7293bdd4643302367f2845d
@@ -0,0 +1,44 @@
+---
+ malloc/Makefile    |    4 +++-
+ malloc/memusage.sh |    6 ++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/malloc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/malloc/Makefile	2008-07-17 14:40:54.000000000 -0700
++++ glibc-2.3.6/malloc/Makefile	2008-07-17 14:42:07.000000000 -0700
+@@ -80,7 +80,7 @@ ifneq ($(cross-compiling),yes)
+ ifneq ($(LIBGD),no)
+ install-bin = memusagestat
+ install-bin-script += memusage
+-generated += memusagestat memusage
++generated += memusagestat
+ extra-objs += memusagestat.o
+ 
+ # The configure.in check for libgd and its headers did not use $SYSINCLUDES.
+@@ -90,6 +90,8 @@ extra-objs += memusagestat.o
+ $(objpfx)memusagestat.o: sysincludes = # nothing
+ endif
+ endif
++install-bin-script += memusage
++generated += memusage
+ 
+ # Another goal which can be used to override the configure decision.
+ .PHONY: do-memusagestat
+Index: glibc-2.3.6/malloc/memusage.sh
+===================================================================
+--- glibc-2.3.6.orig/malloc/memusage.sh	2008-07-17 14:42:17.000000000 -0700
++++ glibc-2.3.6/malloc/memusage.sh	2008-07-17 14:42:54.000000000 -0700
+@@ -205,6 +205,12 @@ if test $# -eq 0; then
+   do_usage
+ fi
+ 
++# Find memusagestat.
++if test -n "$png" -a ! -x $memusagestat; then
++  echo >&2 $"PNG generation is not supported."
++  png=""
++fi
++
+ # This will be in the environment.
+ add_env="LD_PRELOAD=$memusageso"
+ 
============================================================
--- packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch	f31f3425ae1f8afcb869cd8e0f3c414d01aa211f
+++ packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch	f31f3425ae1f8afcb869cd8e0f3c414d01aa211f
@@ -0,0 +1,25 @@
+---
+ elf/Makefile |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/elf/Makefile
+===================================================================
+--- glibc-2.3.6.orig/elf/Makefile	2008-07-17 01:10:39.000000000 -0700
++++ glibc-2.3.6/elf/Makefile	2008-07-17 01:17:18.000000000 -0700
+@@ -279,7 +279,7 @@ $(objpfx)rtld-libc.a: $(objpfx)librtld.m
+ 	$(MAKE) -f $< -f rtld-Rules
+ 
+ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
+-	$(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
++	$(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc -lgcc_eh '-Wl,-)' \
+ 		  -Wl,-Map,$@.map
+ 
+ generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
+@@ -295,6 +295,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld
+ 		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ 		  > $@.lds
+ 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
++		  -lgcc -lgcc_eh					\
+ 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
+ 		  $(filter-out $(map-file),$^) $(load-map-file)		\
+ 		  -Wl,-soname=$(rtld-installed-name) -T $@.lds
============================================================
--- packages/glibc/glibc-2.7/all_glibc-i586-chk.patch	5adb32eb0f211aa8fca2fcb25d68b7dbbce3d121
+++ packages/glibc/glibc-2.7/all_glibc-i586-chk.patch	5adb32eb0f211aa8fca2fcb25d68b7dbbce3d121
@@ -0,0 +1,33 @@
+http://bugs.gentoo.org/199479
+
+2007-09-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/i386/i586/memcpy_chk.S: New file.
+	* sysdeps/i386/i586/mempcpy_chk.S: Likewise.
+	* sysdeps/i386/i586/memset_chk.S: Likewise.
+
+Index: glibc/sysdeps/i386/i586/memcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memcpy_chk.S
+diff -N sysdeps/i386/i586/memcpy_chk.S
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memcpy_chk.S	13 Nov 2007 01:56:18 -0000	1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/mempcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/mempcpy_chk.S
+diff -N sysdeps/i386/i586/mempcpy_chk.S
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/mempcpy_chk.S	13 Nov 2007 01:56:18 -0000	1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/mempcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/memset_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memset_chk.S
+diff -N sysdeps/i386/i586/memset_chk.S
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memset_chk.S	13 Nov 2007 01:56:18 -0000	1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memset_chk.S>
+
============================================================
--- packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch	831009b50ec6133887dd06cdc4795e7889929e10
+++ packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch	831009b50ec6133887dd06cdc4795e7889929e10
@@ -0,0 +1,38 @@
+---
+ Rules.mak |    9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.28/Rules.mak
+===================================================================
+--- uClibc-0.9.28.orig/Rules.mak	2005-08-17 15:49:49.000000000 -0700
++++ uClibc-0.9.28/Rules.mak	2008-07-22 23:35:10.000000000 -0700
+@@ -37,7 +37,8 @@
+ # will build uClibc for 'arm'.
+ 
+ ifndef CROSS
+-CROSS=
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+ CC         = $(CROSS)gcc
+ AR         = $(CROSS)ar
+@@ -85,7 +86,8 @@ ifeq ($(filter $(noconfig_targets),$(MAK
+ endif
+ 
+ ifndef CROSS
+-CROSS=$(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+ 
+ # A nifty macro to make testing gcc features easier
+@@ -337,6 +339,9 @@ ASFLAGS += $(ASFLAGS_NOEXEC)
+ LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
+ LIBGCC:=$(shell $(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name)
+ LIBGCC_DIR:=$(dir $(LIBGCC))
++ifneq ($(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a),libgcc_eh.a)
++  LIBGCC += $(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a)
++endif
+ 
+ ########################################
+ #
============================================================
--- conf/distro/angstrom-2008.1.conf	f64ebcf55e85b504d3be169befac3c7981aa74d9
+++ conf/distro/angstrom-2008.1.conf	5fb29f325449bbfb395394e6093d5733a044ae74
@@ -67,12 +67,13 @@ KERNEL_INITRAMFS_PATH = "${KERNEL_INITRA
 KERNEL_INITRAMFS_PATH = "${KERNEL_INITRAMFS_DIR}/$(readlink ${KERNEL_INITRAMFS_DIR}initramfs-bootmenu-image-${MACHINE}.cpio.gz)"
 
 #This is unrelated to the kernel version, but userspace apps (e.g. HAL) require a recent version to build against
-PREFERRED_VERSION_linux-libc-headers 	= "2.6.23"
+PREFERRED_VERSION_linux-libc-headers 	= "2.6.8.1"
 
 #Prefer glibc 2.6 and uclibc 0.9.29, these have had the most testing.
 PREFERRED_VERSION_glibc 		?= "2.6.1"
-PREFERRED_VERSION_glibc-intermediate 	?= "2.6.1"
 PREFERRED_VERSION_glibc-initial 	?= "2.6.1"
+PREFERRED_VERSION_uclibc 		?= "0.9.27"
+PREFERRED_VERSION_uclibc-initial 	?= "0.9.27"
 
 #Prefer a newer GTK+ and friends
 PREFERRED_VERSION_gtk+             	?= "2.12.3"
@@ -103,12 +104,14 @@ ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 ANGSTROM_GCC_VERSION_avr32		?= "4.2.2"
 
 #Everybody else can just use this: 
-ANGSTROM_GCC_VERSION 			?= "4.2.4"
+ANGSTROM_GCC_VERSION 			?= "3.4.4"
+PREFERRED_VERSION_binutils-cross 	?= "2.15.94.0.1"
 
-PREFERRED_VERSION_gcc               ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross         ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross-sdk     ?= "${ANGSTROM_GCC_VERSION}"
-PREFERRED_VERSION_gcc-cross-initial ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc                    ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross              ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-sdk          ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-initial      ?= "${ANGSTROM_GCC_VERSION}"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "${ANGSTROM_GCC_VERSION}"
 
 #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom
 require conf/distro/include/preferred-gpe-versions-2.8.inc
@@ -123,6 +126,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
============================================================
--- conf/distro/celinux-test.conf	89d7e451fc9af9bf40690f40acee9b8634d4239f
+++ conf/distro/celinux-test.conf	1405fee6f781db757cd0819b219abd9f47fc4b93
@@ -35,6 +35,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # toolchain
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}binutils:binutils-cross"
@@ -46,6 +47,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_gcc = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 
 PREFERRED_VERSION_glibc = "2.3.5+cvs20050627"
 
============================================================
--- conf/distro/chinook-compat.conf	6792236a4e268fbe64e7adc994afef1224f52c9a
+++ conf/distro/chinook-compat.conf	19281a425235c6217a5de40204e18655583cf001
@@ -42,14 +42,15 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 MACHINE_KERNEL_VERSION = "2.6"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_PROVIDER_virtual/libc = "glibc"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-libc-for-gcc = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-linux-gnueabi-binutils = "binutils-cross"
 PREFERRED_PROVIDER_linux-libc-header = "linux-libc-headers"
@@ -64,6 +65,7 @@ PREFERRED_VERSION_gcc-cross-initial = "4
 PREFERRED_VERSION_gcc = "3.4.4cs2005q3.2"
 PREFERRED_VERSION_gcc-cross = "3.4.4cs2005q3.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.1.1"
 
 #PREFERRED_VERSION_gcc-cross-initial = "3.4.4cs2005q3.2"
 
@@ -71,7 +73,6 @@ PREFERRED_VERSION_glibc = "2.5"
 PREFERRED_VERSION_linux-libc-headers = "2.6.20"
 
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 PREFERRED_VERSION_glibc-initial = "2.5"
 
 PREFERRED_VERSION_libtool = "1.5.6"
============================================================
--- conf/distro/gmustix.conf	88db2db3032412eac284ef6efa7a4668c79a29b2
+++ conf/distro/gmustix.conf	e5a0ed1602a23b5cbddbee1a07669efa041cd191
@@ -8,6 +8,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 IMAGE_FSTYPES = "jffs2"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
@@ -15,6 +16,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_PROVIDER_classpath = "classpath-minimal"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.4.4" 
 PREFERRED_VERSION_gcc = "3.4.4"
============================================================
--- conf/distro/include/angstrom-2007-for-openmoko.inc	4e926bdf5178cce4d068eeb210aba5adf7982351
+++ conf/distro/include/angstrom-2007-for-openmoko.inc	85b9d88526b7e40205f13f547c01c721f42fa32f
@@ -89,21 +89,25 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross         ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk     ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 PREFERRED_VERSION_gcc_dht-walnut               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_dht-walnut         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_dht-walnut     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_dht-walnut ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_dht-walnut ?= "4.1.1"
 
 PREFERRED_VERSION_gcc_xilinx-ml403               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_xilinx-ml403         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_xilinx-ml403     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_xilinx-ml403 ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_xilinx-ml403 ?= "4.1.1"
 
 PREFERRED_VERSION_gcc_mpc8323e-rdb               ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross_mpc8323e-rdb         ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk_mpc8323e-rdb     ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial_mpc8323e-rdb ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate_mpc8323e-rdb ?= "4.1.1"
 
 PREFERRED_VERSION_binutils          ?= "2.18"
 PREFERRED_VERSION_binutils-cross    ?= "2.18"
@@ -115,6 +119,7 @@ PREFERRED_VERSION_gcc-cross-initial_avr3
 PREFERRED_VERSION_avr32-gcc-cross         = "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk_avr32     = "4.0.2"
 PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.0.2"
+PREFERRED_VERSION_gcc-cross-intermediate_avr32 = "4.0.2"
 
 PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
@@ -133,9 +138,6 @@ PREFERRED_VERSION_uclibc-initial_avr32 =
 PREFERRED_VERSION_uclibc_avr32 = "0.9.28"
 PREFERRED_VERSION_uclibc-initial_avr32 = "0.9.28"
 
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
-
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 
 # To use an EABI compatible version 3 series gcc, either uncomment 
@@ -143,6 +145,7 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 #
 # PREFERRED_VERSION_gcc-cross = "3.4.4+csl-arm-2005q3"
 # PREFERRED_VERSION_gcc-cross-initial = "3.4.4+csl-arm-2005q3"
+# PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4+csl-arm-2005q3"
 
 #Loads preferred versions from files, these have weak assigments (?=), so put them at the bottom
 require conf/distro/include/preferred-xorg-versions.inc
@@ -153,17 +156,17 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 PREFERRED_PROVIDER_virtual/arm-angstrom-linux-uclibcgnueabi-libc-for-gcc    = "uclibc-initial"
 PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-uclibcgnueabi-libc-for-gcc  = "uclibc-initial"
============================================================
--- conf/distro/include/angstrom-2008-preferred-versions.inc	d8ed2be12dc133372521c9a88ad1469f0a640df2
+++ conf/distro/include/angstrom-2008-preferred-versions.inc	345628e585c27582599200282307fe68ae1c1937
@@ -17,7 +17,5 @@ PREFERRED_VERSION_tiff 		= "3.8.2+4.0.0b
 PREFERRED_VERSION_pkgconfig-native = "0.23"
 PREFERRED_VERSION_pulseaudio 	= "0.9.10"
 PREFERRED_VERSION_tiff 		= "3.8.2+4.0.0beta2"
-PREFERRED_VERSION_uclibc 	?= "0.9.29"
-PREFERRED_VERSION_uclibc-initial ?= "0.9.29"
 PREFERRED_VERSION_udev 		= "118"
 PREFERRED_VERSION_xserver-kdrive = "1.4.0.90"
============================================================
--- conf/distro/include/angstrom-eglibc.inc	e0e7b6758775be96c0a58faecff645b05ef7c3e2
+++ conf/distro/include/angstrom-eglibc.inc	e56df3f5a1f620f0dfa7795ff188661bf1524389
@@ -4,13 +4,13 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 PREFERRED_PROVIDER_virtual/libc = "eglibc"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "eglibc-initial"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc    = "eglibc"
+PREFERRED_PROVIDER_virtual/armeb${TARGET_VENDOR}-linux-gnueabi-libc-for-gcc  = "eglibc"
+PREFERRED_PROVIDER_virtual/arm${TARGET_VENDOR}-linux-libc-for-gcc            = "eglibc"
+PREFERRED_PROVIDER_virtual/powerpc${TARGET_VENDOR}-linux-libc-for-gcc        = "eglibc"
+PREFERRED_PROVIDER_virtual/mipsel${TARGET_VENDOR}-linux-libc-for-gcc         = "eglibc"
+PREFERRED_PROVIDER_virtual/sparc${TARGET_VENDOR}-linux-libc-for-gcc          = "eglibc"
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
 
============================================================
--- conf/distro/include/angstrom-glibc.inc	64060b7ace4591e34cd8206bb5cd3ba77c6554d4
+++ conf/distro/include/angstrom-glibc.inc	9a81308293772bcff0ea1b412e0fa3a478a205fe
@@ -6,13 +6,13 @@ PREFERRED_PROVIDER_linux-libc-headers ?=
 PREFERRED_PROVIDER_linux-libc-headers ?= "linux-libc-headers"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc               = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc    = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-angstrom-linux-gnueabi-libc-for-gcc  = "glibc"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-libc-for-gcc            = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-angstrom-linux-libc-for-gcc        = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-angstrom-linux-libc-for-gcc         = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-angstrom-linux-libc-for-gcc          = "glibc"
 
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
@@ -25,13 +25,11 @@ FULL_OPTIMIZATION_pn-perl = "-fexpensive
 FULL_OPTIMIZATION = "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -Os"
 
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
-FULL_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 FULL_OPTIMIZATION_pn-glibc = "-fexpensive-optimizations -fomit-frame-pointer -O2"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
 
 BUILD_OPTIMIZATION = "-Os"
 BUILD_OPTIMIZATION_pn-perl = "-O1"
-BUILD_OPTIMIZATION_pn-glibc-intermediate = "-O2"
 BUILD_OPTIMIZATION_pn-glibc = "-O2"
 BUILD_OPTIMIZATION_sparc = "-O2"
 
============================================================
--- conf/distro/include/angstrom-uclibc.inc	ca2fe974b58e8678de2abda68a7ace8c061523a2
+++ conf/distro/include/angstrom-uclibc.inc	811d455e8ee857e124f2089a5c52c29d5b1124be
@@ -14,7 +14,7 @@ TARGET_OS_UC = "linux${@['-uclibc','-ucl
 USE_NLS_glib-2.0 = "yes"
 
 TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
+TARGET_OS ?= "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
 
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
============================================================
--- conf/distro/include/insane-srcrevs.inc	e685e3b620d54ebf0b096e4709ed95ca3329b08c
+++ conf/distro/include/insane-srcrevs.inc	cbc144484de6ac4d699d0a609a011f4f1f04d2bf
@@ -4,7 +4,6 @@ SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
 SRCREV_pn-eds-dbus ?= "${AUTOREV}"
 SRCREV_pn-eglibc ?= "${AUTOREV}"
 SRCREV_pn-eglibc-initial ?= "${AUTOREV}"
-SRCREV_pn-eglibc-intermediate ?= "${AUTOREV}"
 SRCREV_pn-ezxd ?= "${AUTOREV}"
 SRCREV_pn-fbgrab-viewer-native ?= "${AUTOREV}"
 SRCREV_pn-fstests ?= "${AUTOREV}"
============================================================
--- conf/distro/include/sane-srcrevs.inc	4b304c71e110bbeef27f89dc40072ac231953996
+++ conf/distro/include/sane-srcrevs.inc	f978a9c4326f1feb4b7e6b23a94f6b9ce18b90d1
@@ -28,7 +28,6 @@ SRCREV_pn-eglibc-initial ?= "6229"
 SRCREV_pn-eds-dbus ?= "659"
 SRCREV_pn-eglibc ?= "6229"
 SRCREV_pn-eglibc-initial ?= "6229"
-SRCREV_pn-eglibc-intermediate ?= "6229"
 SRCREV_pn-enlazar ?= "37"
 SRCREV_pn-exalt ?= "79"
 SRCREV_pn-exalt-daemon ?= "78"
============================================================
--- conf/distro/include/slugos.inc	9b41afe5f573c4ce71c88ddf2bcda240c4dae42c
+++ conf/distro/include/slugos.inc	15ec40d1c8105150bd6e9f5af9d3efa15ffa623d
@@ -96,13 +96,14 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 
 # Virtuals:
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
 #Set preferred provider for the C library that is used to build the crosscompiler (NPTL voodoo)
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc       = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc     = "glibc"
 
 # Set the preferred provider for a few toolchain-related items, otherwise
 # these may be selected from the external-toolchain instead.
@@ -118,8 +119,8 @@ PREFERRED_VERSION_gcc-cross-initial  ?= 
 PREFERRED_VERSION_gcc-cross          ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk      ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial  ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate  ?= "4.1.2"
 PREFERRED_VERSION_glibc              ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial      ?= "2.5"
 
 # Select the smallest provider of x11 libraries
============================================================
--- conf/distro/jlime-donkey.conf	fb7ea51917dde4bafa36f1b4a43be01e96610ad6
+++ conf/distro/jlime-donkey.conf	af6cabdd09a5bd6796c790944232bdcb47f2c83b
@@ -20,10 +20,11 @@ PREFERRED_PROVIDERS +=  "virtual/${TARGE
 #<> We will set CVS DATE when things are known to work.
 #<>-----------------------------------------------------------------<
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS +=  "virtual/${TARGET_PREFIX}g++:gcc-cross"
-PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/sh3-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
 
 #<>----------------------------------------------------------------->
 #<> We want this so we can crosscompile the kernel using gcc 3.4.3
@@ -51,10 +52,10 @@ PREFERRED_VERSION_gcc-cross-initial = "4
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"                                             		    
 PREFERRED_VERSION_glibc = "2.6.1"
 PREFERRED_VERSION_glibc-initial = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 
 #<>------------------------------------------------------------------>
 #<>
============================================================
--- conf/distro/jlime-henchman.conf	40b971ca62e022ba5da642d0dd65e9472369efc9
+++ conf/distro/jlime-henchman.conf	576306734d9284a03e4a2c7d9af7aeab477b903c
@@ -50,12 +50,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_binutils = "2.18"
 PREFERRED_VERSION_binutils-cross = "2.18"
 
@@ -69,12 +71,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.23"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-mongo.conf	239a9bf19ee598d83ee84d5958a12b71bd7bef47
+++ conf/distro/jlime-mongo.conf	326f98ce35aedb012b0e23bd6d1c4d5364d22c5b
@@ -51,12 +51,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc = "4.2.2"
 PREFERRED_VERSION_gcc-cross = "4.2.2"
 PREFERRED_VERSION_gcc-cross-initial = "4.2.2"
+PREFERRED_VERSION_gcc-cross-intermediate = "4.2.2"
 PREFERRED_VERSION_binutils = "2.18"
 PREFERRED_VERSION_binutils-cross = "2.18"
 
@@ -70,12 +72,11 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc"
 PREFERRED_VERSION_linux-libc-headers = "2.6.18"
 PREFERRED_VERSION_glibc = "2.5"
-PREFERRED_VERSION_glibc-intermediate = "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/jlime-shrek.conf	4aa79fa3f008b3d4c92169d9af94ffa1dc1e8491
+++ conf/distro/jlime-shrek.conf	4960e4997a76b212b2bda2ec3ddab16d81622075
@@ -12,6 +12,7 @@ PREFERRED_PROVIDERS  =  "virtual/${TARGE
 SRCDATE = "20050518"
 
 PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS  =  "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -24,6 +25,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_gcc = "3.4.3"
 PREFERRED_VERSION_gcc-cross = "3.4.3"
 PREFERRED_VERSION_gcc-cross-initial = "3.4.3"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.3"
 PREFERRED_VERSION_linux-libc-headers = "2.6.7.0"                                             		    
 PREFERRED_VERSION_glib-2.0-native = "2.6.2"
 PREFERRED_VERSION_glib-2.0 = "2.6.2"
============================================================
--- conf/distro/mamona.conf	fd683d8ddd62359322234b247211b416f546a004
+++ conf/distro/mamona.conf	2259bb76e74ceface351ef6266ee9f3284c8e414
@@ -34,6 +34,7 @@ PREFERRED_PROVIDERS_virtual/${TARGET_PRE
 
 # gcc
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDERS_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
@@ -41,6 +42,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 # binutils
 PREFERRED_VERSION_binutils ?= "2.18"
@@ -55,17 +57,15 @@ PREFERRED_VERSION_glibc ?= "2.5"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial ?= "glibc-initial"
 
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate_i686 ?= "2.4"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_uclibc ?= "0.9.29"
 
 # NPTL stuff
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-mamona-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-mamona-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/i586-mamona-linux-libc-for-gcc = "glibc"
 
 # Other Packages
 # ==============
@@ -82,4 +82,4 @@ PREFERRED_VERSION_gpsd ?= "2.33"
 
 PREFERRED_VERSION_apt = "0.7.6"
 PREFERRED_VERSION_gpsd ?= "2.33"
-PREFERRED_VERSION_hal_nokia770 = "0.5.7"
\ No newline at end of file
+PREFERRED_VERSION_hal_nokia770 = "0.5.7"
============================================================
--- conf/distro/minimal.conf	3659ec6bf90d9eac32c48e7ac2207b2a8c100d28
+++ conf/distro/minimal.conf	bb050fd7b97576649bce4f1605b0c122f9cbea02
@@ -37,6 +37,7 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 # Binutils & Compiler
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 PREFERRED_PROVIDER_virtual/arm-linux-binutils = "binutils-cross"
@@ -45,6 +46,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 PREFERRED_VERSION_binutils ?= "2.18"
 PREFERRED_VERSION_binutils-cross ?= "2.18"
 
@@ -61,11 +63,10 @@ PREFERRED_PROVIDER_virtual/libc = "glibc
 PREFERRED_PROVIDER_virtual/libiconv = "glibc"
 PREFERRED_PROVIDER_virtual/libintl = "glibc"
 PREFERRED_PROVIDER_virtual/libc = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.23"
 PREFERRED_VERSION_glibc ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 
 #
 # Bootstrap & Init
============================================================
--- conf/distro/nylon.conf	55b55fd58b093f18dc69ad389287e77c548403ae
+++ conf/distro/nylon.conf	93b37b27f5a8b665966cdcd8b90187ec5428f2bc
@@ -17,6 +17,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 INHERIT += "linux-kernel-base"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -35,6 +36,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 PREFERRED_VERSION_kismet = "2005-01-R1"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.3.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.3.4"
 PREFERRED_VERSION_gcc-cross = "3.3.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.3.4" 
 PREFERRED_VERSION_gcc = "3.3.4"
@@ -50,6 +52,7 @@ PREFERRED_VERSION_gcc-cross-initial_mtx-
 
 #PREFERRED_VERSION_glibc_mtx-3 = "2.3.5+cvs20050627"
 PREFERRED_VERSION_gcc-cross-initial_mtx-3 = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate_mtx-3 = "3.4.4"
 PREFERRED_VERSION_gcc-cross_mtx-3 = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk_mtx-3 = "3.4.4" 
 PREFERRED_VERSION_gcc_mtx-3 = "3.4.4"
@@ -71,6 +74,7 @@ PREFERRED_VERSION_gcc-cross-initial_mtx-
 
 #PREFERRED_VERSION_glibc_mtx-3a = "2.3.5+cvs20050627"
 PREFERRED_VERSION_gcc-cross-initial_mtx-3a = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate_mtx-3a = "3.4.4"
 PREFERRED_VERSION_gcc-cross_mtx-3a = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk_mtx-3a = "3.4.4" 
 PREFERRED_VERSION_gcc_mtx-3a = "3.4.4"
============================================================
--- conf/distro/openprotium.conf	fa9e89af0f2d1321bd93fb2c08dfc7fa720a7d51
+++ conf/distro/openprotium.conf	982f64d7db8d48f170cd1aa284d266ddbc1030ce
@@ -45,9 +45,9 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.2"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.2"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.2"
 
 PREFERRED_VERSION_glibc		     = "2.6.1"
-PREFERRED_VERSION_glibc-intermediate = "2.6.1"
 PREFERRED_VERSION_glibc-initial      = "2.6.1"
 
 PREFERRED_VERSION_linux-libc-headers = "2.6.11.1"
@@ -59,11 +59,12 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREF
 #
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils = "binutils-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial = "gcc-cross-initial"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = "gcc-cross-intermediate"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc = "gcc-cross"
 PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross"
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-linux-libc-for-gcc = "glibc"
 PREFERRED_PROVIDER_virtual/powerpc-linux-libc-initial = "glibc-initial"
 
 PREFERRED_PROVIDER_virtual/libc     = "glibc"
============================================================
--- conf/distro/oplinux-uclibc.conf	ded77d3149a141de656d62e5c1ed7e161f1e500d
+++ conf/distro/oplinux-uclibc.conf	af3019dae5fb6717311d042ac2f3114f99cdd50e
@@ -43,12 +43,14 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 # Binutils & Compiler
 #
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
 PREFERRED_VERSION_gcc ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
 PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
 
============================================================
--- conf/distro/oplinux.conf	0dbc9a811a5f426f5d3e4ead5a20330b56e51e41
+++ conf/distro/oplinux.conf	007c319d5693215e75c73b455c5c76a0f2465501
@@ -35,6 +35,7 @@ PREFERRED_PROVIDERS += "virtual/${TARGET
 TARGET_OS = "linux"
 
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross"
 
@@ -51,14 +52,14 @@ PREFERRED_PROVIDER_virtual/libc ?= "glib
 PREFERRED_PROVIDER_virtual/libc ?= "glibc"
 
 
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc-intermediate"
-PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-oplinux-linux-gnueabi-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/armeb-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/powerpc-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/mipsel-oplinux-linux-libc-for-gcc = "glibc"
+PREFERRED_PROVIDER_virtual/sparc-oplinux-linux-libc-for-gcc = "glibc"
 
 
 
@@ -84,6 +85,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_gcc-cross ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-sdk ?= "4.1.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "4.1.1"
 
 PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
 PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
@@ -96,7 +98,6 @@ PREFERRED_VERSION_glibc-initial ?= "2.5"
 PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
 
 PREFERRED_VERSION_glibc-initial ?= "2.5"
-PREFERRED_VERSION_glibc-intermediate ?= "2.5"
 PREFERRED_VERSION_glibc ?= "2.5"
 
 PCMCIA_MANAGER = "pcmciautils"
============================================================
--- conf/distro/sharprom-compatible.conf	866d17894061cd031cda619513332fa012433fa3
+++ conf/distro/sharprom-compatible.conf	89b78178c717a75e6dc950636c6903fbfb6fb989
@@ -41,6 +41,7 @@ PREFERRED_PROVIDER_virtual/arm-linux-gcc
 PREFERRED_PROVIDER_virtual/arm-linux-gcc = "sharprom-toolchain-native" 
 PREFERRED_PROVIDER_linux-libc-headers = "linux-libc-headers"
 PREFERRED_PROVIDER_virtual/arm-linux-gcc-initial = "sharprom-toolchain-native"
+PREFERRED_PROVIDER_virtual/arm-linux-gcc-intermediate = "sharprom-toolchain-native"
 
 PREFERRED_VERSION_glibc = "2.2.5"
 
============================================================
--- conf/distro/ucslugc.conf	13de2c9a77700ae97b0f7a3dbb79971cb6451ca6
+++ conf/distro/ucslugc.conf	bb32cc5c8cbf8d2446f2bf2eef140a2ccd04ee1d
@@ -10,6 +10,7 @@ PREFERRED_VERSION_gcc-cross-initial = "3
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc = "3.4.4"
 
============================================================
--- conf/distro/unslung.conf	0ef6d906a67568b77e1f68fc1ac5c65f65586c67
+++ conf/distro/unslung.conf	a7d66feda58ef5de37cbaf33395cb0dd4e1e7586
@@ -42,6 +42,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 
 # Select between multiple alternative providers, if more than one is eligible.
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
@@ -54,6 +55,7 @@ PREFERRED_VERSION_gcc-cross-initial ?= "
 PREFERRED_VERSION_binutils ?= "2.15.94.0.1"
 PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1"
 PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate ?= "3.4.4"
 PREFERRED_VERSION_gcc-cross ?= "3.4.4"
 PREFERRED_VERSION_gcc ?= "3.4.4"
 PREFERRED_VERSION_glibc ?= "2.2.5"
============================================================
--- conf/distro/wrt54oe.conf	9d556281a94a6474ec9b7e6edffabcecd876b083
+++ conf/distro/wrt54oe.conf	511263e0f8d97edcbcab96283a7c703b27f7072b
@@ -14,11 +14,13 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 TARGET_OS = "linux-uclibc"
 
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}libc-for-gcc:uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
+PREFERRED_VERSION_gcc-cross-intermediate = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc-cross-sdk = "3.4.4" 
 PREFERRED_VERSION_gcc = "3.4.4"
============================================================
--- conf/local.conf.sample	fa7f5ad0f812c943367b2c88b4e4f7165797959d
+++ conf/local.conf.sample	5164ed855456a3c58975fcfbad1c9da8dd8d60f2
@@ -51,6 +51,7 @@ PREFERRED_PROVIDERS += " virtual/${TARGE
 PREFERRED_PROVIDERS = "virtual/qte:qte virtual/libqpe:libqpe-opie"
 PREFERRED_PROVIDERS += " virtual/libsdl:libsdl-x11"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
+PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc-intermediate:gcc-cross-intermediate"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}gcc:gcc-cross"
 PREFERRED_PROVIDERS += " virtual/${TARGET_PREFIX}g++:gcc-cross"
 
============================================================
--- conf/machine/native.conf	9f73a28ea65b27265df3e4afa2107401f9463ead
+++ conf/machine/native.conf	e4b8c17ba26581950b67bf9e306d9f1664c0741f
@@ -7,7 +7,7 @@ PREFERRED_PROVIDER_virtual/kernel = "nat
 VENDOR = "-oe"
 
 PREFERRED_PROVIDER_virtual/kernel = "native-kernel"
-ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc virtual/g++ virtual/libc virtual/libintl virtual/libiconv"
+ASSUME_PROVIDED += "virtual/gcc-initial virtual/gcc-intermediate virtual/gcc virtual/g++"
 ASSUME_PROVIDED += "binutils-cross"
 ASSUME_PROVIDED += "virtual/libiconv virtual/libintl virtual/libc"
 
============================================================
--- packages/eglibc/eglibc-initial.inc	9cc9a816e903fd588bfe9b6529f690d24297a54b
+++ packages/eglibc/eglibc-initial.inc	4b2b73384f3c8f940e42387057da88a76435f44c
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,11 +9,13 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \
+        (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+        find ${S} -name "configure" | xargs touch
 	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+		--prefix=/usr \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
-		--enable-hacker-mode
+		--enable-hacker-mode --enable-addons
 }
 
 do_compile () {
@@ -22,8 +24,14 @@ do_stage () {
 
 do_stage () {
 	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
-	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+	includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers \
+	install-bootstrap-headers=yes
+        oe_runmake csu/subdir_lib
 
+        mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+        install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+        ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+                       -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/eglibc/eglibc.inc	20ecb0b8894a6fa79214db154c8cd4e8458d7237
+++ packages/eglibc/eglibc.inc	eef22ba34145bef9522d66a4eb30da587ba3e6a2
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/gcc/gcc-3.4.4.inc	b6121dbf8fda33791722c94759192ce86145319f
+++ packages/gcc/gcc-3.4.4.inc	db48eb2b8c53c3d57d561258a42cace119a70438
@@ -17,6 +17,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/g
 	   file://always-fixincperm.patch;patch=1 \
 	   file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1 \
 	   file://zecke-xgcc-cpp.patch;patch=1 \
+	   file://gcc-libgcc2-inhibit-libc.patch;patch=1 \
 	   file://gcc4-mtune-compat.patch;patch=1"
 
 SRC_URI += "file://gcc34-configure.in.patch;patch=1"
============================================================
--- packages/gcc/gcc-configure-cross.inc	703d1979546f41f4a81d5aed72bf335e2bc5c69e
+++ packages/gcc/gcc-configure-cross.inc	4882906171abcb3738dfefb319ad714053c3adbe
@@ -7,10 +7,6 @@ EXTRA_OECONF_PATHS = "--with-local-prefi
                       --with-sysroot=${STAGING_DIR_TARGET} \
                       --with-build-sysroot=${STAGING_DIR_TARGET}"
 
-do_configure_prepend () {
-	rm -f ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
 do_compile_prepend () {
 	export CC="${BUILD_CC}"
 	export AR_FOR_TARGET="${TARGET_SYS}-ar"
============================================================
--- packages/gcc/gcc-cross-initial.inc	ad4596bca70fbc850a629b1582fafb6479bcb65d
+++ packages/gcc/gcc-cross-initial.inc	6dc1ca2688a86e10d96b345c271514ca7e6b0f1e
@@ -1,6 +1,4 @@ DEPENDS = "virtual/${TARGET_PREFIX}binut
 DEPENDS = "virtual/${TARGET_PREFIX}binutils"
-# @todo Please add comment on why this is (still?) needed?
-DEPENDS += "${@['virtual/${TARGET_PREFIX}libc-initial',''][bb.data.getVar('TARGET_ARCH', d, 1) in ['arm', 'armeb', 'mips', 'mipsel', 'powerpc']]}"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
 PACKAGES = ""
 
@@ -8,6 +6,7 @@ EXTRA_OECONF = "--with-local-prefix=${ST
 # sysroot is needed in case we use libc-initial
 EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
 		--with-newlib \
+		--without-headers \
 		--disable-shared \
 		--disable-threads \
 		--disable-multilib \
@@ -19,11 +18,6 @@ EXTRA_OECONF = "--with-local-prefix=${ST
 		--with-build-sysroot=${STAGING_DIR_TARGET} \
 		${@get_gcc_fpu_setting(bb, d)}"
 
-do_stage_prepend () {
-	mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}
-	ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
 do_install () {
 	:
 }
============================================================
--- packages/glibc/glibc-initial.inc	0480105971d23c66b379db96774c07f2a0913989
+++ packages/glibc/glibc-initial.inc	7a1a79ecca0658f29a905c2140d27445a57bad55
@@ -1,5 +1,5 @@ SECTION = "libs"
 SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
@@ -9,7 +9,8 @@ do_configure () {
 do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+	find ${S} -name "configure" | xargs touch
+	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
 		--enable-hacker-mode
@@ -30,8 +31,11 @@ do_stage () {
 }
 
 do_stage () {
-	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+	oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
+	includedir='${layout_includedir}' prefix='${layout_prefix}' \
+	install-bootstrap-headers=yes install-headers
 
+	oe_runmake csu/subdir_lib
 	# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
 	# so do them by hand.  We can tolerate an empty stubs.h for the moment.
 	# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
@@ -42,6 +46,10 @@ do_stage () {
 	if [ -e ${B}/bits/stdio_lim.h ]; then
 		cp ${B}/bits/stdio_lim.h  ${STAGING_INCDIR}/bits/
 	fi
+	mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+	install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
 }
 
 do_install () {
============================================================
--- packages/glibc/glibc-initial_2.5.bb	c87dce64dc313f734e0764420892401b0c7301ee
+++ packages/glibc/glibc-initial_2.5.bb	717f9cbf298c7866010b883caec46b01814a1ca4
@@ -5,7 +5,7 @@ do_configure () {
 	sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
 	chmod +x ${S}/configure
 	unset CFLAGS
-	CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+	${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
 		--without-cvs --disable-sanity-checks \
 		--with-headers=${STAGING_INCDIR} \
 		--enable-hacker-mode
============================================================
--- packages/glibc/glibc-stage.inc	8abe1d7d9fd4c34d725a7f26db2110bb66ec3e16
+++ packages/glibc/glibc-stage.inc	9add53332fea43aff1a7efdeba79858facecfc1a
@@ -3,7 +3,7 @@ do_stage() {
 	oe_runmake 'install_root=${STAGING_DIR_HOST}' \
 		   'includedir=${layout_includedir}' 'libdir=${layout_libdir}' 'slibdir=${layout_base_libdir}' \
 		   '${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6' \
-		   install-headers install-lib
+		   install
 
 	install -d ${STAGING_INCDIR}/gnu \
 		   ${STAGING_INCDIR}/bits \
@@ -15,9 +15,4 @@ do_stage() {
 		h=`echo $r|sed -e's,\.x$,.h,'`
 		install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/
 	done
-	for i in libc.a libc_pic.a libc_nonshared.a; do
-		install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_libdir}/ || die "failed to install $i"
-	done
-	echo 'GROUP ( ${layout_base_libdir}/libpthread.so.0 ${layout_libdir}/libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libpthread.so
-	echo 'GROUP ( ${layout_base_libdir}/libc.so.6 ${layout_libdir}/libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libc.so
 }
============================================================
--- packages/glibc/glibc.inc	94a32473f1193137d45da97d6ed786ae9e755094
+++ packages/glibc/glibc.inc	d7da3e08d193524257645bad4468dbb3dd7ed044
@@ -4,12 +4,12 @@ LICENSE = "LGPL"
 PRIORITY = "required"
 LICENSE = "LGPL"
 # nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
 #this leads to circular deps, so lets not add it yet
 #RDEPENDS_ldd += " bash"
 # nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 inherit autotools
============================================================
--- packages/glibc/glibc_2.3.6.bb	a180c138b01077df8b234264ee6abd46cbf72314
+++ packages/glibc/glibc_2.3.6.bb	7ce57da5312cee1deb44c097867123d097f84146
@@ -19,13 +19,16 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gli
            ${CROSSTOOL_PATCH_URL}glibc-2.3.6-fix-pr631.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}glibc-fp-byteorder.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}glibc-mips-bootstrap-gcc-header-install.patch;patch=1 \
+           ${CROSSTOOL_PATCH_URL}arm-ctl_bus_isa.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}make-install-lib-all.patch;patch=1 \
            ${CROSSTOOL_PATCH_URL}maybe/glibc-2.3.6-allow-gcc-4.0-powerpc32.patch;patch=1 \
            file://glibc-2.3.6-bind-already-defined-on-powerpc.patch;patch=1 \
            file://glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
            file://glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
-           file://late-install-loop-break.patch \
-	   \
+           file://late-install-loop-break.patch;patch=1 \
+           file://glibc-arm-socket-weakalias.patch;patch=1 \
+           file://glibc-2.3.6-linuxthreads-pthread-raise.patch;patch=1 \
+           file://glibc-cross_sunrpc.patch;patch=1 \
            file://etc/ld.so.conf \
 	   file://generate-supported.mk"
 
@@ -60,7 +63,7 @@ do_configure () {
 		exit 1
 	fi
 	(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
-	CPPFLAGS="" oe_runconf
+	CPPFLAGS="" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes oe_runconf
 }
 
 rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
============================================================
--- packages/glibc/glibc_2.5.bb	3c1686afff4b72f25b0ee4879fa7df5bed91c6b3
+++ packages/glibc/glibc_2.5.bb	330520507426ad66fcbf5a266a8aa5845504a744
@@ -48,6 +48,7 @@ SRC_URI = "\
   file://glibc-check_pf.patch;patch=1;pnum=0 \
   file://zecke-sane-readelf.patch;patch=1 \
   file://ldd-unbash.patch;patch=1 \
+  file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
   file://generic-bits_select.h \
   file://generic-bits_types.h \
   file://generic-bits_typesizes.h \
============================================================
--- packages/glibc/glibc_2.6.1.bb	8b5e0d298c84d71b8a15be26527883a393e5483d
+++ packages/glibc/glibc_2.6.1.bb	17745de42ba1ebc4c1d4242154c294e27aa5a73c
@@ -56,6 +56,7 @@ SRC_URI = "\
   file://etc/ld.so.conf \
   file://generate-supported.mk \
   file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
+  file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
 "
 
 # Build fails on sh3 and sh4 without additional patches
============================================================
--- packages/glibc/glibc_2.7.bb	02c169c2754286db4f842bbe42a680e438defb73
+++ packages/glibc/glibc_2.7.bb	73c2cf870a5fd5c6da7625ada47fefdf0948c1be
@@ -12,7 +12,7 @@ TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGE
 TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
 
 
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
 GLIBC_ADDONS ?= "ports,nptl,libidn"
 
@@ -58,6 +58,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gli
 #	   file://zecke-sane-readelf.patch;patch=1 \
            file://ldd-unbash.patch;patch=1 \
 	   file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
+	   file://all_glibc-i586-chk.patch;patch=1 \
+	   file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
 	   file://generic-bits_select.h \
 	   file://generic-bits_types.h \
 	   file://generic-bits_typesizes.h \
============================================================
--- packages/meta/external-toolchain.bb	ebcd8679c393d51824573b5a70c7a071f8521117
+++ packages/meta/external-toolchain.bb	fe769763ba169fd561e2c5f1153726281afa9952
@@ -6,6 +6,7 @@ PROVIDES = "\
     linux-libc-headers \
     virtual/${TARGET_PREFIX}gcc \
     virtual/${TARGET_PREFIX}gcc-initial \
+    virtual/${TARGET_PREFIX}gcc-intermediate \
     virtual/${TARGET_PREFIX}binutils \
     virtual/${TARGET_PREFIX}libc-for-gcc \
     virtual/libc \
============================================================
--- packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	63c582236d5e631780a864456ba4db4862602a0e
+++ packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb	8e92e1882cb3bc63515abe5cc42b6577706e118d
@@ -12,6 +12,7 @@ PROVIDES_sharprom-compatible = "\
   virtual/libiconv \
   virtual/arm-linux-gcc \
   virtual/arm-linux-libc-for-gcc \
+  virtual/arm-linux-gcc-intermediate \
   virtual/arm-linux-gcc-initial "
 PR = "r2"
 
============================================================
--- packages/uclibc/uclibc-initial_0.9.26.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.26.bb	adbd582e0383361294af44a087a3221e9818794b
@@ -3,20 +3,28 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+                libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+                libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+                libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.27.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.27.bb	30ffb81760fc3a3d952d590bac5a27ec7b14224f
@@ -3,20 +3,29 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+                libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+                libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+                libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.28.bb	4add23305e16ae6d0973c44aae89b3f01d0f5bf8
+++ packages/uclibc/uclibc-initial_0.9.28.bb	5a0004c3d966c307216a21a7e40317d6af73b78e
@@ -3,20 +3,29 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
 do_stage() {
 	# Install initial headers into the cross dir
-	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
-		RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		libc/sysdeps/linux/${TARGET_ARCH}/crt1.o \
+		libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+		libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
-	rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_0.9.29.bb	d9cf01fb4dec69ff1f796d39c9078030982eacca
+++ packages/uclibc/uclibc-initial_0.9.29.bb	accc40b675983da7e7ed6fbb89968dda0292fa44
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -12,12 +12,19 @@ do_stage() {
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		pregen install_dev
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	install -d ${CROSS_DIR}/${TARGET_SYS}	
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc-initial_svn.bb	2715cc791b3fdd1b8e62328291e3ef33973bacc0
+++ packages/uclibc/uclibc-initial_svn.bb	766c264be7d787f2285f02b13a392f43cb2a87d2
@@ -3,7 +3,7 @@ FILESPATH = "${@base_set_filespath([ '${
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
 
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
 PACKAGES = ""
 
@@ -11,12 +11,18 @@ do_stage() {
 	# Install initial headers into the cross dir
 	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
 		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
-		pregen install_dev
+		install_headers
+	make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+		lib/crt1.o lib/crti.o lib/crtn.o
 
 	ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
 
 	# This conflicts with the c++ version of this header
 	rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+	install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+	${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+		-o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
 }
 
 do_install() {
============================================================
--- packages/uclibc/uclibc.inc	48b0ba2e4cff05071b3b812ef0be0861870cd00c
+++ packages/uclibc/uclibc.inc	ff1fea0ac9072d1d07a86491024bfeabe09bac96
@@ -22,7 +22,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}binut
 PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
-	   virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+	   virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
 RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
 
 # Blackfin needs a wrapper around ld
============================================================
--- packages/uclibc/uclibc_0.9.28.bb	0192ea3da2f460a433b9294dceec5bd61b6a456e
+++ packages/uclibc/uclibc_0.9.28.bb	0ff124f28aae624c8563b4c4c08a382e90969a0c
@@ -34,6 +34,7 @@ THUMBSTUFF = " \
               file://dl-startup.h.patch;patch=1 \
               file://dl-string.h.patch;patch=1 \
               file://dl-sysdep.h.patch;patch=1 \
+              file://uclibc-libgcc-eh.patch;patch=1 \
              "
 
 SRC_URI_append_arm = " ${THUMBSTUFF} "
============================================================
--- packages/uclibc/uclibc_0.9.29.bb	cbf70d92d0ec5221de098ec3bc7f8ad20c014b7a
+++ packages/uclibc/uclibc_0.9.29.bb	4a756a3b6c8f5f24c12ad91b863465b64bd6d6f0
@@ -8,7 +8,7 @@ PR = "r19"
 #
 UCLIBC_BASE ?= "0.9.29"
 PR = "r19"
-DEFAULT_PREFERENCE = "3"
+DEFAULT_PREFERENCE = "1"
 
 require uclibc.inc
 

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-23  9:04       ` Khem Raj
@ 2008-07-24  9:10         ` Richard Purdie
  2008-07-24 16:05           ` Richard Purdie
  2008-07-28  6:27           ` SH7760 Problems Stefano Regno
  0 siblings, 2 replies; 20+ messages in thread
From: Richard Purdie @ 2008-07-24  9:10 UTC (permalink / raw)
  To: openembedded-devel

Hi,

On Wed, 2008-07-23 at 02:04 -0700, Khem Raj wrote:
> I have done some more builds particularly uclibc 0.9.27+ and had to fix
> uclibc recipes. 
> 
> Here is next updated patch.

Firstly, thanks for your work on this. It is is useful and appreciated,
sorry I've not got to testing this sooner!

I've patched Poky with a patch similar to yours and am in the process of
running some tests. So far its all looking good, I expect the final
tests to complete later today and will report back when they complete.
If they work out, I'm happy for this to be committed.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-24  9:10         ` Richard Purdie
@ 2008-07-24 16:05           ` Richard Purdie
  2008-07-24 16:18             ` Koen Kooi
  2008-07-28  6:27           ` SH7760 Problems Stefano Regno
  1 sibling, 1 reply; 20+ messages in thread
From: Richard Purdie @ 2008-07-24 16:05 UTC (permalink / raw)
  To: openembedded-devel

On Thu, 2008-07-24 at 10:10 +0100, Richard Purdie wrote:
> I've patched Poky with a patch similar to yours and am in the process of
> running some tests. So far its all looking good, I expect the final
> tests to complete later today and will report back when they complete.
> If they work out, I'm happy for this to be committed.

My tests all worked out apart from some unrelated issues so I'm happy
for this to be committed.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-24 16:05           ` Richard Purdie
@ 2008-07-24 16:18             ` Koen Kooi
  2008-07-25  7:33               ` Khem Raj
  0 siblings, 1 reply; 20+ messages in thread
From: Koen Kooi @ 2008-07-24 16:18 UTC (permalink / raw)
  To: openembedded-devel

Richard Purdie wrote:
> On Thu, 2008-07-24 at 10:10 +0100, Richard Purdie wrote:
>> I've patched Poky with a patch similar to yours and am in the process of
>> running some tests. So far its all looking good, I expect the final
>> tests to complete later today and will report back when they complete.
>> If they work out, I'm happy for this to be committed.
>
> My tests all worked out apart from some unrelated issues so I'm happy
> for this to be committed.

My small test came out ok as well, so I'm happy for this to be committed 
as well.

regards,

Koen




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-24 16:18             ` Koen Kooi
@ 2008-07-25  7:33               ` Khem Raj
  2008-07-25 10:01                 ` Henning Heinold
  0 siblings, 1 reply; 20+ messages in thread
From: Khem Raj @ 2008-07-25  7:33 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

On (24/07/08 18:18), Koen Kooi wrote:
> Richard Purdie wrote:
>> On Thu, 2008-07-24 at 10:10 +0100, Richard Purdie wrote:
>>> I've patched Poky with a patch similar to yours and am in the process of
>>> running some tests. So far its all looking good, I expect the final
>>> tests to complete later today and will report back when they complete.
>>> If they work out, I'm happy for this to be committed.
>>
>> My tests all worked out apart from some unrelated issues so I'm happy
>> for this to be committed.
>
> My small test came out ok as well, so I'm happy for this to be committed  
> as well.

Thank you Koen and RP for testing it out and ACK'ing. I have committed
the big patch. Let me know of any fallouts and I will try to fix them.

Happy hacking.

-Khem



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-25  7:33               ` Khem Raj
@ 2008-07-25 10:01                 ` Henning Heinold
  2008-07-25 16:06                   ` Khem Raj
  0 siblings, 1 reply; 20+ messages in thread
From: Henning Heinold @ 2008-07-25 10:01 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

On Fri, Jul 25, 2008 at 12:33:04AM -0700, Khem Raj wrote:
> On (24/07/08 18:18), Koen Kooi wrote:
> 
> Thank you Koen and RP for testing it out and ACK'ing. I have committed
> the big patch. Let me know of any fallouts and I will try to fix them.
> 
> Happy hacking.

Hi,

I find the first strange think when using angstroem and uclibc with
armoabi. TARGET_OS is configured at

include/distro/angstrom-uclibc.conf

with
TARGET_OS_UC =
"linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1)
in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in
['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"

and

TARGET_OS ?= "${@['${TARGET_OS_UC}',
'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"

For some reason it dont set TARGET_OS and therefor the sanity checker
bails out.

For now I swtiched back to TARGET_OS = ..., as before and I am able to
build packages again.

Bye,

Henning



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-25 10:01                 ` Henning Heinold
@ 2008-07-25 16:06                   ` Khem Raj
  0 siblings, 0 replies; 20+ messages in thread
From: Khem Raj @ 2008-07-25 16:06 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

On (25/07/08 12:01), Henning Heinold wrote:
> On Fri, Jul 25, 2008 at 12:33:04AM -0700, Khem Raj wrote:
> > On (24/07/08 18:18), Koen Kooi wrote:
> > 
> > Thank you Koen and RP for testing it out and ACK'ing. I have committed
> > the big patch. Let me know of any fallouts and I will try to fix them.
> > 
> > Happy hacking.
> 
> Hi,
> 
> I find the first strange think when using angstroem and uclibc with
> armoabi. TARGET_OS is configured at
> 
> include/distro/angstrom-uclibc.conf
> 
> with
> TARGET_OS_UC =
> "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1)
> in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in
> ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
> 
> and
> 
> TARGET_OS ?= "${@['${TARGET_OS_UC}',
> 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
> 
> For some reason it dont set TARGET_OS and therefor the sanity checker
> bails out.
> 
> For now I swtiched back to TARGET_OS = ..., as before and I am able to
> build packages again.

You can add this to your local.conf file. if you make it hard assignment
you wont be able to override it in local.conf for the architectures not
mentioned in this conditional.

Thanks

-Khem

> 
> Bye,
> 
> Henning
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel



^ permalink raw reply	[flat|nested] 20+ messages in thread

* SH7760 Problems
  2008-07-24  9:10         ` Richard Purdie
  2008-07-24 16:05           ` Richard Purdie
@ 2008-07-28  6:27           ` Stefano Regno
  1 sibling, 0 replies; 20+ messages in thread
From: Stefano Regno @ 2008-07-28  6:27 UTC (permalink / raw)
  To: openembedded-devel


> Hi all i have problem with some drivers of a motherboard SH7760 could sameone know where i could find video drivers and kernel about it?
>   

Tnx
>
>   


-- 
Peace cannot be kept by force; it can only be achieved by understanding --Albert Einstein





^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-07-15  1:58 [RFC]: Toolchain build sequence alteration Khem Raj
  2008-07-15  7:34 ` Henning Heinold
  2008-07-16  8:10 ` Khem Raj
@ 2008-08-02 12:03 ` Koen Kooi
  2008-08-02 15:14   ` Phil Blundell
  2 siblings, 1 reply; 20+ messages in thread
From: Koen Kooi @ 2008-08-02 12:03 UTC (permalink / raw)
  To: openembedded-devel

Khem Raj wrote:
  Currently we do
>
> cross-binutils ->  kernel-headers ->  uclibc-headers ->  cross-gcc
> (--disable-shared) ->  uclibc ->  cross-gcc
>
> I think this can be improved and I implemented the following steps.
>
> cross-binutils ->  cross-gcc (--disable-shared) ->  kernel-headers ->
> eglibc/glibc/uclibc headers + startup files + dummy libc.so ->  cross-gcc
> (--enable-shared) ->  glibc/eglibc/uclibc ->  cross-gcc

As we've noticed this breaks the iconv modules from glibc since they get 
a NEEDED entry for /lib/libc.so (which in in libc6-dev) instead of 
/lib/libc.so.6 (which in is libc6). You attempted to fix this with:

--- a/packages/gcc/gcc-cross-intermediate.inc
+++ b/packages/gcc/gcc-cross-intermediate.inc
@@ -16,6 +16,13 @@ EXTRA_OECONF = "--with-local-

+do_stage_prepend () {
+	# get rid of dummy libc.so
+	if [ -z "`file ${STAGING_DIR_TARGET}${layout_libdir}/libc.so | grep 
"ASCII C program text"`" ]; then
+		rm -rf ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
+	fi
+}

That breaks building a toolchain from scratch with "cannot find -lc" 
during glibc-cross-intermediate staging. So I committed this:

--- a/packages/gcc/gcc-cross-intermediate.inc
+++ b/packages/gcc/gcc-cross-intermediate.inc
@@ -16,7 +16,7 @@ EXTRA_OECONF = "--with-local-

-do_stage_prepend () {
+do_stage_append () {
  	# get rid of dummy libc.so

This fixes builds from scratch for me (tried with armv5te and armv7a), 
but I haven't tested if it breaks iconv again since I value working 
builds over working iconv atm. I'm fairly sure it doesn't break iconv, 
because the bogus libc.so is gone before glibc gets built, but as I 
said, I haven't tested it.

regards,

Koen




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-08-02 12:03 ` [RFC]: Toolchain build sequence alteration Koen Kooi
@ 2008-08-02 15:14   ` Phil Blundell
  2008-08-02 15:45     ` Koen Kooi
  0 siblings, 1 reply; 20+ messages in thread
From: Phil Blundell @ 2008-08-02 15:14 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

On Sat, 2008-08-02 at 14:03 +0200, Koen Kooi wrote:
> -do_stage_prepend () {
> +do_stage_append () {
>   	# get rid of dummy libc.so
> 
> This fixes builds from scratch for me (tried with armv5te and armv7a), 
> but I haven't tested if it breaks iconv again since I value working 
> builds over working iconv atm. I'm fairly sure it doesn't break iconv, 
> because the bogus libc.so is gone before glibc gets built, but as I 
> said, I haven't tested it.

Iconv does still seem to be OK after this change.  However, the fact
that this was needed indicates that something in gcc-c-i's do_stage()
method is trying to link with the dummy libc.so, which might be causing
some other subtle breakage along the lines of the original iconv
problem.  Some scrutiny will be needed to figure out what exactly
gcc-c-i is doing with libc.so at this point and whether or not it is
safe to let it do so.

p.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-08-02 15:14   ` Phil Blundell
@ 2008-08-02 15:45     ` Koen Kooi
  2008-08-03  2:47       ` Khem Raj
  0 siblings, 1 reply; 20+ messages in thread
From: Koen Kooi @ 2008-08-02 15:45 UTC (permalink / raw)
  To: openembedded-devel

Phil Blundell wrote:
> On Sat, 2008-08-02 at 14:03 +0200, Koen Kooi wrote:
>> -do_stage_prepend () {
>> +do_stage_append () {
>>    	# get rid of dummy libc.so
>>
>> This fixes builds from scratch for me (tried with armv5te and armv7a),
>> but I haven't tested if it breaks iconv again since I value working
>> builds over working iconv atm. I'm fairly sure it doesn't break iconv,
>> because the bogus libc.so is gone before glibc gets built, but as I
>> said, I haven't tested it.
>
> Iconv does still seem to be OK after this change.

Great! Thanks for testing this.

> However, the fact
> that this was needed indicates that something in gcc-c-i's do_stage()
> method is trying to link with the dummy libc.so, which might be causing
> some other subtle breakage along the lines of the original iconv
> problem.  Some scrutiny will be needed to figure out what exactly
> gcc-c-i is doing with libc.so at this point and whether or not it is
> safe to let it do so.

I suspect it's a side effect of using 'make install' for do_stage, but 
then again, I'm not a toolchain or gcc expert :)

regards,

Koen





^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [RFC]: Toolchain build sequence alteration.
  2008-08-02 15:45     ` Koen Kooi
@ 2008-08-03  2:47       ` Khem Raj
  0 siblings, 0 replies; 20+ messages in thread
From: Khem Raj @ 2008-08-03  2:47 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel

On Sat, Aug 2, 2008 at 8:45 AM, Koen Kooi <k.kooi@student.utwente.nl> wrote:
> Phil Blundell wrote:
>>
>> On Sat, 2008-08-02 at 14:03 +0200, Koen Kooi wrote:
>>>
>>> -do_stage_prepend () {
>>> +do_stage_append () {
>>>        # get rid of dummy libc.so
>>>
>>> This fixes builds from scratch for me (tried with armv5te and armv7a),
>>> but I haven't tested if it breaks iconv again since I value working
>>> builds over working iconv atm. I'm fairly sure it doesn't break iconv,
>>> because the bogus libc.so is gone before glibc gets built, but as I
>>> said, I haven't tested it.
>>
>> Iconv does still seem to be OK after this change.
>
> Great! Thanks for testing this.
>
>> However, the fact
>> that this was needed indicates that something in gcc-c-i's do_stage()
>> method is trying to link with the dummy libc.so, which might be causing
>> some other subtle breakage along the lines of the original iconv
>> problem.  Some scrutiny will be needed to figure out what exactly
>> gcc-c-i is doing with libc.so at this point and whether or not it is
>> safe to let it do so.
>
> I suspect it's a side effect of using 'make install' for do_stage, but then
> again, I'm not a toolchain or gcc expert :)

I think using make install for staging should not be done. We should
generate complete package and then incrementally populate staging as
we populate rootfs. It will need cross ipk installation support.

My two cents.

Khem



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2008-08-03  2:49 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-15  1:58 [RFC]: Toolchain build sequence alteration Khem Raj
2008-07-15  7:34 ` Henning Heinold
2008-07-16  8:10 ` Khem Raj
2008-07-16  8:46   ` Koen Kooi
2008-07-16 15:27     ` Khem Raj
2008-07-16 20:43   ` Leon Woestenberg
2008-07-17  8:43     ` Khem Raj
2008-07-22  0:28     ` Khem Raj
     [not found]     ` <20080720014112.GA13759@oberlord>
2008-07-23  9:04       ` Khem Raj
2008-07-24  9:10         ` Richard Purdie
2008-07-24 16:05           ` Richard Purdie
2008-07-24 16:18             ` Koen Kooi
2008-07-25  7:33               ` Khem Raj
2008-07-25 10:01                 ` Henning Heinold
2008-07-25 16:06                   ` Khem Raj
2008-07-28  6:27           ` SH7760 Problems Stefano Regno
2008-08-02 12:03 ` [RFC]: Toolchain build sequence alteration Koen Kooi
2008-08-02 15:14   ` Phil Blundell
2008-08-02 15:45     ` Koen Kooi
2008-08-03  2:47       ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.