ARM hard-float ABI: add ldconfig flag value

Steve McIntyre steve.mcintyre@linaro.org
Wed Aug 22 15:41:00 GMT 2012


On Thu, Aug 09, 2012 at 02:20:12PM +0100, Steve McIntyre wrote:
>On Thu, Aug 09, 2012 at 11:10:28AM +0000, Joseph S. Myers wrote:
>>
>>The approach of using ELF header flags and testing them in this way is 
>>fine; as Roland notes some coding style fixes are needed in the patch 
>>(e.g. spaces before the open parenthesis when calling a function-like 
>>macro).
>
>OK, easily fixed. :-)
>
>>I just think there should be an actual statement of the ABI before
>>the patch goes in.  (Such a statement would include the values, the
>>types of ELF files for which they may be used (I guess ET_EXEC and
>>EY_DYN but not ET_REL) and the semantics of each value.)
>
>ACK. I've forwarded that onto the ABI folks in ARM and they're working
>on it. Actually formally publishing a new version of the ABI spec will
>likely take a few weeks to go through the system, but hoping to get
>some agreed wording and a commitment to publish out long before then.

Hi Joseph,

Here's the text that we're planning to add for the next release of the
"ELF for the ARM Architecture" doc. I hope this covers what you're
asking for?

There's minor changes to the exact spelling of the new flags
(s/EABI/ABI/). I'll send an updated patch with that change and
whatever coding style issues you'd like fixed, just let me know
please.

I've also got a corresponding patch for binutils to generate the new
flags. I'll send that to the binutils list once we're done here.

Cheers,

Steve

----- Forwarded message from Lee Smith <Lee.Smith@arm.com> -----

Date: Tue, 14 Aug 2012 17:10:36 +0100
From: Lee Smith <Lee.Smith@arm.com>
To: Steve McIntyre <steve.mcintyre@arm.com>
CC: arm.eabi@arm.com
Subject: Resend: Proposal to further specify the e_flags field in IHI0044E_aaelf

Hi Steve,

Resending after detailed feedback from you.

I propose the following addition to ELF for the ARM Architecture,
IHI0044E_aaelf. Specifically, I propose that Table 4 2, ARM-specific
e_flags should be extended with three additional rows (the last three
here):

┌────────────────────────────────┬─────────────────────────────────────────────────────────────────┐
│             Value              │                             Meaning                             │
├────────────────────────────────┼─────────────────────────────────────────────────────────────────┤
│         EF_ARM_ABIMASK         │This masks an 8-bit version number, the version of the ABI to    │
│          (0xFF000000)          │which this ELF file conforms.  This ABI is version 5.  A value of│
│(current version is 0x05000000) │0 denotes unknown conformance.                                   │
├────────────────────────────────┼─────────────────────────────────────────────────────────────────┤
│           EF_ARM_BE8           │The ELF file contains BE-8 code, suitable for execution on an ARM│
│          (0x00800000)          │Architecture v6 processor.  This flag must only be set on an     │
│                                │executable file.                                                 │
├────────────────────────────────┼─────────────────────────────────────────────────────────────────┤
│         EF_ARM_GCCMASK         │Legacy code (ABI version 4 and earlier) generated by gcc-arm-xxx │
│          (0x00400FFF)          │might use these bits.                                            │
├────────────────────────────────┼─────────────────────────────────────────────────────────────────┤
│     EF_ARM_ABI_FLOAT_HARD      │Set in executable file headers (e_type = ET_EXEC or ET_DYN) to   │
│          (0x00000400)          │note that the executable file was built to conform to the        │
│   (ABI version 5 and later)    │hardware floating-point procedure-call standard.                 │
│                                │Compatible with legacy (pre version 5) gcc use as                │
│                                │EF_ARM_VFP_FLOAT.                                                │
├────────────────────────────────┼─────────────────────────────────────────────────────────────────┤
│     EF_ARM_ABI_FLOAT_SOFT      │Set in executable file headers (e_type = ET_EXEC or ET_DYN) to   │
│          (0x00000200)          │note explicitly that the executable file was built to conform to │
│   (ABI version 5 and later)    │the software floating-point procedure-call standard (the base    │
│                                │standard). If both EF_ARM_ABI_FLOAT_XXXX bits are clear,         │
│                                │conformance to the base procedure-call standard is implied.      │
│                                │Compatible with legacy (pre version 5) gcc use as                │
│                                │EF_ARM_SOFT_FLOAT.                                               │
└────────────────────────────────┴─────────────────────────────────────────────────────────────────┘

Please review the flag values and names to ensure that I have them exactly
correct and please review the text for precision of intended meaning.

Kind regards,

Lee

--
Lee Smith, ARM Fellow and Director of Technology, SDD
ARM Limited
110 Fulbourn Road
Cambridge CB1 9NJ UK

----- End Forwarded message from Lee Smith <Lee.Smith@arm.com> -----

Cheers,
-- 
Steve McIntyre                                steve.mcintyre@linaro.org
<http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs



More information about the Libc-alpha mailing list