IFUNC resolvers for non-function symbols
Szabolcs Nagy
szabolcs.nagy@arm.com
Tue Jan 24 14:26:00 GMT 2017
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.
More information about the Libc-alpha
mailing list