51

I have tried to understand the naming conventions behind the gcc cross-compilers, but there seems to be conflicting answers. I have the following three cross-compilers in my system:

  • arm-none-linux-gnueabi (CodeSourcery ARM compiler for linux)
  • arm-none-eabi (CodeSourcery ARM compiler for bare-metal systems)
  • arm-eabi (Android ARM compiler)

When reading through the GNU libtool manual, it specifies the cross-compiler naming convention as:

cpu-vendor-os (os = system / kernel-system)

This does not seem completely accurate with the compilers in my system. Is the information in the GNU manual old, or have the compiler distributors simply stopped following it?

2 Answers 2

39

The naming comes down to this:

arch-vendor-(os-)abi

So for example:

x86_64-w64-mingw32 = x86_64 architecture (=AMD64), w64 (=mingw-w64 as "vendor"), mingw32 (=win32 API as seen by GCC)

i686-pc-msys = 32-bit (pc=generic name) msys binary

i686-unknown-linux-gnu = 32-bit GNU/linux

And your example specifically:

arm-none-linux-gnueabi = ARM architecture, no vendor, linux OS, and the gnueabi ABI.

The arm-eabi is alike you say, used for Android native apps.

One caveat: Debian uses a different naming, just to be difficult, so be careful if you're on a Debian-based system, as they have different names for eg. i686-pc-mingw32.

Sign up to request clarification or add additional context in comments.

1 Comment

"arm-eabi" naming has nothing to do with Android. EABI - Embedded Application Binary Interface.
2

The fact is that, there is a rule, and it is the one described above from rubenvb. But in several cases the naming you will find is incorrect, as:

gcc-pippotron-6.3.1-2017.05-x86_64_arm-linux-gnueabihf gcc-pippotron-arm-none-eabi-4.8-2013.11_linux 

This maming above are 2 examples that are not respecting the rule.

2 Comments

So the rule of thumb is, you should be able to tell the meaning of each part of the name. And figure out the implications.
Did you mean to say "naming" or "maiming?" Both are valid in this case. LOL!

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.