This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Fix assertion failure relaxing TLS for position-independent executables.
- From: Cary Coutant <ccoutant at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 13 May 2017 15:01:25 -0000
- Subject: [binutils-gdb] Fix assertion failure relaxing TLS for position-independent executables.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=67f46fed806465c005b15c97d33947f4c0abb25c
commit 67f46fed806465c005b15c97d33947f4c0abb25c
Author: James Clarke <jrtc27@jrtc27.com>
Date: Sat May 13 08:01:15 2017 -0700
Fix assertion failure relaxing TLS for position-independent executables.
gold/
PR gold/21444
* gold.cc (Target_sparc::Relocate::relocate_tls): Local
variables are final for position-independent executables. This
has to be consistent with Target_sparc::Scan::local otherwise
they will disagree as to whether local-exec is used.
Diff:
---
gold/ChangeLog | 8 ++++++++
gold/sparc.cc | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 51d6a0f..0f1f4e5 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,11 @@
+2017-05-13 James Clarke <jrtc27@jrtc27.com>
+
+ PR gold/21444
+ * gold.cc (Target_sparc::Relocate::relocate_tls): Local
+ variables are final for position-independent executables. This
+ has to be consistent with Target_sparc::Scan::local otherwise
+ they will disagree as to whether local-exec is used.
+
2017-05-12 Igor Kudrin <ikudrin@accesssoftek.com>
PR gold/21430
diff --git a/gold/sparc.cc b/gold/sparc.cc
index a9cb93a..54c7c33 100644
--- a/gold/sparc.cc
+++ b/gold/sparc.cc
@@ -3730,7 +3730,7 @@ Target_sparc<size, big_endian>::Relocate::relocate_tls(
const bool is_final =
(gsym == NULL
- ? !parameters->options().output_is_position_independent()
+ ? !parameters->options().shared()
: gsym->final_value_is_known());
const tls::Tls_optimization optimized_type
= optimize_tls_reloc(is_final, r_type);