Cross Compilation | Naming Convention of ARM Cross compilers

One good pointer : http://baruch.siach.name/blog/posts/introduction_to_cross_compilation_part_1/
I have also blogged that. https://imvoid.wordpress.com/2013/05/13/cross-compiling-reblog/

Developers develop applications for various needs. And every need has its own platform requirements.
Some examples are,

  • Develop calculator for Desktop [ Running Windows / Linux on X86 platform mostly ]
  • Develop calculator for Mobile [ Running Android / Windows on ARM platform mostly]

Almost every OS has certain SDK for each platform to facilitate development for that.

But those platforms aren’t easy for development mostly. Even the SDK’s are for other platforms, say Windows or Linux or MAC.
This process of compiling for another platform/architecture/Operating system in some other platform/architecture/Operating system is known as cross compiling.

Here, we are going to discuss about cross compilation for ARM architecture.

For ARM, we can see various types of cross compilers. To be specific, cross compilers in different names, like,

arm-linux-gnueabi-*
arm-none-linux-gnueabi-*
arm-none-eabi-*
To understand this, understanding the naming convention helps. The name of the compiler explains all about it.

Generally, the naming of cross compiler can be split as below.

    arch-vendor-(os-)abi

    arch is for architecture: arm, mips, x86, i686...
    vendor is tool chain supplier: apple, Codesourcery, Linux, 
    os is for operating system: linux, none (bare metal)
    abi is for application binary interface convention: eabi, gnueabi, gnueabihf

Lets see an example to understand this more clearly

arm-none-linux-gnueabi-
arch-vendor-(os-)abi

Arch : Arm architecture
Vendor : 
Target OS : None
Host OS : Linux
ABI : gnueabi

This indicates, this cross compiler targets ARM architecture [Generated code for arm architecture],
which is not provided by anyone specific, builds binary for no operating system [ Bare Metal ] and it runs on linux operating system providing binary for
GNU EABI.

References : http://web.eecs.umich.edu/~prabal/teaching/eecs373/notes/notes-toolchain.pdf

Advertisements

1 thought on “Cross Compilation | Naming Convention of ARM Cross compilers”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s