bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/16979] gold fails to override built-in symbols


From: cvs-commit at gcc dot gnu.org
Subject: [Bug gold/16979] gold fails to override built-in symbols
Date: Thu, 31 Mar 2016 02:17:03 +0000

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 <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b60ecbc6ddeaf7af8f2515841b58035f0d4d2db7

commit b60ecbc6ddeaf7af8f2515841b58035f0d4d2db7
Author: Cary Coutant <address@hidden>
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  <address@hidden>

    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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]