about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-11-23 19:01:19 +0000
committerbors <bors@rust-lang.org>2020-11-23 19:01:19 +0000
commitd9a105fdd46c926ae606777a46dd90e5b838f92f (patch)
tree42bcdbda1dc9043ab82fa19e4a32c81cf965d047 /compiler
parent40624dde6cdfad2576b4d795c97583188a814884 (diff)
parent6bfe27a3e0f1c4d77999ccc2350ab861327615a2 (diff)
downloadrust-d9a105fdd46c926ae606777a46dd90e5b838f92f.tar.gz
rust-d9a105fdd46c926ae606777a46dd90e5b838f92f.zip
Auto merge of #78439 - lzutao:rm-clouldabi, r=Mark-Simulacrum
Drop support for all cloudabi targets

`cloudabi` is a tier-3 target, and [it is no longer being maintained upstream][no].

This PR drops supports for cloudabi targets. Those targets are:
* aarch64-unknown-cloudabi
* armv7-unknown-cloudabi
* i686-unknown-cloudabi
* x86_64-unknown-cloudabi

Since this drops supports for a target, I'd like somebody to tag `relnotes` label to this PR.

Some other issues:
* The tidy exception for `cloudabi` crate is still remained because
  * `parking_lot v0.9.0` and `parking_lot v0.10.2` depends on `cloudabi v0.0.3`.
  * `parking_lot v0.11.0` depends on `cloudabi v0.1.0`.

[no]: https://github.com/NuxiNL/cloudabi#note-this-project-is-unmaintained
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_codegen_cranelift/build_sysroot/alloc_system/lib.rs6
-rw-r--r--compiler/rustc_target/src/spec/aarch64_unknown_cloudabi.rs16
-rw-r--r--compiler/rustc_target/src/spec/armv7_unknown_cloudabi_eabihf.rs18
-rw-r--r--compiler/rustc_target/src/spec/cloudabi_base.rs36
-rw-r--r--compiler/rustc_target/src/spec/i686_unknown_cloudabi.rs20
-rw-r--r--compiler/rustc_target/src/spec/mod.rs6
-rw-r--r--compiler/rustc_target/src/spec/x86_64_unknown_cloudabi.rs19
7 files changed, 3 insertions, 118 deletions
diff --git a/compiler/rustc_codegen_cranelift/build_sysroot/alloc_system/lib.rs b/compiler/rustc_codegen_cranelift/build_sysroot/alloc_system/lib.rs
index ca145e4f2a5..c832d5e5ebb 100644
--- a/compiler/rustc_codegen_cranelift/build_sysroot/alloc_system/lib.rs
+++ b/compiler/rustc_codegen_cranelift/build_sysroot/alloc_system/lib.rs
@@ -23,7 +23,7 @@
     all(target_arch = "wasm32", not(target_os = "emscripten")),
     feature(integer_atomics, stdsimd)
 )]
-#![cfg_attr(any(unix, target_os = "cloudabi", target_os = "redox"), feature(libc))]
+#![cfg_attr(any(unix, target_os = "redox"), feature(libc))]
 // The minimum alignment guaranteed by the architecture. This value is used to
 // add fast paths for low alignment values.
 #[cfg(all(any(target_arch = "x86",
@@ -69,7 +69,7 @@ const MIN_ALIGN: usize = 16;
 /// independently of the standard library’s global allocator.
 #[stable(feature = "alloc_system_type", since = "1.28.0")]
 pub struct System;
-#[cfg(any(windows, unix, target_os = "cloudabi", target_os = "redox"))]
+#[cfg(any(windows, unix, target_os = "redox"))]
 mod realloc_fallback {
     use core::alloc::{GlobalAlloc, Layout};
     use core::cmp;
@@ -89,7 +89,7 @@ mod realloc_fallback {
         }
     }
 }
