[Top][All Lists]

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

[Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829

From: cvs-commit at gcc dot gnu.org
Subject: [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829
Date: Fri, 26 Sep 2014 04:50:55 +0000


--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  1707f183446fae9aca8523c1ebf721bcf2472008 (commit)
      from  d7ac9d81bb1a177264187efc51c9cc0479cdd09c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------

commit 1707f183446fae9aca8523c1ebf721bcf2472008
Author: Cary Coutant <address@hidden>
Date:   Thu Sep 25 21:47:10 2014 -0700

    Fix problem where TLS common symbols are not allocated properly during LTO.

    The plugin API doesn't provide a way for the claimed file handler to
    identify a TLS symbol, so when adding a common TLS symbol, gold
    mistakenly places the symbol in the non-TLS commons list, and does
    not override it when we see the replacement symbol that is marked
    as TLS. Consequently, we allocate the TLS common symbol as a regular
    common, and, if it's the only TLS in the program, we'll give an
    internal error because we haven't allocated a TLS segment.

    This patch fixes the problem by removing an exclusion where common
    symbols would not override the placeholder symbols, but checking to
    see if the size needs adjusting (the original reason for the exclusion).
    Furthermore, we need to avoid putting placeholder symbols in the common
    list, and wait until we see a real common symbol with a type we can

        PR gold/17432
        * resolve.cc (Symbol_table::resolve): Override common placeholder
        symbols, but adjust sizes.
        * symtab.cc (Symbol_table::add_from_object): Don't add placeholder
        symbols to common lists.


Summary of changes:
 gold/ChangeLog  |    8 ++++++++
 gold/resolve.cc |   23 +++++++++++++++++++----
 gold/symtab.cc  |   12 ++++++++----
 3 files changed, 35 insertions(+), 8 deletions(-)

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]