The naming of cross compilers is a tuple that describes the target CPU (arm, arm-eb, arm-el...), the 'manufacturer' of the compiler (none, or you create your own compiler and name it accordingly), something about the target environment (linux, bare-metal, eabi, libc, uclibc, many other possiblities), and the name of the tool itself (gcc, g++, ld, etc.) For ARM CPUs, there is a plethora of different possibilities for the target host architecture. You can build toolchains for either of two basic ABIs, toolchains that use hardware floating point (or not), toolchains that use various C libraries, toolchains that target some OS (Linux, vxWorks, RTEMS, etc) or that target OS-less (bare-metal) hosts. All of these combinations can be encoded into the name of the toolchain components; there is no rigorous specification or standard that controls the naming convention. With luck, you will know enough about the nature of your particular target architecture to choose one that is appropriate for your needs, based on the name. There are other things that may be relevant, such as what versions of C libraries and kernel headers were used in the building of the toolchain. Usually, it requires finding some supporting documentation to fully understand the nature of the toolchain, especially for ARM CPUs.
Or, you can roll your own, just to be sure.
--- rod.
|