This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See crosstool-NG for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: arm-linux-androideabi/arm-eabi/arm-unknow-linux-gnueabi


Yann, Arnaud,

On Mon, Jun 17, 2013 at 3:15 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> 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.

In the end, the host tuple would be arm-linux-androideabi, but there
are other toolchains in the android build system for different
purposes:

---------- quote ----------
The Android toolchain supports the following targets:

   a. arm-linux-androideabi
   b. arm-eabi  (for Android kernel)
   c. arm-newlib-eabi (for runnng gcc regression tests)
   d. i[3456]86-*-linux-gnu, x86_64-*-linux-gnu (for x86 targets)
---------- /quote ----------
from: https://android.googlesource.com/toolchain/build/+/HEAD/README

I think a better place to start for doing any work with the android
toolchain, is by starting there with the toolchain/manifest repo:

$ mkdir $HOME/android-toolchain
$ cd $HOME/android-toolchain
$ repo init -u https://android.googlesource.com/toolchain/manifest -b master
$ repo sync -j<replace this with # of dl jobs>

Same workflow as working with the android platform build.

I think it would take more work then it's worth to build a toolchain
for bionic with crosstool-ng, then it is to work with the existing
tools provided by google.

On the other hand, I have made cross toolchains with gcc, specifically
for kernel builds, and arm-unknown-linux-gnueabi works fine for that
(cortex-a8/armv7, in my experience), but at that point, you could just
grab mentor's (67, not 68!) or linaro's arm gnueabi toolchains and
they would work fine for that purpose as well.

Anyways, I hope that is helpful info.

-Bryan

> Regards,
> 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  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]