From 6333e633b06f17390138604211a6031cf74c63ed Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Sat, 17 Jan 2026 10:02:05 +0000 Subject: automatic import of rust --- 0001-add-support-for-ppc64le.patch | 165 +++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 0001-add-support-for-ppc64le.patch (limited to '0001-add-support-for-ppc64le.patch') diff --git a/0001-add-support-for-ppc64le.patch b/0001-add-support-for-ppc64le.patch new file mode 100644 index 0000000..30b86e1 --- /dev/null +++ b/0001-add-support-for-ppc64le.patch @@ -0,0 +1,165 @@ +From 85c7f9262e9d4fbfdaa5d7bc22a85eb5300fcca0 Mon Sep 17 00:00:00 2001 +From: jcf +Date: Wed, 12 Jun 2024 09:14:32 +0000 +Subject: [PATCH] add support for ppc64le + +--- + compiler/rustc_target/src/spec/mod.rs | 2 ++ + .../spec/targets/ppc64le_unknown_freebsd.rs | 23 +++++++++++++++++++ + .../spec/targets/ppc64le_unknown_linux_gnu.rs | 23 +++++++++++++++++++ + .../targets/ppc64le_unknown_linux_musl.rs | 23 +++++++++++++++++++ + src/bootstrap/configure.py | 5 ++++ + vendor/openssl-src-300.5.0+3.5.0/src/lib.rs | 3 +++ + vendor/target-lexicon-0.13.1/src/targets.rs | 3 +++ + 7 files changed, 82 insertions(+) + create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs + create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs + create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs + +diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs +index 7234d1dc6..70d44f815 100644 +--- a/compiler/rustc_target/src/spec/mod.rs ++++ b/compiler/rustc_target/src/spec/mod.rs +@@ -1760,6 +1760,8 @@ supported_targets! { + ("powerpc64-unknown-linux-musl", powerpc64_unknown_linux_musl), + ("powerpc64le-unknown-linux-gnu", powerpc64le_unknown_linux_gnu), + ("powerpc64le-unknown-linux-musl", powerpc64le_unknown_linux_musl), ++ ("ppc64le-unknown-linux-gnu", ppc64le_unknown_linux_gnu), ++ ("ppc64le-unknown-linux-musl", ppc64le_unknown_linux_musl), + ("s390x-unknown-linux-gnu", s390x_unknown_linux_gnu), + ("s390x-unknown-linux-musl", s390x_unknown_linux_musl), + ("sparc-unknown-linux-gnu", sparc_unknown_linux_gnu), +diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs +new file mode 100644 +index 000000000..c02321db7 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs +@@ -0,0 +1,23 @@ ++use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; ++ ++pub(crate) fn target() -> Target { ++ let mut base = base::freebsd::opts(); ++ base.cpu = "ppc64le".into(); ++ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); ++ base.max_atomic_width = Some(64); ++ base.stack_probes = StackProbeType::Inline; ++ ++ Target { ++ llvm_target: "ppc64le-unknown-freebsd".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, ++ pointer_width: 64, ++ data_layout: "e-m:e-Fn32-i64:64-n32:64".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { mcount: "_mcount".into(), ..base }, ++ } ++} +diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs +new file mode 100644 +index 000000000..13423b9c5 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs +@@ -0,0 +1,23 @@ ++use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; ++ ++pub(crate) fn target() -> Target { ++ let mut base = base::linux_gnu::opts(); ++ base.cpu = "ppc64le".into(); ++ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); ++ base.max_atomic_width = Some(64); ++ base.stack_probes = StackProbeType::Inline; ++ ++ Target { ++ llvm_target: "ppc64le-unknown-linux-gnu".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, ++ pointer_width: 64, ++ data_layout: "e-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { mcount: "_mcount".into(), ..base }, ++ } ++} +diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs +new file mode 100644 +index 000000000..3f8a02be7 +--- /dev/null ++++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs +@@ -0,0 +1,23 @@ ++use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; ++ ++pub(crate) fn target() -> Target { ++ let mut base = base::linux_musl::opts(); ++ base.cpu = "ppc64le".into(); ++ base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); ++ base.max_atomic_width = Some(64); ++ base.stack_probes = StackProbeType::Inline; ++ ++ Target { ++ llvm_target: "ppc64le-unknown-linux-musl".into(), ++ metadata: crate::spec::TargetMetadata { ++ description: None, ++ tier: None, ++ host_tools: None, ++ std: None, ++ }, ++ pointer_width: 64, ++ data_layout: "e-m:e-Fn32-i64:64-n32:64-S128-v256:256:256-v512:512:512".into(), ++ arch: "powerpc64".into(), ++ options: TargetOptions { mcount: "_mcount".into(), ..base }, ++ } ++} +diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py +index 0d4d6e0ff..5d0e213b3 100755 +--- a/src/bootstrap/configure.py ++++ b/src/bootstrap/configure.py +@@ -259,6 +259,11 @@ v( + "target.powerpc64le-unknown-linux-musl.musl-root", + "powerpc64le-unknown-linux-musl install directory", + ) ++v( ++ "musl-root-ppc64le", ++ "target.ppc64le-unknown-linux-musl.musl-root", ++ "ppc64le-unknown-linux-musl install directory", ++) + v( + "musl-root-riscv32gc", + "target.riscv32gc-unknown-linux-musl.musl-root", +diff --git a/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs b/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs +index f7d19d95d..9b574b1e5 100644 +--- a/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs ++++ b/vendor/openssl-src-300.5.0+3.5.0/src/lib.rs +@@ -368,6 +368,9 @@ impl Build { + "powerpc64le-unknown-freebsd" => "BSD-ppc64le", + "powerpc64le-unknown-linux-gnu" => "linux-ppc64le", + "powerpc64le-unknown-linux-musl" => "linux-ppc64le", ++ "ppc64le-unknown-freebsd" => "BSD-ppc64le", ++ "ppc64le-unknown-linux-gnu" => "linux-ppc64le", ++ "ppc64le-unknown-linux-musl" => "linux-ppc64le", + "powerpc64le-alpine-linux-musl" => "linux-ppc64le", + "powerpc64le-chimera-linux-musl" => "linux-ppc64le", + "riscv64gc-unknown-freebsd" => "BSD-riscv64", +diff --git a/vendor/target-lexicon-0.13.1/src/targets.rs b/vendor/target-lexicon-0.13.1/src/targets.rs +index 83c0eac8c..61b7fcc33 100644 +--- a/vendor/target-lexicon-0.13.1/src/targets.rs ++++ b/vendor/target-lexicon-0.13.1/src/targets.rs +@@ -1811,6 +1811,9 @@ mod tests { + "powerpc64le-unknown-freebsd", + "powerpc64le-unknown-linux-gnu", + "powerpc64le-unknown-linux-musl", ++ "ppc64le-unknown-freebsd", ++ "ppc64le-unknown-linux-gnu", ++ "ppc64le-unknown-linux-musl", + "powerpc64-unknown-freebsd", + "powerpc64-unknown-linux-gnu", + "powerpc64-unknown-linux-musl", +-- +2.49.0 + -- cgit v1.2.3