[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 |
https://sourceware.org/bugzilla/show_bug.cgi?id=17432
--- 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 -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1707f183446fae9aca8523c1ebf721bcf2472008
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
trust.
gold/
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.
- [Bug gold/17432] New: internal error in relocate_tls, at gold/x86_64.cc:3829, markus at trippelsdorf dot de, 2014/09/24
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829, ccoutant at google dot com, 2014/09/24
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829, ian at airs dot com, 2014/09/24
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829, markus at trippelsdorf dot de, 2014/09/25
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829, ccoutant at google dot com, 2014/09/25
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829,
cvs-commit at gcc dot gnu.org <=
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829, ccoutant at google dot com, 2014/09/26
- [Bug gold/17432] internal error in relocate_tls, at gold/x86_64.cc:3829, cvs-commit at gcc dot gnu.org, 2014/09/30