-#[cfg(any(unix, target_os = "cloudabi", target_os = "redox"))]
+#[cfg(any(unix, target_os = "redox"))]
 mod platform {
     extern crate libc;
     use core::ptr;
diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_cloudabi.rs b/compiler/rustc_target/src/spec/aarch64_unknown_cloudabi.rs
deleted file mode 100644
index 67f69b40e55..00000000000
--- a/compiler/rustc_target/src/spec/aarch64_unknown_cloudabi.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-use crate::spec::Target;
-
-pub fn target() -> Target {
-    let mut base = super::cloudabi_base::opts();
-    base.max_atomic_width = Some(128);
-    base.unsupported_abis = super::arm_base::unsupported_abis();
-    base.linker = Some("aarch64-unknown-cloudabi-cc".to_string());
-
-    Target {
-        llvm_target: "aarch64-unknown-cloudabi".to_string(),
-        pointer_width: 64,
-        data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
-        arch: "aarch64".to_string(),
-        options: base,
-    }
-}
diff --git a/compiler/rustc_target/src/spec/armv7_unknown_cloudabi_eabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_cloudabi_eabihf.rs
deleted file mode 100644
index d47ee541b25..00000000000
--- a/compiler/rustc_target/src/spec/armv7_unknown_cloudabi_eabihf.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-use crate::spec::{Target, TargetOptions};
-
-pub fn target() -> Target {
-    let mut base = super::cloudabi_base::opts();
-    base.cpu = "cortex-a8".to_string();
-    base.max_atomic_width = Some(64);
-    base.features = "+v7,+vfp3,+neon".to_string();
-    base.unsupported_abis = super::arm_base::unsupported_abis();
-    base.linker = Some("armv7-unknown-cloudabi-eabihf-cc".to_string());
-
-    Target {
-        llvm_target: "armv7-unknown-cloudabi-eabihf".to_string(),
-        pointer_width: 32,
-        data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
-        arch: "arm".to_string(),
-        options: TargetOptions { mcount: "\u{1}mcount".to_string(), ..base },
-    }
-}
diff --git a/compiler/rustc_target/src/spec/cloudabi_base.rs b/compiler/rustc_target/src/spec/cloudabi_base.rs
deleted file mode 100644
index 20a095742ec..00000000000
--- a/compiler/rustc_target/src/spec/cloudabi_base.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-use crate::spec::{LinkArgs, LinkerFlavor, RelroLevel, TargetOptions, TlsModel};
-
-pub fn opts() -> TargetOptions {
-    let mut args = LinkArgs::new();
-    args.insert(
-        LinkerFlavor::Gcc,
-        vec![
-            "-Wl,-Bstatic".to_string(),
-            "-Wl,--no-dynamic-linker".to_string(),
-            "-Wl,--gc-sections".to_string(),
-        ],
-    );
-
-    TargetOptions {
-        os: "cloudabi".to_string(),
-        executables: true,
-        os_family: None,
-        linker_is_gnu: true,
-        pre_link_args: args,
-        position_independent_executables: true,
-        // As CloudABI only supports static linkage, there is no need
-        // for dynamic TLS. The C library therefore does not provide
-        // __tls_get_addr(), which is normally used to perform dynamic
-        // TLS lookups by programs that make use of dlopen(). Only the
-        // "local-exec" and "initial-exec" TLS models can be used.
-        //
-        // "local-exec" is more efficient than "initial-exec", as the
-        // latter has one more level of indirection: it accesses the GOT
-        // (Global Offset Table) to obtain the effective address of a
-        // thread-local variable. Using a GOT is useful only when doing
-        // dynamic linking.
-        tls_model: TlsModel::LocalExec,
-        relro_level: RelroLevel::Full,
-        ..Default::default()
-    }
-}
diff --git a/compiler/rustc_target/src/spec/i686_unknown_cloudabi.rs b/compiler/rustc_target/src/spec/i686_unknown_cloudabi.rs
deleted file mode 100644
index 0cdb9f9de56..00000000000
--- a/compiler/rustc_target/src/spec/i686_unknown_cloudabi.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-use crate::spec::{LinkerFlavor, Target};
-
-pub fn target() -> Target {
-    let mut base = super::cloudabi_base::opts();
-    base.cpu = "pentium4".to_string();
-    base.max_atomic_width = Some(64);
-    base.linker = Some("i686-unknown-cloudabi-cc".to_string());
-    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
-    base.stack_probes = true;
-
-    Target {
-        llvm_target: "i686-unknown-cloudabi".to_string(),
-        pointer_width: 32,
-        data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
-            f64:32:64-f80:32-n8:16:32-S128"
-            .to_string(),
-        arch: "x86".to_string(),
-        options: base,
-    }
-}
diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
index 045da7963c5..1bda33939b8 100644
--- a/compiler/rustc_target/src/spec/mod.rs
+++ b/compiler/rustc_target/src/spec/mod.rs
@@ -54,7 +54,6 @@ mod apple_base;
 mod apple_sdk_base;
 mod arm_base;
 mod avr_gnu_base;
-mod cloudabi_base;
 mod dragonfly_base;
 mod freebsd_base;
 mod fuchsia_base;
@@ -628,11 +627,6 @@ supported_targets! {
 
     ("msp430-none-elf", msp430_none_elf),
 
-    ("aarch64-unknown-cloudabi", aarch64_unknown_cloudabi),
-    ("armv7-unknown-cloudabi-eabihf", armv7_unknown_cloudabi_eabihf),
-    ("i686-unknown-cloudabi", i686_unknown_cloudabi),
-    ("x86_64-unknown-cloudabi", x86_64_unknown_cloudabi),
-
     ("aarch64-unknown-hermit", aarch64_unknown_hermit),
     ("x86_64-unknown-hermit", x86_64_unknown_hermit),
     ("x86_64-unknown-hermit-kernel", x86_64_unknown_hermit_kernel),
diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_cloudabi.rs b/compiler/rustc_target/src/spec/x86_64_unknown_cloudabi.rs
deleted file mode 100644
index cf57f4ec624..00000000000
--- a/compiler/rustc_target/src/spec/x86_64_unknown_cloudabi.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-use crate::spec::{LinkerFlavor, Target};
-
-pub fn target() -> Target {
-    let mut base = super::cloudabi_base::opts();
-    base.cpu = "x86-64".to_string();
-    base.max_atomic_width = Some(64);
-    base.linker = Some("x86_64-unknown-cloudabi-cc".to_string());
-    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
-    base.stack_probes = true;
-
-    Target {
-        llvm_target: "x86_64-unknown-cloudabi".to_string(),
-        pointer_width: 64,
-        data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
-            .to_string(),
-        arch: "x86_64".to_string(),
-        options: base,
-    }
-}