For Cortex R and M processors Linaro has recommended the GCC arm-none-eabi 4.9 whereas for A series processors it is recommending normal GCC eabi.
what is the key difference between the same ?
Excellent question, i'm not sure the second be a correct software name's notation...
in arm-none-eabi, it targets for ARM architecture, has no vendor, does not target an operating system and complies with the ARM Embedded ABI.
More in Freescale's community: What's the difference between arm-linux- / arm-... | Freescale Community
Okay, but what is the signification for arm-eabi with no specification ?
default is for linux ?
I'd like to see where this recommendation is coming from (like a link).
I can think of several reasons, but would like to have context.
I think the difference is calling convention and availability of system calls for the C library to use.
With "arm-eabi-gcc" you have the Linux system C library which will make calls into the kernel IOCTLs, e.g. for allocating memory pages to the process.
With "arm-eabi-none-gcc" you are running on platform which doesn't have an operating system at all - so the C library is different to cope with that.
Other differences include how processes get bootstrapped by the runtime linker / loader (i.e. a lot happens at runtime on Linux, which cannot happen in a baremetal platform).