http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45906
--- Comment #11 from Samson Luk <samsonluk at gmail dot com> 2010-10-07 01:47:23 UTC --- (In reply to comment #8) > 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). Understood, it mean I have to build the Cross Compiler which can be run in the build machine, and this normal cross have to be the same version as the Canadian cross!!! > 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 Now I have to use Ubuntu gcc 4.4.3 to compile gcc 4.5.1 using: build=i686-pc-linux-gnu host=i686-pc-linux-gnu target=arm-none-linux-gnueabi and I use the output normal cross which is in version 4.5.1 to: build=i686-pc-linux-gnu host=arm-none-linux-gnueabi target=arm-none-linux-gnueabi and the output Canadian cross become 4.5.1. Finally I can copy this Canadian cross together with the normal cross's target libraries to the arm machine. Many thanks for the clear and detailed explanation! Do you know anywhere I can find FAQ or documents for the mentioned procedures? I have google for half a day and I found I lot on how to build a Cross Toolchain and no mention of how to build a Canadian Cross compiler, especially for my case when the Canadian Cross is one major version up.