about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-01-22 12:20:34 +0100
committerGitHub <noreply@github.com>2019-01-22 12:20:34 +0100
commite3849cc8c9ccbd5bfb8e2938d83cc8505b1896ed (patch)
tree2eb7dc87bdb238d033a0fee83bfe926a00098f28
parent8c551155d900872fd10b1abd7c4fb3f2c03cda87 (diff)
parent58b02000c51c1bd460f089368481e1552e0f86ac (diff)
downloadrust-e3849cc8c9ccbd5bfb8e2938d83cc8505b1896ed.tar.gz
rust-e3849cc8c9ccbd5bfb8e2938d83cc8505b1896ed.zip
Rollup merge of #57809 - MikaelUrankar:powerpc64-unknown-freebsd, r=nagisa
Add powerpc64-unknown-freebsd

FreeBSD review: https://reviews.freebsd.org/D18367
-rw-r--r--src/librustc_target/spec/mod.rs1
-rw-r--r--src/librustc_target/spec/powerpc64_unknown_freebsd.rs22
2 files changed, 23 insertions, 0 deletions
diff --git a/src/librustc_target/spec/mod.rs b/src/librustc_target/spec/mod.rs
index 3a21ca19b17..e47da3cff95 100644
--- a/src/librustc_target/spec/mod.rs
+++ b/src/librustc_target/spec/mod.rs
@@ -367,6 +367,7 @@ supported_targets! {
 
     ("aarch64-unknown-freebsd", aarch64_unknown_freebsd),
     ("i686-unknown-freebsd", i686_unknown_freebsd),
+    ("powerpc64-unknown-freebsd", powerpc64_unknown_freebsd),
     ("x86_64-unknown-freebsd", x86_64_unknown_freebsd),
 
     ("i686-unknown-dragonfly", i686_unknown_dragonfly),
diff --git a/src/librustc_target/spec/powerpc64_unknown_freebsd.rs b/src/librustc_target/spec/powerpc64_unknown_freebsd.rs
new file mode 100644
index 00000000000..cc7b87bfdeb
--- /dev/null
+++ b/src/librustc_target/spec/powerpc64_unknown_freebsd.rs
@@ -0,0 +1,22 @@
+use spec::{LinkerFlavor, Target, TargetResult};
+
+pub fn target() -> TargetResult {
+    let mut base = super::freebsd_base::opts();
+    base.cpu = "ppc64".to_string();
+    base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
+    base.max_atomic_width = Some(64);
+
+    Ok(Target {
+        llvm_target: "powerpc64-unknown-freebsd".to_string(),
+        target_endian: "big".to_string(),
+        target_pointer_width: "64".to_string(),
+        target_c_int_width: "32".to_string(),
+        data_layout: "E-m:e-i64:64-n32:64".to_string(),
+        arch: "powerpc64".to_string(),
+        target_os: "freebsd".to_string(),
+        target_env: String::new(),
+        target_vendor: "unknown".to_string(),
+        linker_flavor: LinkerFlavor::Gcc,
+        options: base,
+    })
+}