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] ifunc odering in ELF


* 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


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