This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/20673] ifunc resolver function cannot call extern functions
- From: "fweimer at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 10 Oct 2016 11:30:43 +0000
- Subject: [Bug dynamic-link/20673] ifunc resolver function cannot call extern functions
- Auto-submitted: auto-generated
- References: <bug-20673-131@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=20673
Florian Weimer <fweimer at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fweimer at redhat dot com
--- Comment #1 from Florian Weimer <fweimer at redhat dot com> ---
I think this is a GCC documentation issue. IFUNCs were never fully documented
because it was expected they would be used by glibc only, and not in other
contexts. Things didn't work out that way, and we need better documentation
now.
Calling extern functions is possible if no run-time relocation is required, or
if the shared object properly expresses its dependencies using DT_NEEDED (and
there are no cycles). Your example has a cycle.
In general, lazy binding obscures some issues, but we have few options for
non-lazy relocations. BIND_NOW is quite problematic in this area, especially
with -fno-plt.
--
You are receiving this mail because:
You are on the CC list for the bug.