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.
This commit is contained in:
James Clarke 2017-05-13 08:01:15 -07:00 committed by Cary Coutant
parent adf3dde510
commit 67f46fed80
2 changed files with 9 additions and 1 deletions

View File

@ -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

View File

@ -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);