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: IFUNC resolvers for non-function symbols


On 24/01/17 14:08, Florian Weimer wrote:
> On 01/24/2017 02:55 PM, Szabolcs Nagy wrote:
>> the ifunc spec i know about
>>
>> https://sites.google.com/site/x32abi/documents
>>
>> says
>>
>> STT_GNU_IFUNC
>>
>>       This symbol type is the same as STT_FUNC except that it always
>>       points to a function or piece of executable code which takes no
>>       arguments and returns a function pointer. [..]
>>
>> this implies to me that ifunc resolver is not applicable to data.
> 
> But this bit applies to the address of the resolver, not the address returned from it.

this bit applies to the ifunc resolved symbol, not to the
symbol of the resolver (which should not be in the dynamic
symbol table or at least should be bound locally if it is).

function and object symbols should be possible to distinguish
even if they are ifunc resolved so for ifunc resolved objects
you would need STT_GNU_IOBJECT or similar i think.

and the resolver is specified to return a function pointer
which is not suitable for objects.



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