http://sourceware.org/bugzilla/show_bug.cgi?id=15636

--- Comment #1 from Matthias Klose <doko at debian dot org> ---
Zack Weinberg commented in the Debian report:

I think the linker is doing exactly what it's supposed to in this case
-- weak symbols *shouldn't* provoke NEEDED entries all by themselves.
A standard use case, for instance, is to take weak references to
pthread_mutex_(un)lock and then call them only if the function
addresses are non-NULL at runtime -- if that by itself dragged in
libpthread it would vitiate the optimization.

If you do the exact same test with a shared object that explicitly
calls something in libc (say, 'puts') that's a strong reference and
you will get a NEEDED entry.

As for the lack of version tagging on the weak reference, I can't say
whether this is a problem in general, but in the case of
__cxa_finalize, I'm pretty sure it isn't: a GLIBC_2.2.5 version
indicates a function that has not changed since the introduction of
symbol versioning in libc.so.6, and the spec governing
__cxa_finalize's behavior hasn't changed since 2003ish.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to