]> git.lizzy.rs Git - rust.git/commitdiff
Add `aarch64-unknown-freebsd` to the supported targets
authorJean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>
Wed, 25 Jan 2017 20:09:18 +0000 (21:09 +0100)
committerJean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr>
Fri, 3 Feb 2017 08:02:59 +0000 (09:02 +0100)
mk/cfg/aarch64-unknown-freebsd.mk [new file with mode: 0644]
src/librustc_back/target/aarch64_unknown_freebsd.rs [new file with mode: 0644]
src/librustc_back/target/mod.rs

diff --git a/mk/cfg/aarch64-unknown-freebsd.mk b/mk/cfg/aarch64-unknown-freebsd.mk
new file mode 100644 (file)
index 0000000..34aee77
--- /dev/null
@@ -0,0 +1 @@
+# rustbuild-only target
diff --git a/src/librustc_back/target/aarch64_unknown_freebsd.rs b/src/librustc_back/target/aarch64_unknown_freebsd.rs
new file mode 100644 (file)
index 0000000..3c5d630
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+use target::{Target, TargetOptions, TargetResult};
+
+pub fn target() -> TargetResult {
+    let mut base = super::freebsd_base::opts();
+    base.max_atomic_width = Some(128);
+
+    // see #36994
+    base.exe_allocation_crate = "alloc_system".to_string();
+
+    Ok(Target {
+        llvm_target: "aarch64-unknown-freebsd".to_string(),
+        target_endian: "little".to_string(),
+        target_pointer_width: "64".to_string(),
+        data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
+        arch: "aarch64".to_string(),
+        target_os: "freebsd".to_string(),
+        target_env: "".to_string(),
+        target_vendor: "unknown".to_string(),
+        options: TargetOptions {
+            abi_blacklist: super::arm_base::abi_blacklist(),
+            .. base
+        },
+    })
+}
index 5afa85d155279e17a905edf5885a32d677209914..d6acdceb3f5e2498ccb53bad4213e9bbc5643ae5 100644 (file)
@@ -165,6 +165,7 @@ fn $module() {
     ("armv7-linux-androideabi", armv7_linux_androideabi),
     ("aarch64-linux-android", aarch64_linux_android),
 
+    ("aarch64-unknown-freebsd", aarch64_unknown_freebsd),
     ("i686-unknown-freebsd", i686_unknown_freebsd),
     ("x86_64-unknown-freebsd", x86_64_unknown_freebsd),