https://sourceware.org/bugzilla/show_bug.cgi?id=16979
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Cary Coutant <ccout...@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b60ecbc6ddeaf7af8f2515841b58035f0d4d2db7 commit b60ecbc6ddeaf7af8f2515841b58035f0d4d2db7 Author: Cary Coutant <ccout...@gmail.com> Date: Wed Mar 30 19:14:16 2016 -0700 Don't override definition a shared object by one in a later shared object. In PR 16979, a reference to malloc is being resolved to an unversioned reference in libmalloc.so. When linked with --as-needed, however, the dynamic table does not list libmalloc.so as a DT_NEEDED library. If we have a reference to an unversioned symbol in a shared object, and we later see a versioned definition in another shared object, we were overriding the first definition with the second in the process of defining the default version. As a result, we no longer think that the first shared object was actually needed to resolve any symbols, and we don't list it as a DT_NEEDED library. This patch fixes the problem by treating the two definitions as separate symbols, so the second definition does not override the first. 2016-03-30 Cary Coutant <ccout...@gmail.com> gold/ PR gold/16979 * symtab.cc (Symbol_table::define_default_version): Check for case where symbols are both in different shared objects. -- 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