rtld: resolve incoming STT_GNU_IFUNC only after DT_INIT
Florian Weimer
fw@deneb.enyo.de
Wed Nov 1 17:24:00 GMT 2017
* John Reiser:
> However, a relocation from some other module to a STT_GNU_IFUNC symbol
> in the current shared library cannot be intercepted like that.
> That's why DT_INIT should be called before such a relocation is resolved,
> so that the IFUNC code can be de-compressed into the right place
> before it gets called.
I don't think it's safe at all to call DT_INIT during relocation
processing. You need to explain why you think it is.
I really don't see how we can make this happen. As I said, DT_INIT
may need the relocations which result from IFUNC processing.
More information about the Libc-alpha
mailing list