Here is the difference among cross, canadian and cross-native builds on --build --host --target:


build and host the same (mostly on x86); target is different, which will be ARM, MIPS, PPC, etc.


build, host and target are all different. e.g. For windows build of linaro binaries release, --build=i686-build_pc-linux-gnu --host=i586-host_pc-mingw32msvc --target=arm-linux-gnueabihf


host and target is the same. build is different (mostly on x86). Like CANADIAN build, you need a cross toolchain first.

Please try my hack based on Linaro crosstool-ng Canadian windows build.

  • wget

  • tar -xf crosstool-ng-linaro-1.13.1-4.8-2014.02.tar.bz2
  • cd crosstool-ng-linaro-1.13.1-4.8-2014.02
  • sed -i 's/i586-mingw32msvc/arm-linux-gnueabihf/g' contrib/linaro/
  • sed -i 's/libiconv//g' (libiconv is only for Windows)
  • sed -i 's/CT_BUILD_USE_LSBCC=y//g' contrib/linaro/ (LSBCC does not work on some system)
  • To get an arm-linux-gnueabihf toolchain: make -f contrib/linaro/ TARGETS=arm-linux-gnueabihf
  • To get an aarch64-linux-gnu toolchain: make -f contrib/linaro/ TARGETS=aarch64-linux-gnu

Finally you will get a toolchain at


(Please ignore the fails at the end to package windows staffs. )

To build your gcc,

  • Replace the gcc-linaro-4.8-2014.02 at ./builds/...-win32/.build/src
  • Remove builds/stamp/...-win32-build
  • make -f contrib/linaro/ ...

WorkingGroups/ToolChain/cross-native (last modified 2014-04-14 01:00:06)