GCC Version Questions

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Apr 27 09:48:51 UTC 2012


On 04/27/2012 11:30 AM, Ralf Corsepius wrote:
>> How does this relate ? The 4.6 compiler can be EABI. I would like to see
>> the arm-eabi tools to go away and ARM default to EABI.
>
> Exactly this is what upstream GCC does not want.
>
> They _killed_  all 'arm' targets and are _forcing_
> all targets to match with 'arm*-*-*eabi*'

Yes, and they do this for good reasons.  This arm-elf is now obsolete for 
several years.  The arm-eabi is based on the standard issued by ARM.  Both 
versions use ELF as a file format.  Just look at the information stored an 
object file to see the difference:

arm-elf:

readelf -hA test.o
ELF Header:
   Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
   Class:                             ELF32
   Data:                              2's complement, little endian
   Version:                           1 (current)
   OS/ABI:                            ARM
   ABI Version:                       0
   Type:                              REL (Relocatable file)
   Machine:                           ARM
   Version:                           0x1
   Entry point address:               0x0
   Start of program headers:          0 (bytes into file)
   Start of section headers:          208 (bytes into file)
   Flags:                             0x200, GNU EABI, software FP
   Size of this header:               52 (bytes)
   Size of program headers:           0 (bytes)
   Number of program headers:         0
   Size of section headers:           40 (bytes)
   Number of section headers:         9
   Section header string table index: 6
Attribute Section: aeabi
File Attributes

arm-eabi:

readelf -hA test.o
ELF Header:
   Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
   Class:                             ELF32
   Data:                              2's complement, little endian
   Version:                           1 (current)
   OS/ABI:                            UNIX - System V
   ABI Version:                       0
   Type:                              REL (Relocatable file)
   Machine:                           ARM
   Version:                           0x1
   Entry point address:               0x0
   Start of program headers:          0 (bytes into file)
   Start of section headers:          244 (bytes into file)
   Flags:                             0x5000000, Version5 EABI
   Size of this header:               52 (bytes)
   Size of program headers:           0 (bytes)
   Number of program headers:         0
   Size of section headers:           40 (bytes)
   Number of section headers:         9
   Section header string table index: 6
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM7TDMI"
   Tag_CPU_arch: v4T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align8_needed: Yes
   Tag_ABI_align8_preserved: Yes, except leaf SP
   Tag_ABI_enum_size: small
   Tag_ABI_optimization_goals: Aggressive Debug
   Tag_unknown_44: 1 (0x1)

The arm-eabi uses file attributes to help the linker to issue warnings in case 
incompatible ABI variants are linked together.  For the arm-elf this is not 
always the case.

-- 
Sebastian Huber, embedded brains GmbH

Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list