Fix assertion failure relaxing TLS for position-independent executables.
authorJames Clarke <jrtc27@jrtc27.com>
Sat, 13 May 2017 15:01:15 +0000 (08:01 -0700)
committerCary Coutant <ccoutant@gmail.com>
Sat, 13 May 2017 15:01:15 +0000 (08:01 -0700)
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.

gold/ChangeLog
gold/sparc.cc

index 51d6a0f1fcd852f90661f7d9f8861d0c8ab38af7..0f1f4e54f2c668b878388e7d0af11652b70a9796 100644 (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
index a9cb93adda2e2ebe199a8fd92f26fc0b94f69668..54c7c334984e62772619888fff43f80e17bcc93e 100644 (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);
This page took 0.030856 seconds and 4 git commands to generate.