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.

Reply via email to