This is an archive of the discontinued LLVM Phabricator instance.

Update ifunc attribute support documentation
ClosedPublic

Authored by emaste on Sep 29 2018, 2:22 PM.

Details

Summary

We documented GNU binutils and glibc versions required for ifunc support, but our own lld linker and FreeBSD's rtld also support ifuncs.

Diff Detail

Repository
rL LLVM

Event Timeline

emaste created this revision.Sep 29 2018, 2:22 PM
This revision is now accepted and ready to land.Sep 30 2018, 7:00 AM
This revision was automatically updated to reflect the committed changes.
joerg added a subscriber: joerg.Sep 30 2018, 10:59 AM

I think this is still too optimistic. Full support for ifunc seems to be generally limited to x86. Most other architectures lack even definitions for anonymous ifunc relocations or support proper relaxation only in limited forms. That's especially annoying when looking at static linking.

Maybe "available for some architectures in at least..."? Or maybe we shouldn't bother trying to list versions, and mention it is dependent on CPU arch, linker, and rtld?

joerg added a comment.Sep 30 2018, 6:21 PM

Yeah, I would restrict it to just mention that it depends on the target, link time editor and runtime linker. Even the concrete feature set on Linux changes with glibc versions.