Mon Jun 17 22:15:00 GMT 2013

Arnaud, All,

On 2013-06-05 12:07 -0700, gabx spake thusly:
> I build Android ROM from AOSP for mobile device, LG google nexus 4
> (armv7-a).
> With android come several prebuilts/gcc/linux-86/arm toolchains named
> "arm-eabi-4.7" and "arm-linux-androideabi-4.7".
> I build my own toolchain which name is "arm-cortexa9_neon-linux-gnueabi"
> (cortex-a9) as CPU & TUNE and neon as FPU.
> I am a little confused about all these different names. The out folders from
> my built toolchaine are roughly similar to the androideabi prebuilt ones. Is
> the "gnueabi" and "androideabi" only a name specification (I understand
> android is not gnu) and a licence difference with same binaries/lib, or is
> there a real difference for the built outputs ?
> What about the arm-eabi ? Here again folders "look" quite similar to my
> toolchain, but why arm-eabi AND 
> arm-linux-androideabi ?

Those names are what is called a tuple.

A tuple defines a complete system. It is split in three parts, separated
by hyphens (dashes):

  - arch-vendor-abi
  - arch-vendor-os-abi

For both tuple types:
  - arch, the hardware architecture: arm, armeb, armv6, i686, mips,
    powerpc, lapha...
  - vendor, identifies the vendor (or provider) of the toolchain, and is
    almost free form (but shall contain neither space nor dash, obviously),
    usualy something like: unknown, pc

For the three-part tuples:
  - abi, defines the ABI of the system: elf, eabi...

For the four-part tuples:
  - os, which defines the /kernel/ of the system. There are not many
    supoprted, the most common one being: linux
  - abi, the ABI of the system, the most comon being: gnu, gnueabi,
    uclibc, uclibcgnueabi, androideabi...

The three-part tuples are mostly used for bare-metal, that is system
with no kernels at all (eg. bootloaders, or special applications running
directly on the CPU without a kernel).

Currently, crosstool-NG does not support generating toolchains targeting
Android. With some trickery, you could turn a arm-unknown-linux-gnueabi,
or an arm-unknown-linux-uclibcgnueabi, or an arm-ubknown-eabi to
generate code for Android, but it's not really easy.

Yann E. MORIN.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

For unsubscribe information see

More information about the crossgcc mailing list