Compare commits
10 Commits
6677775be9
...
5bce29dead
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bce29dead | ||
|
|
09d992dc31 | ||
|
|
8af59cc67e | ||
|
|
c937cf1951 | ||
|
|
d5d6e44d5e | ||
|
|
62a7e58643 | ||
|
|
86737f8ed5 | ||
|
|
91427acfca | ||
|
|
707e9c1ccd | ||
|
|
57bcf485aa |
160
0001-add-support-for-ppc64le.patch
Normal file
160
0001-add-support-for-ppc64le.patch
Normal file
@ -0,0 +1,160 @@
|
||||
From 85c7f9262e9d4fbfdaa5d7bc22a85eb5300fcca0 Mon Sep 17 00:00:00 2001
|
||||
From: jcf <chunfu.jian@shingroup.cn>
|
||||
Date: Wed, 12 Jun 2024 09:14:32 +0000
|
||||
Subject: [PATCH] add support for ppc64le
|
||||
|
||||
---
|
||||
compiler/rustc_target/src/spec/mod.rs | 2 ++
|
||||
.../src/spec/targets/ppc64le_unknown_freebsd.rs | 17 +++++++++++++++++
|
||||
.../spec/targets/ppc64le_unknown_linux_gnu.rs | 17 +++++++++++++++++
|
||||
.../spec/targets/ppc64le_unknown_linux_musl.rs | 17 +++++++++++++++++
|
||||
src/bootstrap/configure.py | 2 ++
|
||||
src/doc/rustc/src/platform-support.md | 2 ++
|
||||
vendor/openssl-src/src/lib.rs | 3 +++
|
||||
vendor/target-lexicon/src/targets.rs | 3 +++
|
||||
8 files changed, 63 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 6c698c5b0..29575b9aa 100644
|
||||
--- a/compiler/rustc_target/src/spec/mod.rs
|
||||
+++ b/compiler/rustc_target/src/spec/mod.rs
|
||||
@@ -1421,6 +1421,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..41189b6fa
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs
|
||||
@@ -0,0 +1,17 @@
|
||||
+use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
|
||||
+
|
||||
+pub 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(),
|
||||
+ 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..f60b84447
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs
|
||||
@@ -0,0 +1,17 @@
|
||||
+use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
|
||||
+
|
||||
+pub 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(),
|
||||
+ 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..d497b674b
|
||||
--- /dev/null
|
||||
+++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs
|
||||
@@ -0,0 +1,17 @@
|
||||
+use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
|
||||
+
|
||||
+pub 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(),
|
||||
+ 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 d34c19a47..b6adafc5e 100755
|
||||
--- a/src/bootstrap/configure.py
|
||||
+++ b/src/bootstrap/configure.py
|
||||
@@ -126,6 +126,8 @@ v("musl-root-mips64", "target.mips64-unknown-linux-muslabi64.musl-root",
|
||||
"mips64-unknown-linux-muslabi64 install directory")
|
||||
v("musl-root-mips64el", "target.mips64el-unknown-linux-muslabi64.musl-root",
|
||||
"mips64el-unknown-linux-muslabi64 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",
|
||||
"riscv32gc-unknown-linux-musl install directory")
|
||||
v("musl-root-riscv64gc", "target.riscv64gc-unknown-linux-musl.musl-root",
|
||||
diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md
|
||||
index f648a60b6..a905f27d7 100644
|
||||
--- a/src/doc/rustc/src/platform-support.md
|
||||
+++ b/src/doc/rustc/src/platform-support.md
|
||||
@@ -330,8 +330,10 @@ target | std | host | notes
|
||||
`powerpc-wrs-vxworks` | ? | |
|
||||
`powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2)
|
||||
`powerpc64le-unknown-freebsd` | | | PPC64LE FreeBSD
|
||||
+`ppc64le-unknown-freebsd` | | | PPC64LE FreeBSD
|
||||
`powerpc-unknown-freebsd` | | | PowerPC FreeBSD
|
||||
`powerpc64-unknown-linux-musl` | ? | |
|
||||
+`ppc64le-unknown-linux-musl` | ? | |
|
||||
`powerpc64-wrs-vxworks` | ? | |
|
||||
`powerpc64le-unknown-linux-musl` | ? | |
|
||||
[`powerpc64-unknown-openbsd`](platform-support/openbsd.md) | ✓ | ✓ | OpenBSD/powerpc64
|
||||
diff --git a/vendor/openssl-src/src/lib.rs b/vendor/openssl-src/src/lib.rs
|
||||
index 1264742dc..14427a70e 100644
|
||||
--- a/vendor/openssl-src/src/lib.rs
|
||||
+++ b/vendor/openssl-src/src/lib.rs
|
||||
@@ -282,6 +282,9 @@ impl Build {
|
||||
"powerpc64le-unknown-freebsd" => "BSD-generic64",
|
||||
"powerpc64le-unknown-linux-gnu" => "linux-ppc64le",
|
||||
"powerpc64le-unknown-linux-musl" => "linux-ppc64le",
|
||||
+ "ppc64le-unknown-freebsd" => "BSD-generic64",
|
||||
+ "ppc64le-unknown-linux-gnu" => "linux-ppc64le",
|
||||
+ "ppc64le-unknown-linux-musl" => "linux-ppc64le",
|
||||
"riscv64gc-unknown-linux-gnu" => "linux-generic64",
|
||||
"s390x-unknown-linux-gnu" => "linux64-s390x",
|
||||
"s390x-unknown-linux-musl" => "linux64-s390x",
|
||||
diff --git a/vendor/target-lexicon/src/targets.rs b/vendor/target-lexicon/src/targets.rs
|
||||
index d03d202a0..7d7c0ee95 100644
|
||||
--- a/vendor/target-lexicon/src/targets.rs
|
||||
+++ b/vendor/target-lexicon/src/targets.rs
|
||||
@@ -1624,6 +1624,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-ibm-aix",
|
||||
"powerpc64-unknown-freebsd",
|
||||
"powerpc64-unknown-linux-gnu",
|
||||
--
|
||||
2.44.0
|
||||
|
||||
@ -1,50 +0,0 @@
|
||||
From c9d31b711e8906cf248566f43142f20b03e20cbf Mon Sep 17 00:00:00 2001
|
||||
From: Edward Thomson <ethomson@edwardthomson.com>
|
||||
Date: Fri, 17 Nov 2023 16:54:47 +0000
|
||||
Subject: [PATCH] revparse: fix parsing bug for trailing `@`
|
||||
|
||||
Origin: https://github.com/libgit2/libgit2/commit/c9d31b711e8906cf248566f43142f20b03e20cbf
|
||||
|
||||
When parsing a revspec that ends with a trailing `@`, explicitly stop
|
||||
parsing. Introduce a sentinel variable to explicitly stop parsing.
|
||||
|
||||
Prior to this, we would set `spec` to `HEAD`, but were looping on the
|
||||
value of `spec[pos]`, so we would continue walking the (new) `spec`
|
||||
at offset `pos`, looking for a NUL. This is obviously an out-of-bounds
|
||||
read.
|
||||
|
||||
Credit to Michael Rodler (@f0rki) and Amazon AWS Security.
|
||||
---
|
||||
vendor/libgit2-sys/libgit2/src/libgit2/revparse.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/vendor/libgit2-sys/libgit2/src/libgit2/revparse.c b/vendor/libgit2-sys/libgit2/src/libgit2/revparse.c
|
||||
index 964afe378da..06d92f82bf2 100644
|
||||
--- a/vendor/libgit2-sys/libgit2/src/libgit2/revparse.c
|
||||
+++ b/vendor/libgit2-sys/libgit2/src/libgit2/revparse.c
|
||||
@@ -701,6 +701,7 @@ static int revparse(
|
||||
git_object *base_rev = NULL;
|
||||
|
||||
bool should_return_reference = true;
|
||||
+ bool parsed = false;
|
||||
|
||||
GIT_ASSERT_ARG(object_out);
|
||||
GIT_ASSERT_ARG(reference_out);
|
||||
@@ -710,7 +711,7 @@ static int revparse(
|
||||
*object_out = NULL;
|
||||
*reference_out = NULL;
|
||||
|
||||
- while (spec[pos]) {
|
||||
+ while (!parsed && spec[pos]) {
|
||||
switch (spec[pos]) {
|
||||
case '^':
|
||||
should_return_reference = false;
|
||||
@@ -817,6 +818,8 @@ static int revparse(
|
||||
break;
|
||||
} else if (spec[pos+1] == '\0') {
|
||||
spec = "HEAD";
|
||||
+ identifier_len = 4;
|
||||
+ parsed = true;
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
@ -1,51 +0,0 @@
|
||||
From eb4c1716cd92bf56f2770653a915d5fc01eab8f3 Mon Sep 17 00:00:00 2001
|
||||
From: Edward Thomson <ethomson@edwardthomson.com>
|
||||
Date: Sat, 16 Dec 2023 11:19:07 +0000
|
||||
Subject: [PATCH] index: correct index has_dir_name check
|
||||
|
||||
Origin: https://github.com/libgit2/libgit2/commit/eb4c1716cd92bf56f2770653a915d5fc01eab8f3
|
||||
|
||||
`has_dir_name` is used to check for directory/file collisions,
|
||||
and attempts to determine whether the index contains a file with
|
||||
a directory name that is a proper subset of the new index entry
|
||||
that we're trying to add.
|
||||
|
||||
To determine directory name, the function would walk the path string
|
||||
backwards to identify a `/`, stopping at the end of the string. However,
|
||||
the function assumed that the strings did not start with a `/`. If the
|
||||
paths contain only a single `/` at the beginning of the string, then the
|
||||
function would continue the loop, erroneously, when they should have
|
||||
stopped at the first character.
|
||||
|
||||
Correct the order of the tests to terminate properly.
|
||||
|
||||
Credit to Michael Rodler (@f0rki) and Amazon AWS Security.
|
||||
|
||||
---
|
||||
vendor/libgit2-sys/libgit2/src/libgit2/index.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/vendor/libgit2-sys/libgit2/src/libgit2/index.c b/vendor/libgit2-sys/libgit2/src/libgit2/index.c
|
||||
index 7ebe075..7862273 100644
|
||||
--- a/vendor/libgit2-sys/libgit2/src/libgit2/index.c
|
||||
+++ b/vendor/libgit2-sys/libgit2/src/libgit2/index.c
|
||||
@@ -1155,10 +1155,14 @@ static int has_dir_name(git_index *index,
|
||||
size_t len, pos;
|
||||
|
||||
for (;;) {
|
||||
- if (*--slash == '/')
|
||||
- break;
|
||||
+ slash--;
|
||||
+
|
||||
if (slash <= entry->path)
|
||||
return 0;
|
||||
+
|
||||
+
|
||||
+ if (*slash == '/')
|
||||
+ break;
|
||||
}
|
||||
len = slash - name;
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
296
embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch
Normal file
296
embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch
Normal file
@ -0,0 +1,296 @@
|
||||
From a599284dbac82d272aac53a7ace524484b4bb4dc Mon Sep 17 00:00:00 2001
|
||||
From: kxxt <rsworktech@outlook.com>
|
||||
Date: Sun, 28 Jan 2024 18:38:41 +0800
|
||||
Subject: [PATCH] embed riscv64 target abi in bc when plugin-lto is used
|
||||
|
||||
Fixes chromium linking error.
|
||||
|
||||
Related:
|
||||
- https://discourse.llvm.org/t/encode-target-abi-into-llvm-bitcode-for-lto/54116
|
||||
- https://internals.rust-lang.org/t/per-target-llvm-module-flags/12023
|
||||
---
|
||||
compiler/rustc_codegen_llvm/src/back/lto.rs | 2 +-
|
||||
compiler/rustc_codegen_llvm/src/context.rs | 49 +++++++++++++------
|
||||
.../rustc_codegen_llvm/src/debuginfo/mod.rs | 6 +--
|
||||
compiler/rustc_codegen_llvm/src/llvm/ffi.rs | 10 +++-
|
||||
compiler/rustc_codegen_llvm/src/llvm/mod.rs | 5 ++
|
||||
.../rustc_llvm/llvm-wrapper/RustWrapper.cpp | 11 ++++-
|
||||
6 files changed, 62 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/back/lto.rs b/compiler/rustc_codegen_llvm/src/back/lto.rs
|
||||
index 42bd8687042a1..6c204b7ab2bc9 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/back/lto.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/back/lto.rs
|
||||
@@ -607,7 +607,7 @@ pub(crate) fn run_pass_manager(
|
||||
"LTOPostLink".as_ptr().cast(),
|
||||
11,
|
||||
) {
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
module.module_llvm.llmod(),
|
||||
llvm::LLVMModFlagBehavior::Error,
|
||||
c"LTOPostLink".as_ptr().cast(),
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
|
||||
index 6cb62280a595e..ebb657f97b398 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/context.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/context.rs
|
||||
@@ -30,6 +30,7 @@ use rustc_span::Span;
|
||||
use rustc_target::abi::{
|
||||
call::FnAbi, HasDataLayout, PointeeInfo, Size, TargetDataLayout, VariantIdx,
|
||||
};
|
||||
+use rustc_target::spec::TargetTriple;
|
||||
use rustc_target::spec::{HasTargetSpec, RelocModel, Target, TlsModel};
|
||||
use smallvec::SmallVec;
|
||||
|
||||
@@ -203,13 +204,13 @@ pub unsafe fn create_module<'ll>(
|
||||
// to ensure intrinsic calls don't use it.
|
||||
if !sess.needs_plt() {
|
||||
let avoid_plt = c"RtLibUseGOT".as_ptr().cast();
|
||||
- llvm::LLVMRustAddModuleFlag(llmod, llvm::LLVMModFlagBehavior::Warning, avoid_plt, 1);
|
||||
+ llvm::LLVMRustAddModuleFlagU32(llmod, llvm::LLVMModFlagBehavior::Warning, avoid_plt, 1);
|
||||
}
|
||||
|
||||
// Enable canonical jump tables if CFI is enabled. (See https://reviews.llvm.org/D65629.)
|
||||
if sess.is_sanitizer_cfi_canonical_jump_tables_enabled() && sess.is_sanitizer_cfi_enabled() {
|
||||
let canonical_jump_tables = c"CFI Canonical Jump Tables".as_ptr().cast();
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Override,
|
||||
canonical_jump_tables,
|
||||
@@ -220,7 +221,7 @@ pub unsafe fn create_module<'ll>(
|
||||
// Enable LTO unit splitting if specified or if CFI is enabled. (See https://reviews.llvm.org/D53891.)
|
||||
if sess.is_split_lto_unit_enabled() || sess.is_sanitizer_cfi_enabled() {
|
||||
let enable_split_lto_unit = c"EnableSplitLTOUnit".as_ptr().cast();
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Override,
|
||||
enable_split_lto_unit,
|
||||
@@ -231,7 +232,7 @@ pub unsafe fn create_module<'ll>(
|
||||
// Add "kcfi" module flag if KCFI is enabled. (See https://reviews.llvm.org/D119296.)
|
||||
if sess.is_sanitizer_kcfi_enabled() {
|
||||
let kcfi = c"kcfi".as_ptr().cast();
|
||||
- llvm::LLVMRustAddModuleFlag(llmod, llvm::LLVMModFlagBehavior::Override, kcfi, 1);
|
||||
+ llvm::LLVMRustAddModuleFlagU32(llmod, llvm::LLVMModFlagBehavior::Override, kcfi, 1);
|
||||
}
|
||||
|
||||
// Control Flow Guard is currently only supported by the MSVC linker on Windows.
|
||||
@@ -240,7 +241,7 @@ pub unsafe fn create_module<'ll>(
|
||||
CFGuard::Disabled => {}
|
||||
CFGuard::NoChecks => {
|
||||
// Set `cfguard=1` module flag to emit metadata only.
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
c"cfguard".as_ptr() as *const _,
|
||||
@@ -249,7 +250,7 @@ pub unsafe fn create_module<'ll>(
|
||||
}
|
||||
CFGuard::Checks => {
|
||||
// Set `cfguard=2` module flag to emit metadata and checks.
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
c"cfguard".as_ptr() as *const _,
|
||||
@@ -267,26 +268,26 @@ pub unsafe fn create_module<'ll>(
|
||||
};
|
||||
|
||||
if sess.target.arch == "aarch64" {
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
behavior,
|
||||
c"branch-target-enforcement".as_ptr().cast(),
|
||||
bti.into(),
|
||||
);
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
behavior,
|
||||
c"sign-return-address".as_ptr().cast(),
|
||||
pac_ret.is_some().into(),
|
||||
);
|
||||
let pac_opts = pac_ret.unwrap_or(PacRet { leaf: false, key: PAuthKey::A });
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
behavior,
|
||||
c"sign-return-address-all".as_ptr().cast(),
|
||||
pac_opts.leaf.into(),
|
||||
);
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
behavior,
|
||||
c"sign-return-address-with-bkey".as_ptr().cast(),
|
||||
@@ -302,7 +303,7 @@ pub unsafe fn create_module<'ll>(
|
||||
|
||||
// Pass on the control-flow protection flags to LLVM (equivalent to `-fcf-protection` in Clang).
|
||||
if let CFProtection::Branch | CFProtection::Full = sess.opts.unstable_opts.cf_protection {
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Override,
|
||||
c"cf-protection-branch".as_ptr().cast(),
|
||||
@@ -310,7 +311,7 @@ pub unsafe fn create_module<'ll>(
|
||||
)
|
||||
}
|
||||
if let CFProtection::Return | CFProtection::Full = sess.opts.unstable_opts.cf_protection {
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Override,
|
||||
c"cf-protection-return".as_ptr().cast(),
|
||||
@@ -319,7 +320,7 @@ pub unsafe fn create_module<'ll>(
|
||||
}
|
||||
|
||||
if sess.opts.unstable_opts.virtual_function_elimination {
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Error,
|
||||
c"Virtual Function Elim".as_ptr().cast(),
|
||||
@@ -329,7 +330,7 @@ pub unsafe fn create_module<'ll>(
|
||||
|
||||
// Set module flag to enable Windows EHCont Guard (/guard:ehcont).
|
||||
if sess.opts.unstable_opts.ehcont_guard {
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
c"ehcontguard".as_ptr() as *const _,
|
||||
@@ -354,6 +355,24 @@ pub unsafe fn create_module<'ll>(
|
||||
llvm::LLVMMDNodeInContext(llcx, &name_metadata, 1),
|
||||
);
|
||||
|
||||
+ // Embed target-abi into bitcode for rv64gc when plugin-lto is enabled
|
||||
+ // Relevant:
|
||||
+ // https://discourse.llvm.org/t/encode-target-abi-into-llvm-bitcode-for-lto/54116
|
||||
+ // https://internals.rust-lang.org/t/per-target-llvm-module-flags/12023
|
||||
+ if sess.opts.cg.linker_plugin_lto.enabled() {
|
||||
+ let TargetTriple::TargetTriple(ref triple) = sess.opts.target_triple else {
|
||||
+ panic!("Unexpected TargetTriple::TargetJson")
|
||||
+ };
|
||||
+ if triple == "riscv64gc-unknown-linux-gnu" {
|
||||
+ llvm::LLVMRustAddModuleFlagString(
|
||||
+ llmod,
|
||||
+ llvm::LLVMModFlagBehavior::Error,
|
||||
+ c"target-abi".as_ptr() as *const _,
|
||||
+ c"lp64d".as_ptr() as *const _,
|
||||
+ )
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// Add module flags specified via -Z llvm_module_flag
|
||||
for (key, value, behavior) in &sess.opts.unstable_opts.llvm_module_flag {
|
||||
let key = format!("{key}\0");
|
||||
@@ -369,7 +388,7 @@ pub unsafe fn create_module<'ll>(
|
||||
// We already checked this during option parsing
|
||||
_ => unreachable!(),
|
||||
};
|
||||
- llvm::LLVMRustAddModuleFlag(llmod, behavior, key.as_ptr().cast(), *value)
|
||||
+ llvm::LLVMRustAddModuleFlagU32(llmod, behavior, key.as_ptr().cast(), *value)
|
||||
}
|
||||
|
||||
llmod
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs b/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs
|
||||
index d3a851b40c0a2..4fdaa59e0e559 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs
|
||||
@@ -110,7 +110,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> {
|
||||
.unstable_opts
|
||||
.dwarf_version
|
||||
.unwrap_or(sess.target.default_dwarf_version);
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
self.llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
c"Dwarf Version".as_ptr().cast(),
|
||||
@@ -118,7 +118,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> {
|
||||
);
|
||||
} else {
|
||||
// Indicate that we want CodeView debug information on MSVC
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
self.llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
c"CodeView".as_ptr().cast(),
|
||||
@@ -127,7 +127,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> {
|
||||
}
|
||||
|
||||
// Prevent bitcode readers from deleting the debug info.
|
||||
- llvm::LLVMRustAddModuleFlag(
|
||||
+ llvm::LLVMRustAddModuleFlagU32(
|
||||
self.llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
c"Debug Info Version".as_ptr().cast(),
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs
|
||||
index ee73c6b4756f0..4d1fc09c54854 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs
|
||||
@@ -1793,12 +1793,20 @@ extern "C" {
|
||||
///
|
||||
/// In order for Rust-C LTO to work, module flags must be compatible with Clang. What
|
||||
/// "compatible" means depends on the merge behaviors involved.
|
||||
- pub fn LLVMRustAddModuleFlag(
|
||||
+ pub fn LLVMRustAddModuleFlagU32(
|
||||
M: &Module,
|
||||
merge_behavior: LLVMModFlagBehavior,
|
||||
name: *const c_char,
|
||||
value: u32,
|
||||
);
|
||||
+
|
||||
+ pub fn LLVMRustAddModuleFlagString(
|
||||
+ M: &Module,
|
||||
+ merge_behavior: LLVMModFlagBehavior,
|
||||
+ name: *const c_char,
|
||||
+ value: *const c_char,
|
||||
+ );
|
||||
+
|
||||
pub fn LLVMRustHasModuleFlag(M: &Module, name: *const c_char, len: size_t) -> bool;
|
||||
|
||||
pub fn LLVMRustDIBuilderCreate(M: &Module) -> &mut DIBuilder<'_>;
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/llvm/mod.rs b/compiler/rustc_codegen_llvm/src/llvm/mod.rs
|
||||
index 4f5cc575da6e5..73cd5e3052413 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/llvm/mod.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/llvm/mod.rs
|
||||
@@ -324,3 +324,8 @@ impl Drop for OperandBundleDef<'_> {
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+pub enum LLVMModFlagValue {
|
||||
+ String(String),
|
||||
+ U32(u32),
|
||||
+}
|
||||
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
|
||||
index 0df7b7eed11f9..7408526f6ebef 100644
|
||||
--- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
|
||||
+++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
|
||||
@@ -748,7 +748,7 @@ extern "C" uint32_t LLVMRustVersionMinor() { return LLVM_VERSION_MINOR; }
|
||||
|
||||
extern "C" uint32_t LLVMRustVersionMajor() { return LLVM_VERSION_MAJOR; }
|
||||
|
||||
-extern "C" void LLVMRustAddModuleFlag(
|
||||
+extern "C" void LLVMRustAddModuleFlagU32(
|
||||
LLVMModuleRef M,
|
||||
Module::ModFlagBehavior MergeBehavior,
|
||||
const char *Name,
|
||||
@@ -756,6 +756,15 @@ extern "C" void LLVMRustAddModuleFlag(
|
||||
unwrap(M)->addModuleFlag(MergeBehavior, Name, Value);
|
||||
}
|
||||
|
||||
+extern "C" void LLVMRustAddModuleFlagString(
|
||||
+ LLVMModuleRef M,
|
||||
+ Module::ModFlagBehavior MergeBehavior,
|
||||
+ const char *Name,
|
||||
+ const char *Value) {
|
||||
+ llvm::LLVMContext &Ctx = unwrap(M)->getContext();
|
||||
+ unwrap(M)->addModuleFlag(MergeBehavior, Name, llvm::MDString::get(Ctx, Value));
|
||||
+}
|
||||
+
|
||||
extern "C" bool LLVMRustHasModuleFlag(LLVMModuleRef M, const char *Name,
|
||||
size_t Len) {
|
||||
return unwrap(M)->getModuleFlag(StringRef(Name, Len)) != nullptr;
|
||||
77
rust.spec
77
rust.spec
@ -1,7 +1,7 @@
|
||||
%global bootstrap_rust 1.75.0
|
||||
%global bootstrap_cargo 1.75.0
|
||||
%global bootstrap_channel 1.75.0
|
||||
%global bootstrap_date 2023-12-28
|
||||
%global bootstrap_rust 1.76.0
|
||||
%global bootstrap_cargo 1.76.0
|
||||
%global bootstrap_channel 1.76.0
|
||||
%global bootstrap_date 2024-02-08
|
||||
%bcond_with llvm_static
|
||||
%bcond_with bundled_llvm
|
||||
%bcond_without bundled_libgit2
|
||||
@ -10,8 +10,8 @@
|
||||
%bcond_without analyzer
|
||||
|
||||
Name: rust
|
||||
Version: 1.76.0
|
||||
Release: 1
|
||||
Version: 1.77.0
|
||||
Release: 5
|
||||
Summary: The Rust Programming Language
|
||||
License: Apache-2.0 OR MIT
|
||||
URL: https://www.rust-lang.org
|
||||
@ -23,13 +23,16 @@ Source3: cargo-config
|
||||
Source4: cargo-config.sh
|
||||
Source5: cargo-config.csh
|
||||
|
||||
Patch0000: rustc-1.76.0-disable-libssh2.patch
|
||||
Patch0000: rustc-1.77.0-disable-libssh2.patch
|
||||
# By default, rust tries to use "rust-lld" as a linker for some targets.
|
||||
Patch0001: 0001-Use-lld-provided-by-system.patch
|
||||
# Set a substitute-path in rust-gdb for standard library sources.
|
||||
Patch0002: rustc-1.70.0-rust-gdb-substitute-path.patch
|
||||
Patch0003: CVE-2024-24575.patch
|
||||
Patch0004: CVE-2024-24577.patch
|
||||
Patch0003: 0001-add-support-for-ppc64le.patch
|
||||
|
||||
%ifarch riscv64
|
||||
Patch1000: embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch
|
||||
%endif
|
||||
|
||||
%{lua: function rust_triple(arch)
|
||||
local abi = "gnu"
|
||||
@ -42,6 +45,8 @@ Patch0004: CVE-2024-24577.patch
|
||||
arch = "powerpc64le"
|
||||
elseif arch == "riscv64" then
|
||||
arch = "riscv64gc"
|
||||
elseif arch == "loongarch64" then
|
||||
arch = "loongarch64"
|
||||
end
|
||||
return arch.."-unknown-linux-"..abi
|
||||
end}
|
||||
@ -113,6 +118,8 @@ BuildRequires: %{llvm}-static libffi-devel
|
||||
%endif
|
||||
BuildRequires: procps-ng
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: compiler-rt
|
||||
BuildRequires: clang
|
||||
Provides: rustc = %{version}-%{release}
|
||||
Provides: rustc%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-std-static%{?_isa} = %{version}-%{release}
|
||||
@ -236,12 +243,10 @@ Man pages and other related help documents for rust.
|
||||
|
||||
%prep
|
||||
# download source0 and gpg check
|
||||
cd %{_sourcedir}
|
||||
rm -f %{SOURCE0}
|
||||
wget https://user-repo.openeuler.openatom.cn/lfs-tar/rust/rustc-%{version}-src.tar.xz
|
||||
wget -qO %{SOURCE0} https://user-repo.openeuler.openatom.cn/lfs-tar/rust/rustc-%{version}-src.tar.xz
|
||||
gpg --import %{SOURCE2}
|
||||
gpg --verify %{SOURCE1} %{SOURCE0}
|
||||
cd -
|
||||
|
||||
%ifarch %{bootstrap_arches}
|
||||
%setup -q -n %{bootstrap_root} -T -b %{bootstrap_source}
|
||||
./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \
|
||||
@ -259,7 +264,9 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure
|
||||
%patch -P 0001 -p1
|
||||
%patch -P 0002 -p1
|
||||
%patch -P 0003 -p1
|
||||
%patch -P 0004 -p1
|
||||
%ifarch riscv64
|
||||
%patch -P 1000 -p1
|
||||
%endif
|
||||
rm -rf vendor/curl-sys*/curl/
|
||||
rm -rf vendor/jemalloc-sys/jemalloc/
|
||||
rm -rf vendor/libffi-sys*/libffi/
|
||||
@ -312,10 +319,33 @@ max_cpus=$(( ($(free -g | awk '/^Mem:/{print $2}') + 1) / 2 ))
|
||||
if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then
|
||||
ncpus="$max_cpus"
|
||||
fi
|
||||
# Find the compiler-rt library for the Rust profiler_builtins crate.
|
||||
# But there are two versions in openEuler. Why?
|
||||
# We don't have macros.clang so we need clang version here
|
||||
# This is for avoiding rpm syntax error
|
||||
%ifarch ppc64le
|
||||
%global _arch powerpc64le
|
||||
%endif
|
||||
%global clang_maj_ver 17
|
||||
%if %{?clang_maj_ver} >= 17
|
||||
# This is the new one, used on openEuler 24.03 LTS or later
|
||||
%define profiler %(echo %{_prefix}/%{_lib}/clang/%{clang_maj_ver}/lib/%{_arch}-%{_vendor}-linux-gnu/libclang_rt.profile.a)
|
||||
%else
|
||||
# This is used before openEuler 23.09
|
||||
%global clang_full_ver %%(clang --version | awk '/clang version/{print $3}')
|
||||
%define profiler %(echo %{_prefix}/%{_lib}/clang/%{clang_full_ver}/lib/libclang_rt.profile-%{_arch}.a)
|
||||
%endif
|
||||
test -r "%{profiler}"
|
||||
|
||||
%configure --disable-option-checking \
|
||||
--libdir=%{common_libdir} \
|
||||
%ifarch loongarch64
|
||||
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \
|
||||
%else
|
||||
%{rust_musl_root}=%{musl_root} \
|
||||
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple},%{rust_musl_triple} \
|
||||
%endif
|
||||
--set target.%{rust_triple}.profiler="%{profiler}" \
|
||||
--python=%{python} \
|
||||
--local-rust-root=%{local_rust_root} \
|
||||
%{!?with_bundled_llvm: --llvm-root=%{llvm_root} \
|
||||
@ -412,20 +442,24 @@ export %{rust_env}
|
||||
%{_libexecdir}/rust-analyzer-proc-macro-srv
|
||||
%endif
|
||||
%{rustlibdir}/%{rust_triple}/lib/*.so
|
||||
%ifnarch loongarch64
|
||||
%dir %{rustlibdir}/%{rust_musl_triple}
|
||||
%dir %{rustlibdir}/%{rust_musl_triple}/lib
|
||||
%endif
|
||||
|
||||
%files std-static
|
||||
%dir %{rustlibdir}
|
||||
%dir %{rustlibdir}/%{rust_triple}
|
||||
%dir %{rustlibdir}/%{rust_triple}/lib
|
||||
%{rustlibdir}/%{rust_triple}/lib/*.rlib
|
||||
%ifnarch loongarch64
|
||||
%dir %{rustlibdir}/%{rust_musl_triple}
|
||||
%dir %{rustlibdir}/%{rust_musl_triple}/lib
|
||||
%{rustlibdir}/%{rust_musl_triple}/lib/*.rlib
|
||||
%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/*.o
|
||||
%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/libunwind.a
|
||||
%{rustlibdir}/%{rust_musl_triple}/lib/self-contained/libc.a
|
||||
%endif
|
||||
|
||||
%files debugger-common
|
||||
%dir %{rustlibdir}
|
||||
@ -490,6 +524,21 @@ export %{rust_env}
|
||||
%{_mandir}/man1/cargo*.1*
|
||||
|
||||
%changelog
|
||||
* Thu Jun 13 2024 jianchunfu <chunfu.jian@shingroup.cn> - 1.77.0-5
|
||||
- spec: Add support for ppc64le
|
||||
|
||||
* Wed Jun 05 2024 Wenlong Zhang <zhangwenlong@loongson.cn> - 1.77.0-4
|
||||
- disable musl for loongarch64
|
||||
|
||||
* Mon Apr 22 2024 panchenbo <panchenbo@kylinsec.com.cn> - 1.77.0-3
|
||||
- Modify openEuler to vendor
|
||||
|
||||
* Thu Apr 11 2024 misaka00251 <liuxin@iscas.ac.cn> - 1.77.0-2
|
||||
- Enable profiler builtin
|
||||
|
||||
* Wed Apr 03 2024 wangkai <13474090681@163.com> - 1.77.0-1
|
||||
- Update to 1.77.0
|
||||
|
||||
* Tue Feb 20 2024 wangkai <13474090681@163.com> - 1.76.0-1
|
||||
- Update to 1.76.0
|
||||
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2024-01-07 18:12:08.000000000 -0800
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-01-09 15:25:51.519781381 -0800
|
||||
@@ -2071,7 +2071,6 @@
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
- "libssh2-sys",
|
||||
"libz-sys",
|
||||
"openssl-sys",
|
||||
"pkg-config",
|
||||
@@ -2113,20 +2112,6 @@
|
||||
"pkg-config",
|
||||
"vcpkg",
|
||||
]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "libssh2-sys"
|
||||
-version = "0.3.0"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
|
||||
-dependencies = [
|
||||
- "cc",
|
||||
- "libc",
|
||||
- "libz-sys",
|
||||
- "openssl-sys",
|
||||
- "pkg-config",
|
||||
- "vcpkg",
|
||||
-]
|
||||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2024-01-09 15:23:02.369032291 -0800
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-01-09 15:24:44.015679666 -0800
|
||||
@@ -40,7 +40,7 @@
|
||||
curl-sys = "0.4.70"
|
||||
filetime = "0.2.22"
|
||||
flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] }
|
||||
-git2 = "0.18.1"
|
||||
+git2 = { version = "0.18.1", default-features = false, features = ["https"] }
|
||||
git2-curl = "0.19.0"
|
||||
gix = { version = "0.56.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] }
|
||||
gix-features-for-configuration-only = { version = "0.35.0", package = "gix-features", features = [ "parallel" ] }
|
||||
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAABCgAQBQJlxNqSCRCFq5bm+hvl/gAA8kIP/ib21y3Rg18POvESXFDPmXAT
|
||||
blvZsJwR4GsPcUeT2cUYEsWqrtEjoEjMPDumhaSJY4nt6wuAdpCSDf9RQxFSn5vW
|
||||
Um68Q4dMqmIA2BOIbgDYIBwMUm+Q/ft+1eaKvitJSldqJCTFVXCee1MxeHpE9HSb
|
||||
2sBC1sGD0aPecMJ9gnSYo57O9rAtItfWroek8KJ+NOxWABHkbRxhx4wSTK4mPy1i
|
||||
DAtL4VYXomN3OvU1JiunAKhyuIttnrkH92x+YeUlNwOeLTECfLp8sq9yD0hgAkdW
|
||||
b12ARrQCnBV3HwrgQNIw78ypPOSDYj4B++NB5F2j3wMCyIs6j/891F14ugzLEHuO
|
||||
b1sjw/xW12kgUbRoyoW/5o60qE18QxgKaxNfgRme/XEF7hBxwFhOcc3BrBTvcA70
|
||||
enFXpiqswpdvAMpW/YNEwT+Zm0UnWmsU9NXSB4cc8otL9Hj4oYyfX1q6XgmuyupL
|
||||
jNXSd5evfTEjqcnpHFe0pnNJEExET7EQsEWFgn9J4K7hymSu/bliHMBIx+DAA4Ry
|
||||
IMBP51oj+o+I8E84z9LDlBshGvcJvYsAXMrbpHonng7u9smitSA+oAy54qevS8+9
|
||||
kK+UYY95Pl++BxdAFemsldoC0KkKJXGxK0FR2o1ttAA1I+uXrJLJXg8/K7binCeW
|
||||
A7AXRJdE/spq/O9snPcA
|
||||
=lnbm
|
||||
-----END PGP SIGNATURE-----
|
||||
44
rustc-1.77.0-disable-libssh2.patch
Normal file
44
rustc-1.77.0-disable-libssh2.patch
Normal file
@ -0,0 +1,44 @@
|
||||
diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2024-02-14 14:06:05.881165093 +0100
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-02-14 14:06:27.169456166 +0100
|
||||
@@ -2072,7 +2072,6 @@ checksum = "ee4126d8b4ee5c9d9ea891dd875c
|
||||
dependencies = [
|
||||
"cc",
|
||||
"libc",
|
||||
- "libssh2-sys",
|
||||
"libz-sys",
|
||||
"openssl-sys",
|
||||
"pkg-config",
|
||||
@@ -2113,20 +2112,6 @@ dependencies = [
|
||||
"pkg-config",
|
||||
"vcpkg",
|
||||
]
|
||||
-
|
||||
-[[package]]
|
||||
-name = "libssh2-sys"
|
||||
-version = "0.3.0"
|
||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
|
||||
-dependencies = [
|
||||
- "cc",
|
||||
- "libc",
|
||||
- "libz-sys",
|
||||
- "openssl-sys",
|
||||
- "pkg-config",
|
||||
- "vcpkg",
|
||||
-]
|
||||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml
|
||||
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2024-02-14 14:06:10.400226884 +0100
|
||||
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-02-14 14:06:51.225785086 +0100
|
||||
@@ -44,7 +44,7 @@ curl = "0.4.44"
|
||||
curl-sys = "0.4.70"
|
||||
filetime = "0.2.23"
|
||||
flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] }
|
||||
-git2 = "0.18.2"
|
||||
+git2 = { version = "0.18.2", default-features = false, features = ["https"] }
|
||||
git2-curl = "0.19.0"
|
||||
gix = { version = "0.57.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] }
|
||||
gix-features-for-configuration-only = { version = "0.37.1", package = "gix-features", features = [ "parallel" ] }
|
||||
16
rustc-1.77.0-src.tar.xz.asc
Normal file
16
rustc-1.77.0-src.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAABCgAQBQJl/CkOCRCFq5bm+hvl/gAAuN4P/AxpjflIRg2vOkzczcrTlQYU
|
||||
fe9c75ru0IH5RpKZ4sTVaG+qoJqsTD/08Dzv06KzNqiShXFBGsSaZ3f46n7jZW8f
|
||||
bYQFNeCU8jz2DxxvoAty38Zlk5ib/38Cu95ckSoXBDuycXrFTY9ojc6NWSu2vNE4
|
||||
JXv2yRkW6hiNdO87/KV5H8eshklOGudWVkcoRRZw91X2DopsdqTMiCHzPOWGK3J1
|
||||
mdz9DjkVj6DKDetrbuX/7N1zosI49Zmg5Eb15JE30pG43l7pyCfKtB2IKpLmugNn
|
||||
hSi9QqpL0/qKHWVNJ2E2ZkVrCtdX8crxlN8iE/U+VNVa7ZpzsIv7w7SYI4e15HEd
|
||||
pPWfurYy0gKNpOABiROebqfAfPgDUyU9sufvDnQJD5jv0LWqrBibm2fekIc4xC1B
|
||||
hvXU46xfXiVqwIgR5FjmwVEwphZoGmju4WrMLQ/bVjfMC8MInISQv4MiFw/0JY/B
|
||||
f0ePnVQ2kRU/ls1VxidXnKalTNSoR1ORGVDNR3wJV0Ju9xROzWWO0b9p4m5ciyO+
|
||||
uwMTQcyxyCtNfnxpXTB3XY2YD1ZjqIzop9D3+aRMajxa/PmlxhgXveUjDUc6tc+v
|
||||
9rQODuxbKHKbg4BlVrtMWIVDV0zArASTuTI3u74+aPCht7Dq3AsnWHhAydeGKwoT
|
||||
hM+dv4sh161mi7G6WMgN
|
||||
=eWLu
|
||||
-----END PGP SIGNATURE-----
|
||||
Loading…
x
Reference in New Issue
Block a user