提交 e304fb43 编写于 作者: A Amanieu d'Antras

Replace no_elf_tls with target_thread_local

上级 54461393
......@@ -175,9 +175,5 @@ endef
$(foreach crate,$(TOOLS),$(eval $(call RUST_TOOL,$(crate))))
ifdef CFG_DISABLE_ELF_TLS
RUSTFLAGS_std := --cfg no_elf_tls
endif
CRATEFILE_libc := $(SREL)src/liblibc/src/lib.rs
RUSTFLAGS_libc := --cfg stdbuild
......@@ -11,8 +11,7 @@
use target::Target;
pub fn target() -> Target {
let mut base = super::linux_base::opts();
base.has_elf_tls = false;
let base = super::linux_base::opts();
Target {
llvm_target: "aarch64-unknown-linux-gnu".to_string(),
target_endian: "little".to_string(),
......
......@@ -17,5 +17,6 @@ pub fn opts() -> TargetOptions {
base.pre_link_args.push("-Wl,--allow-multiple-definition".to_string());
base.is_like_android = true;
base.position_independent_executables = true;
base.has_elf_tls = false;
base
}
......@@ -13,7 +13,6 @@
pub fn target() -> Target {
let mut base = super::android_base::opts();
base.features = "+v7".to_string();
base.has_elf_tls = false;
Target {
llvm_target: "arm-linux-androideabi".to_string(),
......
......@@ -87,32 +87,9 @@ pub struct ScopedKey<T:'static> { inner: fn() -> &'static imp::KeyInner<T> }
issue = "0")]
#[macro_export]
#[allow_internal_unstable]
#[cfg(no_elf_tls)]
macro_rules! __scoped_thread_local_inner {
($t:ty) => {{
static _KEY: $crate::thread::__ScopedKeyInner<$t> =
$crate::thread::__ScopedKeyInner::new();
fn _getit() -> &'static $crate::thread::__ScopedKeyInner<$t> { &_KEY }
$crate::thread::ScopedKey::new(_getit)
}}
}
#[doc(hidden)]
#[unstable(feature = "thread_local_internals",
reason = "should not be necessary",
issue = "0")]
#[macro_export]
#[allow_internal_unstable]
#[cfg(not(no_elf_tls))]
macro_rules! __scoped_thread_local_inner {
($t:ty) => {{
#[cfg_attr(not(any(windows,
target_os = "android",
target_os = "ios",
target_os = "netbsd",
target_os = "openbsd",
target_arch = "aarch64")),
thread_local)]
#[cfg_attr(target_thread_local, thread_local)]
static _KEY: $crate::thread::__ScopedKeyInner<$t> =
$crate::thread::__ScopedKeyInner::new();
fn _getit() -> &'static $crate::thread::__ScopedKeyInner<$t> { &_KEY }
......@@ -221,13 +198,7 @@ pub fn is_set(&'static self) -> bool {
}
}
#[cfg(not(any(windows,
target_os = "android",
target_os = "ios",
target_os = "netbsd",
target_os = "openbsd",
target_arch = "aarch64",
no_elf_tls)))]
#[cfg(target_thread_local)]
#[doc(hidden)]
mod imp {
use cell::Cell;
......@@ -246,13 +217,7 @@ pub unsafe fn get(&self) -> *mut T { self.inner.get() }
}
}
#[cfg(any(windows,
target_os = "android",
target_os = "ios",
target_os = "netbsd",
target_os = "openbsd",
target_arch = "aarch64",
no_elf_tls))]
#[cfg(not(target_thread_local))]
#[doc(hidden)]
mod imp {
use cell::Cell;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册