Creating a Cross Compiler To cross-compile, you need three packages binutils (assembler, linker) gcc (the compiler proper) glibc or another libc implementation As a minimal fallback, you can use "newlib" The steps to build the compiler are: compiling binutils compiling the bootstrap gcc compiling libc compiling the final gcc (with C++, Java etc) Most embedded distributions nowadays build the compiler first Still, you can build your own, especially for uC targets