diff options
Diffstat (limited to 'lang/rust/patches/08-add_powerpc64.patch')
-rw-r--r-- | lang/rust/patches/08-add_powerpc64.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lang/rust/patches/08-add_powerpc64.patch b/lang/rust/patches/08-add_powerpc64.patch new file mode 100644 index 0000000..1d73df4 --- /dev/null +++ b/lang/rust/patches/08-add_powerpc64.patch @@ -0,0 +1,30 @@ +--- /dev/null ++++ b/compiler/rustc_target/src/spec/powerpc64_openwrt_linux_musl.rs +@@ -0,0 +1,17 @@ ++use crate::abi::Endian; ++use crate::spec::{LinkerFlavor, Target, TargetOptions}; ++ ++pub fn target() -> Target { ++ let mut base = super::linux_musl_base::opts(); ++ base.cpu = "ppc64".into(); ++ base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".into()); ++ base.max_atomic_width = Some(64); ++ ++ Target { ++ llvm_target: "powerpc64-unknown-linux-musl".into(), ++ pointer_width: 64, ++ data_layout: "E-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { endian: Endian::Big, mcount: "_mcount".into(), ..base }, ++ } ++} +--- a/compiler/rustc_target/src/spec/mod.rs ++++ b/compiler/rustc_target/src/spec/mod.rs +@@ -1019,6 +1019,7 @@ + ("aarch64-openwrt-linux-musl", aarch64_openwrt_linux_musl), + ("armv7-openwrt-linux-muslgnueabi", armv7_openwrt_linux_muslgnueabi), + ("armv7-openwrt-linux-muslgnueabihf", armv7_openwrt_linux_muslgnueabihf), ++ ("powerpc64-openwrt-linux-musl", powerpc64_openwrt_linux_musl), + } + + /// Warnings encountered when parsing the target `json`. |