http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45906
--- Comment #8 from joseph at codesourcery dot com <joseph at codesourcery dot com> 2010-10-06 18:53:27 UTC --- On Wed, 6 Oct 2010, samsonluk at gmail dot com wrote: > Now I understand... seems to me a chicken and egg problem... I am already > using > the latest Cross Toolchain and it only came with gcc/c++ 4.4.1. It seems that > gcc 4.5.x was build successfully, do you mean I have to make use of the new > build gcc to build the c++ 4.5.x? In that case I have to move the new gcc to > the target machine and native build again the whole 4.5.x? In order to do a Canadian cross build - one where build != host (such as your build with build = i686-pc-linux-gnu, host = arm-none-linux-gnueabi, target = arm-none-linux-gnueabi) - you must first have built exactly the same version of the compiler as a normal cross to the same target (build = host - that is, in your case, build = host = i686-pc-linux-gnu, target = arm-none-linux-gnueabi). Once you have a build-x-target compiler with exactly the same version as the Canadian cross you are trying to build, you can then build that Canadian cross. You also need a build-x-host compiler, which need not be the same version as the Canadian cross you are trying to build. (Thus, if you are building 4.5 with build = i686-pc-linux-gnu, host = i686-mingw32, target = arm-none-linux-gnueabi, then you need a compiler that runs on i686-pc-linux-gnu and targets i686-mingw32, any reasonable version, and one that runs on i686-pc-linux-gnu and targets arm-none-linux-gnueabi, which must be 4.5.) Once you do have a build-x-target compiler, you can also speed things up by just doing "make all-gcc" (or "make all-host") and copying the target libraries from your build-x-target compiler instead of rebuilding them.