OSABI on Linux Distros

Suprateeka R Hegde hegdesmailbox@gmail.com
Fri Jan 1 00:00:00 GMT 2016


On 18-Jun-2016 10:41 AM, Carlos O'Donell wrote:
> On 06/10/2016 05:22 PM, Roland McGrath wrote:
>>> What is the reason why we emit OSABI value as "UNIX - System V"
>>> (ELFOSABI_SYSV) even on GNU/Linux systems? Shouldn't it be just "GNU"
>>> (ELFOSABI_GNU)?
>>
>> In GNU systems the use of this field is specifically to indicate that
>> certain GNU extensions to ELF are used in the particular object.  In
>> particular, if any .dynsym entries use STT_GNU_IFUNC o STB_GNU_UNIQUE,
>> then e_ident[EI_OSABI] must be ELFOSABI_GNU.  Otherwise, it can be
>> ELFOSABI_NONE (aka ELFOSABI_SYSV).  In fact, it should be, and the
>> tools (linkers) implement that distinction.  This makes it possible
>> for current tools (without special switches or whatnot) to produce
>> binaries that are compatible with older dynamic linker implementations
>> that did not support these GNU extensions to ELF.
>>
>> This is arguably a bad overloading of the original instead of
>> EI_OSABI, but it's what's been done for GNU systems and so now it's an
>> unchangeable part of the GNU ELF gABI.
>
> Sure we might have to document this in the GNU ELF gABI, but nothing
> stops us from changing it and moving forward?
>
> Change binutils to generate ELFOSABI_GNU by default, with a
> "special switch" to allow people to generate pre-2009 glibc ld.so
> compatible binaries if they need it. You would need a sysroot to build
> with so they'd be using probably similar vintage tools anyway and don't
> have to worry. Then all binaries going forward are marked as being
> ELFOSABI_GNU binaries.
>
> The use case of being able to use ELFOSABI_GNU to determine how to decode
> values between PT_LOOS/PT_HIOS is the most relevant I've seen.
>
> Today with ELFOSABI_NONE you don't know how to decode those values, only
> though if one assumes that PT_LOOS/PT_HIOS values can overlap between
> any OS.

Thats absolutely what I think. I have a patch. I shall post it here soon.

And if we have good consensus, I shall talk to H.J to get this added to 
GNU-gABI.

--
Supra



More information about the Gnu-gabi mailing list