aboutsummaryrefslogtreecommitdiff
path: root/lang/rust/files/powerpc/patch-vendor_rustc__ap__rustc__target_src_spec_powerpc__unknown__freebsd.rs
blob: cdaaef7f84f621340ea73ab4e0c028648b2973ae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- /dev/null	2021-04-24 17:00:30.889028000 -0500
+++ vendor/rustc-ap-rustc_target/src/spec/powerpc_unknown_freebsd.rs	2021-04-24 17:00:25.903298000 -0500
@@ -0,0 +1,24 @@
+use crate::abi::Endian;
+use crate::spec::{LinkerFlavor, RelocModel, Target, TargetOptions};
+
+pub fn target() -> Target {
+    let mut base = super::freebsd_base::opts();
+    base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
+    // Extra hint to linker that we are generating secure-PLT code.
+    base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("--target=powerpc-unknown-freebsd13.0".to_string());
+    base.max_atomic_width = Some(32);
+
+    Target {
+        llvm_target: "powerpc-unknown-freebsd13.0".to_string(),
+        pointer_width: 32,
+        data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
+        arch: "powerpc".to_string(),
+        options: TargetOptions {
+             endian: Endian::Big,
+             features: "+secure-plt".to_string(),
+             relocation_model: RelocModel::Pic,
+             mcount: "_mcount".to_string(),
+             ..base
+        },
+    }
+}