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