This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


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: Question about EI_ABIVERSION handling


On 26/06/2019 13:01, Florian Weimer wrote:
> * Dragan Mladjenovic:
> 
>> It seems that ld.so does not validate EI_ABIVERSION of main executable
>> when the said executable is loaded directly by the kernel.
> 
> Hmm.  I think this may be an oversight.  I can confirm this behavior on
> x86-64.
> 
>> Is this behavior intended? If I would wish to ensure that executable
>> with newer ABI version get rejected by the old loaders, am I expected
>> to add some other incompatible change like new dynamic tag?
> 
> Unknown dynamic tags are ignored (like unknown program headers).  Only
> unknown relocation types result in errors.

unknown dynamic relocation can be an intrusive change,
it requires a location (which can cause problems if the
same location has multiple relocations) and many tools
may need to be updated, not just the dynamic linker to
support it.

an alternative is a known dynamic relocation with undefined
symbol reference. (a new libc provides the symbol, an old
libc fails), unfortunately this seems hard to do for linker
features (hard coding magic symbol refs at link-time seems
wrong, conditionally linking a .o provided by the libc when
a particular link feature is used would work, but there is
no such mechanism currently)

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