Build CC supports building two types of cross-compilers:

  1. Stage 1
  2. Stage 2

A "Stage 1" cross-compiler is one that starts with no additional information about a platform other than the name of the cross compiler. Everything for that platform is built directly from the source code. This means that a "Stage 1" cross-compiler is only possible for platforms that have available source code for download. It also means that building the cross-compiler for this platform takes longer and targets a less concrete target -- instead of compiling a cross-compiler that targets a particular collected platform, it targets a platform that is built locally and whose name should match the target.

A "Stage 2" cross-compiler is one that starts with the platform files from an existing running system. These platform files are the development files that would be required to compile code and run executables on the donor system. This includes primarily the system header files and system libraries. The source code for the libraries and headers is not required to be available so you can target systems that do not have all their source code available to build the system libraries locally. The platform files can be collected from any system which can (or could if a compiler were installed) compile code using the "collect-platform" script.