about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEd Schouten <ed@nuxi.nl>2018-01-01 21:46:22 +0100
committerEd Schouten <ed@nuxi.nl>2018-01-01 21:46:22 +0100
commit4fe167adba47478e1a443c7b82e67e020253eac8 (patch)
tree8ca781ffcf3f1b172e9c0abcf7a40d065e6161de
parentd5f2745e7ccd247da50f0cb18318ac477e5bccbf (diff)
Use the right TLS model for CloudABI.
CloudABI doesn't do dynamic linking. For this reason, there is no need
to handle any other TLS model than local-exec. CloudABI's C library
doesn't provide a __tls_get_addr() function to do Dynamic TLS.

By forcing local-exec to be used here, we ensure that we don't generate
function calls to __tls_get_addr().
-rw-r--r--src/librustc_back/target/cloudabi_base.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/librustc_back/target/cloudabi_base.rs b/src/librustc_back/target/cloudabi_base.rs
index 3353e7936f0..c41c6b23358 100644
--- a/src/librustc_back/target/cloudabi_base.rs
+++ b/src/librustc_back/target/cloudabi_base.rs
@@ -27,6 +27,7 @@ pub fn opts() -> TargetOptions {
         linker_is_gnu: true,
         pre_link_args: args,
         position_independent_executables: true,
+        tls_model: "local-exec".to_string(),
         relro_level: RelroLevel::Full,
         exe_allocation_crate: super::maybe_jemalloc(),
         .. Default::default()