The toolchain has to be built according to the capabilities of the target CPU, which includes:
- CPU architecture: ARM, MIPS, x86_64, and so on
- Big- or little-endian operation: Some CPUs can operate in both modes, but the machine code is different for each
- Floating point support: Not all versions of embedded processors implement a hardware floating point unit, in which case the toolchain has to be configured to call a software floating point library instead
- Application Binary Interface (ABI): The calling convention used for passing parameters between function calls
With many architectures, the ABI is constant across the family of processors. One notable exception is ARM. The ARM architecture transitioned to the Extended ...