summary refs log tree commit diff
path: root/src/bootstrap/native.rs
diff options
context:
space:
mode:
authorPiotr Kubaj <pkubaj@FreeBSD.org>2021-07-22 17:29:33 +0200
committerPiotr Kubaj <pkubaj@FreeBSD.org>2021-07-22 17:29:33 +0200
commit763bc13ccce4b81ec623d4e8c0a34f77d0401f0f (patch)
tree64246c74ec0362b43ce46a8ee937b6417050a2e5 /src/bootstrap/native.rs
parentf913a4fe901d6aeb84941fa06c17916d4e6d1dd7 (diff)
downloadrust-763bc13ccce4b81ec623d4e8c0a34f77d0401f0f.tar.gz
rust-763bc13ccce4b81ec623d4e8c0a34f77d0401f0f.zip
Add support for powerpc-unknown-freebsd
Diffstat (limited to 'src/bootstrap/native.rs')
-rw-r--r--src/bootstrap/native.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index 1be414b29a1..b8a1513f2a6 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -118,6 +118,10 @@ impl Step for Llvm {
             let idx = target.triple.find('-').unwrap();
 
             format!("riscv{}{}", &target.triple[5..7], &target.triple[idx..])
+        } else if self.target.starts_with("powerpc") && self.target.ends_with("freebsd") {
+            // FreeBSD 13 had incompatible ABI changes on all PowerPC platforms.
+            // Set the version suffix to 13.0 so the correct target details are used.
+            format!("{}{}", self.target, "13.0")
         } else {
             target.to_string()
         };
@@ -277,6 +281,11 @@ impl Step for Llvm {
             }
         }
 
+        // Workaround for ppc32 lld limitation
+        if target == "powerpc-unknown-freebsd" {
+            cfg.define("CMAKE_EXE_LINKER_FLAGS", "-fuse-ld=bfd");
+        }
+
         // https://llvm.org/docs/HowToCrossCompileLLVM.html
         if target != builder.config.build {
             builder.ensure(Llvm { target: builder.config.build });