[Question] ifunc odering in ELF
Florian Weimer
fweimer@redhat.com
Tue Sep 17 02:43:00 GMT 2019
* 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.
Thanks,
Florian
More information about the Libc-alpha
mailing list