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:
parent
adf3dde510
commit
67f46fed80
@ -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>
|
2017-05-12 Igor Kudrin <ikudrin@accesssoftek.com>
|
||||||
|
|
||||||
PR gold/21430
|
PR gold/21430
|
||||||
|
@ -3730,7 +3730,7 @@ Target_sparc<size, big_endian>::Relocate::relocate_tls(
|
|||||||
|
|
||||||
const bool is_final =
|
const bool is_final =
|
||||||
(gsym == NULL
|
(gsym == NULL
|
||||||
? !parameters->options().output_is_position_independent()
|
? !parameters->options().shared()
|
||||||
: gsym->final_value_is_known());
|
: gsym->final_value_is_known());
|
||||||
const tls::Tls_optimization optimized_type
|
const tls::Tls_optimization optimized_type
|
||||||
= optimize_tls_reloc(is_final, r_type);
|
= optimize_tls_reloc(is_final, r_type);
|
||||||
|
Loading…
Reference in New Issue
Block a user