[Question] ifunc odering in ELF
Adhemerval Zanella
adhemerval.zanella@linaro.org
Tue Sep 17 13:25:00 GMT 2019
On 16/09/2019 23:43, Florian Weimer wrote:
> * Juchan Kim:
>
>> We have two ifuncs foo1 and foo2 in our library
>>
>> foo1 has foo1_resolver()Â
>> foo2 has foo2_resolver()
>>
>>
>> foo1_resolver() {
>> ...
>> }
>>
>> foo2_resolver() {
>> foo1()
>> ...
>> }
>
> IFUNC resolvers must not depend on run-time relocations. If you follow
> that rule, this cannot happen.
>
> binutils ld sorts IFUNC relocations last, which helps, but to cover more
> cases (but not all of them), run-time reordering of relocations is
> needed. We have some patches for that, but my impression is that the
> glibc project does not want them. Instead, we're probably going to
> remove all IFUNC resolvers with relocation dependencies from glibc, and
> tell others to do so as well.
>
That's was not my impression, I this we should to go this way iff we can't
really make IFUNC reordering work on loader. From your initial work on
the two-phase IFUNC relocation, which prevents us to move forward?
More information about the Libc-alpha
mailing list