This is the mail archive of the glibc-bugs@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]

[Bug dynamic-link/20673] ifunc resolver function cannot call extern functions


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.

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