diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..d87f5613ec4234f82f8eaeebc563711f587fdf88 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.xz filter=lfs diff=lfs merge=lfs -text diff --git a/.lfsconfig b/.lfsconfig new file mode 100644 index 0000000000000000000000000000000000000000..a8a12cdf73a824f5e555931ea5e8a134c3bd3968 --- /dev/null +++ b/.lfsconfig @@ -0,0 +1,2 @@ +[lfs] + url = https://artlfs.openeuler.openatom.cn/src-openEuler/rust \ No newline at end of file diff --git a/0001-Use-lld-provided-by-system-for-wasm.patch b/0001-Use-lld-provided-by-system-for-wasm.patch deleted file mode 100644 index fa75ad3a934e1cb3be012316b3a178f4f8841724..0000000000000000000000000000000000000000 --- a/0001-Use-lld-provided-by-system-for-wasm.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b521511174b1a08dddfac243604d649b71cc7386 Mon Sep 17 00:00:00 2001 -From: Ivan Mironov -Date: Sun, 8 Dec 2019 17:23:08 +0500 -Subject: [PATCH] Use lld provided by system for wasm - ---- - compiler/rustc_target/src/spec/wasm_base.rs | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/wasm_base.rs -index de7b7374af31..eebbe616e9b6 100644 ---- a/compiler/rustc_target/src/spec/wasm_base.rs -+++ b/compiler/rustc_target/src/spec/wasm_base.rs -@@ -99,8 +99,7 @@ pub fn options() -> TargetOptions { - // arguments just yet - limit_rdylib_exports: false, - -- // we use the LLD shipped with the Rust toolchain by default -- linker: Some("rust-lld".into()), -+ linker: Some("lld".into()), - lld_flavor: LldFlavor::Wasm, - linker_is_gnu: false, - --- -2.35.1 - diff --git a/0001-Use-lld-provided-by-system.patch b/0001-Use-lld-provided-by-system.patch new file mode 100644 index 0000000000000000000000000000000000000000..bee8e16d3f9007c027f246b2cee659becd5d3240 --- /dev/null +++ b/0001-Use-lld-provided-by-system.patch @@ -0,0 +1,53 @@ +From 61b5cc96337da2121221dd1bcdb63fd36551d065 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Wed, 1 Nov 2023 15:21:15 -0700 +Subject: [PATCH] Use lld provided by system + +--- + compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- + compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs | 2 +- + compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs | 1 + + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs +index 87ade9e58cf4..2ddff95febab 100644 +--- a/compiler/rustc_target/src/spec/base/wasm.rs ++++ b/compiler/rustc_target/src/spec/base/wasm.rs +@@ -91,8 +91,7 @@ macro_rules! args { + // arguments just yet + limit_rdylib_exports: false, + +- // we use the LLD shipped with the Rust toolchain by default +- linker: Some("rust-lld".into()), ++ linker: Some("lld".into()), + linker_flavor: LinkerFlavor::WasmLld(Cc::No), + + pre_link_args, +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs +index 9aa95a35f8e5..a9172f9441b7 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs +@@ -17,7 +17,7 @@ pub fn target() -> Target { + static_position_independent_executables: true, + relro_level: RelroLevel::Full, + linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), +- linker: Some("rust-lld".into()), ++ linker: Some("lld".into()), + features: + "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-3dnow,-3dnowa,-avx,-avx2,+soft-float" + .into(), +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs +index 5abfb8162f70..13cb43bda1a4 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs +@@ -16,6 +16,7 @@ pub fn target() -> Target { + base.plt_by_default = false; + base.max_atomic_width = Some(64); + base.entry_abi = Conv::X86_64Win64; ++ base.linker = Some("lld".into()); + + // We disable MMX and SSE for now, even though UEFI allows using them. Problem is, you have to + // enable these CPU features explicitly before their first use, otherwise their instructions +-- +2.41.0 + diff --git a/0001-rustc_transmute-fix-big-endian-discriminants.patch b/0001-rustc_transmute-fix-big-endian-discriminants.patch deleted file mode 100644 index 372852d31790550c93f7b8c63f4f26ac90417f1c..0000000000000000000000000000000000000000 --- a/0001-rustc_transmute-fix-big-endian-discriminants.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2946828fcb8e2e68a16839dfcf4319bf119f8acd Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Tue, 20 Sep 2022 13:03:43 -0700 -Subject: [PATCH] rustc_transmute: fix big-endian discriminants - -(cherry picked from commit a72666ed56ec5f1b6d254c7020cf86143edc6dbd) ---- - compiler/rustc_transmute/src/layout/tree.rs | 22 +++++++++++++++------ - 1 file changed, 16 insertions(+), 6 deletions(-) - -diff --git a/compiler/rustc_transmute/src/layout/tree.rs b/compiler/rustc_transmute/src/layout/tree.rs -index 70b3ba02b05b..e4fcde35ed37 100644 ---- a/compiler/rustc_transmute/src/layout/tree.rs -+++ b/compiler/rustc_transmute/src/layout/tree.rs -@@ -402,7 +402,7 @@ fn from_repr_c_variant( - .unwrap(); - tracing::trace!(?discr_layout, "computed discriminant layout"); - variant_layout = variant_layout.extend(discr_layout).unwrap().0; -- tree = tree.then(Self::from_disr(discr, tcx, layout_summary.discriminant_size)); -+ tree = tree.then(Self::from_discr(discr, tcx, layout_summary.discriminant_size)); - } - - // Next come fields. -@@ -442,11 +442,21 @@ fn from_repr_c_variant( - Ok(tree) - } - -- pub fn from_disr(discr: Discr<'tcx>, tcx: TyCtxt<'tcx>, size: usize) -> Self { -- // FIXME(@jswrenn): I'm certain this is missing needed endian nuance. -- let bytes = discr.val.to_ne_bytes(); -- let bytes = &bytes[..size]; -- Self::Seq(bytes.into_iter().copied().map(|b| Self::from_bits(b)).collect()) -+ pub fn from_discr(discr: Discr<'tcx>, tcx: TyCtxt<'tcx>, size: usize) -> Self { -+ use rustc_target::abi::Endian; -+ -+ let bytes: [u8; 16]; -+ let bytes = match tcx.data_layout.endian { -+ Endian::Little => { -+ bytes = discr.val.to_le_bytes(); -+ &bytes[..size] -+ } -+ Endian::Big => { -+ bytes = discr.val.to_be_bytes(); -+ &bytes[bytes.len() - size..] -+ } -+ }; -+ Self::Seq(bytes.iter().map(|&b| Self::from_bits(b)).collect()) - } - } - --- -2.37.3 - diff --git a/CVE-2024-24575.patch b/CVE-2024-24575.patch index b7591468cbe28ec92b94505842bb9a578ad874e4..82eb0430c08bbe1c05b6cd5335f4a37854b33e0e 100644 --- a/CVE-2024-24575.patch +++ b/CVE-2024-24575.patch @@ -15,13 +15,13 @@ read. Credit to Michael Rodler (@f0rki) and Amazon AWS Security. --- - vendor/libgit2-sys/libgit2/src/revparse.c | 5 ++++- + vendor/libgit2-sys/libgit2/src/libgit2/revparse.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -diff --git a/vendor/libgit2-sys/libgit2/src/revparse.c b/vendor/libgit2-sys/libgit2/src/revparse.c +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/revparse.c -+++ b/vendor/libgit2-sys/libgit2/src/revparse.c +--- 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; diff --git a/CVE-2024-24577.patch b/CVE-2024-24577.patch index 2314ff17fabf244d61da8f41e988612cc62ca376..f69477e0901cf92494dd1dcdc3611d122c83e740 100644 --- a/CVE-2024-24577.patch +++ b/CVE-2024-24577.patch @@ -22,13 +22,13 @@ Correct the order of the tests to terminate properly. Credit to Michael Rodler (@f0rki) and Amazon AWS Security. --- - vendor/libgit2-sys/libgit2/src/index.c | 8 ++++++-- + vendor/libgit2-sys/libgit2/src/libgit2/index.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) -diff --git a/vendor/libgit2-sys/libgit2/src/index.c b/vendor/libgit2-sys/libgit2/src/index.c +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/index.c -+++ b/vendor/libgit2-sys/libgit2/src/index.c +--- 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; diff --git a/cargo-help-clippy-should-have-description-to-user.patch b/cargo-help-clippy-should-have-description-to-user.patch deleted file mode 100644 index 5658c47257afa5b4be0cacffa1de88332f92e8c6..0000000000000000000000000000000000000000 --- a/cargo-help-clippy-should-have-description-to-user.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 4a2c2e81316960ffbcc3dc1c91758420d6db0a6e Mon Sep 17 00:00:00 2001 -From: si-gui -Date: Thu, 24 Jun 2021 16:35:12 +0800 -Subject: [PATCH] cargo help clippy should have description to user - ---- - src/tools/cargo/src/bin/cargo/cli.rs | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/tools/cargo/src/bin/cargo/cli.rs b/src/tools/cargo/src/bin/cargo/cli.rs -index 243f6ac0..c2dd8785 100644 ---- a/src/tools/cargo/src/bin/cargo/cli.rs -+++ b/src/tools/cargo/src/bin/cargo/cli.rs -@@ -135,7 +135,12 @@ Run with 'cargo -Z [FLAG] [SUBCOMMAND]'", - } else if is_verbose { - drop_println!(config, " {:<20} {}", name, path.display()); - } else { -- drop_println!(config, " {}", name); -+ if name.as_str() == "clippy" { -+ let summary = "Checks a package to catch common mistakes and improve your Rust code."; -+ drop_println!(config, " {}", name, summary); -+ } else { -+ drop_println!(config, " {}", name); -+ } - } - } - CommandInfo::Alias { target } => { --- -2.30.0 - diff --git a/clippy-driver-usage-should-user-friendly.patch b/clippy-driver-usage-should-user-friendly.patch deleted file mode 100644 index 5787dfe4314fcd557f1dc081234e5318fc83c214..0000000000000000000000000000000000000000 --- a/clippy-driver-usage-should-user-friendly.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 1062e11170d93df3c53b01c1a630a7151af3a003 Mon Sep 17 00:00:00 2001 -From: si-gui -Date: Wed, 23 Jun 2021 14:36:09 +0800 -Subject: [PATCH] clippy-driver usage should user friendly - ---- - src/tools/clippy/src/driver.rs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/tools/clippy/src/driver.rs b/src/tools/clippy/src/driver.rs -index f5f6c09e..7af74f15 100644 ---- a/src/tools/clippy/src/driver.rs -+++ b/src/tools/clippy/src/driver.rs -@@ -126,7 +126,7 @@ fn display_help() { - Checks a package to catch common mistakes and improve your Rust code. - - Usage: -- cargo clippy [options] [--] [...] -+ clippy-driver [options] [--] [...] - - Common options: - -h, --help Print this message --- -2.30.0 - diff --git a/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch b/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch new file mode 100644 index 0000000000000000000000000000000000000000..631a5eb9fb1006f2268e9a569730917ef8e2b892 --- /dev/null +++ b/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch @@ -0,0 +1,296 @@ +From a599284dbac82d272aac53a7ace524484b4bb4dc Mon Sep 17 00:00:00 2001 +From: kxxt +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; diff --git a/fix-a-println-wrong-format.patch b/fix-a-println-wrong-format.patch deleted file mode 100644 index d9456bec8267d97928f4e2368e28d0159192528a..0000000000000000000000000000000000000000 --- a/fix-a-println-wrong-format.patch +++ /dev/null @@ -1,25 +0,0 @@ -From edbb1b7011fe7bccf8a2efc71d806d61cd8e0c9b Mon Sep 17 00:00:00 2001 -From: si-gui -Date: Thu, 24 Jun 2021 20:15:14 +0800 -Subject: [PATCH] fix a println wrong format - ---- - src/tools/cargo/src/bin/cargo/cli.rs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/tools/cargo/src/bin/cargo/cli.rs b/src/tools/cargo/src/bin/cargo/cli.rs -index c2dd8785..9c240690 100644 ---- a/src/tools/cargo/src/bin/cargo/cli.rs -+++ b/src/tools/cargo/src/bin/cargo/cli.rs -@@ -137,7 +137,7 @@ Run with 'cargo -Z [FLAG] [SUBCOMMAND]'", - } else { - if name.as_str() == "clippy" { - let summary = "Checks a package to catch common mistakes and improve your Rust code."; -- drop_println!(config, " {}", name, summary); -+ drop_println!(config, " {:<20} {}", name, summary); - } else { - drop_println!(config, " {}", name); - } --- -2.30.0 - diff --git a/rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..56996a54380641753097e815543ad0fe1b45dc3f --- /dev/null +++ b/rust-1.76.0-aarch64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:171e118a34ad6bbf12540a3f1644649b0a9623c3381449ec4639f68bf293dc4e +size 217392212 diff --git a/rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..98cf99e985782ead95888f828e09d1ac176ca471 --- /dev/null +++ b/rust-1.76.0-x86_64-unknown-linux-gnu.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04fa0cf224ed36c9c7a5ea7a0ad7d31f5ad20dda5af0cc1e5991c703e01ef988 +size 159385660 diff --git a/rust-key.gpg.ascii b/rust-key.gpg.ascii new file mode 100644 index 0000000000000000000000000000000000000000..93e2282c7ad3cdab6812a51118103ceb85c29e5c --- /dev/null +++ b/rust-key.gpg.ascii @@ -0,0 +1,86 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +Mve696B5tlHyc1KxjHR6w9GRsh4= +=5FXw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/rust.spec b/rust.spec index 5ce7e9f961940c19b3b2a50d2fa10b5399fb29e6..c1970daccaa5b68759141881ffc345206a8461b9 100644 --- a/rust.spec +++ b/rust.spec @@ -1,38 +1,40 @@ -%global bootstrap_rust 1.63.0 -%global bootstrap_cargo 1.63.0 -%global bootstrap_channel 1.63.0 -%global bootstrap_date 2022-08-11 +%global bootstrap_rust 1.76.0 +%global bootstrap_cargo 1.76.0 +%global bootstrap_channel 1.76.0 +%global bootstrap_date 2024-02-08 +%global bootstrap_arches x86_64 aarch64 %bcond_with llvm_static %bcond_with bundled_llvm %bcond_without bundled_libgit2 %bcond_with disabled_libssh2 -%bcond_without curl_http2 %bcond_without lldb +%bcond_without analyzer + Name: rust -Version: 1.64.0 -Release: 3 +Version: 1.76.0 +Release: 1 Summary: The Rust Programming Language -License: (ASL 2.0 or MIT) and (BSD and MIT) +License: Apache-2.0 OR MIT URL: https://www.rust-lang.org Source0: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz -# SOURCE1-3: use local mirror for speed up -Source1: cargo-config -Source2: cargo-config.sh -Source3: cargo-config.csh - -Patch0000: rustc-1.60.0-disable-libssh2.patch -Patch0001: rustc-1.63.0-disable-http2.patch -Patch0002: clippy-driver-usage-should-user-friendly.patch -Patch0003: cargo-help-clippy-should-have-description-to-user.patch -Patch0004: fix-a-println-wrong-format.patch -# By default, rust tries to use "rust-lld" as a linker for WebAssembly. -Patch0005: 0001-Use-lld-provided-by-system-for-wasm.patch +Source1: https://static.rust-lang.org/dist/rustc-%{version}-src.tar.xz.asc +Source2: https://static.rust-lang.org/rust-key.gpg.ascii +# SOURCE3-5: use local mirror for speed up +Source3: cargo-config +Source4: cargo-config.sh +Source5: cargo-config.csh + +Patch0000: rustc-1.76.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. -Patch0006: rustc-1.61.0-rust-gdb-substitute-path.patch -# https://github.com/rust-lang/rust/pull/102076 -Patch0007: 0001-rustc_transmute-fix-big-endian-discriminants.patch -Patch0008: CVE-2024-24575.patch -Patch0009: CVE-2024-24577.patch +Patch0002: rustc-1.70.0-rust-gdb-substitute-path.patch +Patch0003: CVE-2024-24575.patch +Patch0004: CVE-2024-24577.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" @@ -45,14 +47,22 @@ Patch0009: 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} %{lua: function rust_musl_triple(arch) local abi = "musl" + if arch == "riscv64" then + arch = "riscv64gc" + end return arch.."-unknown-linux-"..abi end} %{lua: function rust_musl_root(arch) + if arch == "riscv64" then + arch = "riscv64gc" + end return "--musl-root-"..arch end} %global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))} @@ -69,9 +79,9 @@ end} local target_arch = rpm.expand("%{_target_cpu}") for i, arch in ipairs(bootstrap_arches) do print(string.format("Source%d: %s-%s.tar.xz\n", - i, base, rust_triple(arch))) + i+5, base, rust_triple(arch))) if arch == target_arch then - rpm.define("bootstrap_source "..i) + rpm.define("bootstrap_source "..i+5) end end end} @@ -86,28 +96,30 @@ BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version}) %global local_rust_root %{_prefix} %endif BuildRequires: make gcc gcc-c++ ncurses-devel curl curl-devel musl-libc-static musl-gcc pkgconfig(libcurl) pkgconfig(liblzma) -BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 +BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0 gnupg2 wget %global python python3 BuildRequires: %{python} %if %with bundled_llvm -BuildRequires: cmake3 >= 3.4.3 -Provides: bundled(llvm) = 11.0.1 +BuildRequires: cmake3 >= 3.13.4 +Provides: bundled(llvm) = 17.0.4 %else BuildRequires: cmake >= 2.8.11 %if %defined llvm %global llvm_root %{_libdir}/%{llvm} %else -%global llvm llvm -%global llvm_root %{_prefix} +# default llvm is decent enough on riscv64 +%global llvm llvm-toolset-17-llvm +%global llvm_root /opt/openEuler/llvm-toolset-17/root%{_prefix} %endif -BuildRequires: %{llvm} >= 12.0 -BuildRequires: %{llvm}-devel >= 12.0 +# rust currently requires llvm 14.0+ +BuildRequires: %{llvm} >= 16.0.0 +BuildRequires: %{llvm}-devel >= 16.0.0 %if %with llvm_static BuildRequires: %{llvm}-static libffi-devel %endif %endif BuildRequires: procps-ng -BuildRequires: ninja-build libstdc++-static +BuildRequires: ninja-build Provides: rustc = %{version}-%{release} Provides: rustc%{?_isa} = %{version}-%{release} Requires: %{name}-std-static%{?_isa} = %{version}-%{release} @@ -126,6 +138,10 @@ Requires: /usr/bin/cc %endif %global musl_root %{_prefix}/musl +# The 'analysis' component is removed since Rust 1.69.0 +# ref: https://github.com/rust-lang/rust/pull/101841 +Obsoletes: %{name}-analysis < 1.69.0~ + %description Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. @@ -177,35 +193,28 @@ and ensure that you'll always get a repeatable build. %package -n rustfmt Summary: Tool to find and fix Rust formatting issues Requires: cargo +# /usr/bin/rustfmt is dynamically linked against internal rustc libs +Requires: %{name}%{?_isa} = %{version}-%{release} Obsoletes: rustfmt-preview < 1.0.0 Provides: rustfmt-preview = %{version}-%{release} Conflicts: rustfmt-preview < 1.0.0 %description -n rustfmt A tool for formatting Rust code according to style guidelines. -%package -n rls -Summary: Rust Language Server for IDE integration (deprecated) -%if %with bundled_libgit2 -Provides: bundled(libgit2) = 1.1.0 -%endif -Requires: rust-analysis %{name}%{?_isa} = %{version}-%{release} -Obsoletes: rls-preview < 1.31.6 -Provides: rls-preview = %{version}-%{release} -Conflicts: rls-preview < 1.31.6 - -%description -n rls -The Rust Language Server provides a server that runs in the background, -providing IDEs, editors, and other tools with information about Rust programs. -RLS is being deprecated in favor of rust-analyzer, and may be removed in the future. -https://blog.rust-lang.org/2022/07/01/RLS-deprecation.html - +%if %{with analyzer} %package analyzer -Summary: Rust implementation of the Language Server Protocol +Summary:Rust implementation of the Language Server Protocol +Requires: %{name}-src +# RLS is no longer available as of Rust 1.65, but we're including the stub +# binary that implements LSP just enough to recommend rust-analyzer. +Obsoletes: rls < 1.65.0~ +Obsoletes: rls-preview < 1.31.6 %description analyzer rust-analyzer is an implementation of Language Server Protocol for the Rust programming language. It provides features like completion and goto definition for many code editors, including VS Code, Emacs and Vim. +%endif %package -n clippy Summary: Lints to catch common mistakes and improve your Rust code @@ -223,14 +232,6 @@ BuildArch: noarch This package includes source files for the Rust standard library. It may be useful as a reference for code completion tools in various editors. -%package analysis -Summary: Compiler analysis data for the Rust standard library -Requires: rust-std-static%{?_isa} = %{version}-%{release} -%description analysis -This package contains analysis data files produced with rustc's -Zsave-analysis -feature for the Rust standard library. The RLS (Rust Language Server) uses this -data to provide information about the Rust standard library. - %package help Summary: Help documents for rust @@ -241,6 +242,11 @@ Obsoletes: %{name}-doc < %{version}-%{release} %{name}-cargo-doc < %{version}- Man pages and other related help documents for rust. %prep +# download source0 and gpg check +# wget -qO %{SOURCE0} https://user-repo.openeuler.openatom.cn/lfs-tar/rust/rustc-%{version}-src.tar.xz +gpg --import %{SOURCE2} +gpg --verify %{SOURCE1} %{SOURCE0} + %ifarch %{bootstrap_arches} %setup -q -n %{bootstrap_root} -T -b %{bootstrap_source} ./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \ @@ -250,37 +256,35 @@ test -f '%{local_rust_root}/bin/rustc' %endif %setup -q -n rustc-%{version}-src %if %with disabled_libssh2 -%patch0000 -p1 -%endif -%if %without curl_http2 -%patch0001 -p1 -rm -rf vendor/libnghttp2-sys/ +%patch -P 0000 -p1 %endif %if "%{python}" != "python3" sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure %endif -%patch0002 -p1 -%patch0003 -p1 -%patch0004 -p1 -%patch0005 -p1 -%patch0006 -p1 -%patch0007 -p1 -%patch0008 -p1 -%patch0009 -p1 -rm -rf vendor/curl-sys/curl/ +%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/libssh2-sys/libssh2/ -rm -rf vendor/libz-sys/src/zlib/ -rm -rf vendor/libz-sys/src/zlib-ng/ -rm -rf vendor/lzma-sys/xz-*/ -rm -rf vendor/openssl-src/openssl/ +rm -rf vendor/libffi-sys*/libffi/ +rm -rf vendor/libssh2-sys*/libssh2/ +rm -rf vendor/libz-sys*/src/zlib{,-ng}/ +rm -rf vendor/lzma-sys*/xz-*/ +rm -rf vendor/openssl-src*/openssl/ %if %without bundled_libgit2 -rm -rf vendor/libgit2-sys/libgit2/ +rm -rf vendor/libgit2-sys*/libgit2/ %endif %if %with disabled_libssh2 -rm -rf vendor/libssh2-sys/ +rm -rf vendor/libssh2-sys*/ %endif -sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs + +# This only affects the transient rust-installer, but let it use our dynamic xz-libs +sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/src/core/build_steps/tool.rs + %if %{without bundled_llvm} && %{with llvm_static} sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \ src/librustc_llvm/lib.rs @@ -316,10 +320,22 @@ 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 + %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 --python=%{python} \ --local-rust-root=%{local_rust_root} \ %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ @@ -328,7 +344,7 @@ fi --disable-rpath \ %{enable_debuginfo} \ --enable-extended \ - --tools=analysis,cargo,clippy,rls,rust-analyzer,rustfmt,src \ + --tools=cargo,clippy,%{?with_analyzer:rls,rust-analyzer,}rustfmt,src \ --enable-vendor \ --enable-verbose-tests \ %{?codegen_units_std} \ @@ -339,6 +355,10 @@ fi %install export %{rust_env} DESTDIR=%{buildroot} %{python} ./x.py install + +# Some of the components duplicate-install binaries, leaving backups we don't want +rm -f %{buildroot}%{_bindir}/*.old + %if "%{_libdir}" != "%{common_libdir}" mkdir -p %{buildroot}%{_libdir} find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ @@ -372,9 +392,14 @@ mkdir -p %{buildroot}%{_docdir}/cargo ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html # install default config for cargo mirror -install -m 0644 -D -p %{SOURCE1} %{buildroot}%{_sysconfdir}/skel/.cargo/config.toml -install -m 0644 -D -p %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh -install -m 0644 -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh +install -m 0644 -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/skel/.cargo/config.toml +install -m 0644 -D -p %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh +install -m 0644 -D -p %{SOURCE5} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh + +%if %{with analyzer} +# The rls stub doesn't have an install target, but we can just copy it. +%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls +%endif %if %without lldb rm -f %{buildroot}%{_bindir}/rust-lldb @@ -387,8 +412,9 @@ export %{rust_env} %{python} ./x.py test --no-fail-fast --stage 2 || : %{python} ./x.py test --no-fail-fast --stage 2 cargo || : %{python} ./x.py test --no-fail-fast --stage 2 clippy || : -%{python} ./x.py test --no-fail-fast --stage 2 rls || : +%if %{with analyzer} %{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : +%endif %{python} ./x.py test --no-fail-fast --stage 2 rustfmt || : %ldconfig_scriptlets @@ -402,22 +428,28 @@ export %{rust_env} %dir %{rustlibdir} %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib +%if %{with analyzer} %{_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} @@ -441,7 +473,6 @@ export %{rust_env} %config(noreplace) %{_sysconfdir}/skel/.cargo/config.toml %{_sysconfdir}/profile.d/cargo-config.* %{_bindir}/cargo -%{_libexecdir}/cargo* %{_sysconfdir}/bash_completion.d/cargo %{_datadir}/zsh/site-functions/_cargo %dir %{_datadir}/cargo @@ -453,15 +484,13 @@ export %{rust_env} %doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md %license src/tools/rustfmt/LICENSE-{APACHE,MIT} -%files -n rls -%{_bindir}/rls -%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md} -%license src/tools/rls/LICENSE-{APACHE,MIT} - +%if %{with analyzer} %files analyzer +%{_bindir}/rls %{_bindir}/rust-analyzer %doc src/tools/rust-analyzer/README.md %license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} +%endif %files -n clippy %{_bindir}/cargo-clippy @@ -473,30 +502,23 @@ export %{rust_env} %dir %{rustlibdir} %{rustlibdir}/src -%files analysis -%{rustlibdir}/%{rust_triple}/analysis/ -%{rustlibdir}/%{rust_musl_triple}/analysis/ - %files help %dir %{_docdir}/%{name} -%dir %{_docdir}/cargo -%dir %{_docdir}/%{name}/html %docdir %{_docdir}/%{name} +%{_docdir}/%{name}/html +%dir %{_docdir}/cargo %docdir %{_docdir}/cargo -%{_docdir}/%{name}/html/*/ -%{_docdir}/%{name}/html/*.html -%{_docdir}/%{name}/html/*.css -%{_docdir}/%{name}/html/*.js -%{_docdir}/%{name}/html/*.png -%{_docdir}/%{name}/html/*.svg -%{_docdir}/%{name}/html/*.woff2 -%license %{_docdir}/%{name}/html/*.md %{_docdir}/cargo/html %{_mandir}/man1/rustc.1* %{_mandir}/man1/rustdoc.1* %{_mandir}/man1/cargo*.1* %changelog +* Mon Feb 24 2025 wangkai <13474090681@163.com> - 1.76.0-1 +- Update to 1.76.0 because firefox update 128ESR version +- Fix CVE-2022-21658 CVE-2022-46176 CVE-2023-38497 +- Obsoletes rust-analysis + * Sat Feb 17 2024 wangkai <13474090681@163.com> - 1.64.0-3 - Fix CVE-2024-24575,CVE-2024-24577 diff --git a/rustc-1.60.0-disable-libssh2.patch b/rustc-1.60.0-disable-libssh2.patch deleted file mode 100644 index f578927e06e7050d258b80c6bcb1cfefab395fc9..0000000000000000000000000000000000000000 --- a/rustc-1.60.0-disable-libssh2.patch +++ /dev/null @@ -1,59 +0,0 @@ -From af470615d6ececcedbaf5edc4c34e18415a2cfa9 Mon Sep 17 00:00:00 2001 -From: Liu Zixian -Date: Tue, 19 Apr 2022 22:26:47 +0800 -Subject: [PATCH] disable libssh2 - ---- - Cargo.lock | 15 --------------- - vendor/git2/Cargo.toml | 2 +- - 2 files changed, 1 insertion(+), 16 deletions(-) - -diff --git a/Cargo.lock b/Cargo.lock -index e3ab987b3..8baf4fbd9 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -1987,7 +1987,6 @@ checksum = "ddbd6021eef06fb289a8f54b3c2acfdd85ff2a585dfbb24b8576325373d2152c" - dependencies = [ - "cc", - "libc", -- "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -@@ -2019,20 +2018,6 @@ dependencies = [ - "libc", - ] - --[[package]] --name = "libssh2-sys" --version = "0.2.23" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" --dependencies = [ -- "cc", -- "libc", -- "libz-sys", -- "openssl-sys", -- "pkg-config", -- "vcpkg", --] -- - [[package]] - name = "libz-sys" - version = "1.1.3" -diff --git a/vendor/git2/Cargo.toml b/vendor/git2/Cargo.toml -index 299b77a8d..a05099544 100644 ---- a/vendor/git2/Cargo.toml -+++ b/vendor/git2/Cargo.toml -@@ -51,7 +51,7 @@ version = "3.3.0" - version = "0.1.39" - - [features] --default = ["ssh", "https", "ssh_key_from_memory"] -+default = ["https"] - https = ["libgit2-sys/https", "openssl-sys", "openssl-probe"] - ssh = ["libgit2-sys/ssh"] - ssh_key_from_memory = ["libgit2-sys/ssh_key_from_memory"] --- -2.35.1 - diff --git a/rustc-1.63.0-disable-http2.patch b/rustc-1.63.0-disable-http2.patch deleted file mode 100644 index 2e0c8f2926c697a42efb1398b927d6272c81b19c..0000000000000000000000000000000000000000 --- a/rustc-1.63.0-disable-http2.patch +++ /dev/null @@ -1,90 +0,0 @@ ---- rustc-1.63.0-src/Cargo.lock.orig 2022-08-10 12:25:16.512185135 -0700 -+++ rustc-1.63.0-src/Cargo.lock 2022-08-10 12:25:16.513185114 -0700 -@@ -1054,7 +1054,6 @@ - dependencies = [ - "cc", - "libc", -- "libnghttp2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -@@ -2160,16 +2159,6 @@ - checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - - [[package]] --name = "libnghttp2-sys" --version = "0.1.4+1.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03624ec6df166e79e139a2310ca213283d6b3c30810c54844f307086d4488df1" --dependencies = [ -- "cc", -- "libc", --] -- --[[package]] - name = "libz-sys" - version = "1.1.3" - source = "registry+https://github.com/rust-lang/crates.io-index" ---- rustc-1.63.0-src/src/tools/cargo/Cargo.toml.orig 2022-08-10 12:25:16.514185093 -0700 -+++ rustc-1.63.0-src/src/tools/cargo/Cargo.toml 2022-08-10 12:25:51.441455282 -0700 -@@ -22,7 +22,7 @@ - cargo-util = { path = "crates/cargo-util", version = "0.2.1" } - crates-io = { path = "crates/crates-io", version = "0.34.0" } - crossbeam-utils = "0.8" --curl = { version = "0.4.43", features = ["http2"] } -+curl = { version = "0.4.43", features = [] } - curl-sys = "0.4.55" - env_logger = "0.9.0" - pretty_env_logger = { version = "0.4", optional = true } ---- rustc-1.63.0-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2022-08-08 15:47:35.000000000 -0700 -+++ rustc-1.63.0-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2022-08-10 12:25:16.514185093 -0700 -@@ -192,16 +192,8 @@ - } - self.fetch_started = true; - -- // We've enabled the `http2` feature of `curl` in Cargo, so treat -- // failures here as fatal as it would indicate a build-time problem. -- self.multiplexing = self.config.http_config()?.multiplexing.unwrap_or(true); -- -- self.multi -- .pipelining(false, self.multiplexing) -- .with_context(|| "failed to enable multiplexing/pipelining in curl")?; -- -- // let's not flood the server with connections -- self.multi.set_max_host_connections(2)?; -+ // Multiplexing is disabled because the system libcurl doesn't support it. -+ self.multiplexing = false; - - self.config - .shell() ---- rustc-1.63.0-src/src/tools/cargo/src/cargo/core/package.rs.orig 2022-08-08 15:47:35.000000000 -0700 -+++ rustc-1.63.0-src/src/tools/cargo/src/cargo/core/package.rs 2022-08-10 12:25:16.514185093 -0700 -@@ -403,16 +403,9 @@ - sources: SourceMap<'cfg>, - config: &'cfg Config, - ) -> CargoResult> { -- // We've enabled the `http2` feature of `curl` in Cargo, so treat -- // failures here as fatal as it would indicate a build-time problem. -- let mut multi = Multi::new(); -- let multiplexing = config.http_config()?.multiplexing.unwrap_or(true); -- multi -- .pipelining(false, multiplexing) -- .with_context(|| "failed to enable multiplexing/pipelining in curl")?; -- -- // let's not flood crates.io with connections -- multi.set_max_host_connections(2)?; -+ // Multiplexing is disabled because the system libcurl doesn't support it. -+ let multi = Multi::new(); -+ let multiplexing = false; - - Ok(PackageSet { - packages: package_ids -@@ -658,7 +651,7 @@ - macro_rules! try_old_curl { - ($e:expr, $msg:expr) => { - let result = $e; -- if cfg!(target_os = "macos") { -+ if cfg!(any(target_os = "linux", target_os = "macos")) { - if let Err(e) = result { - warn!("ignoring libcurl {} error: {}", $msg, e); - } diff --git a/rustc-1.64.0-src.tar.xz b/rustc-1.64.0-src.tar.xz deleted file mode 100644 index 2f9cf6394ed04f5053696a571248e36437d48e31..0000000000000000000000000000000000000000 Binary files a/rustc-1.64.0-src.tar.xz and /dev/null differ diff --git a/rustc-1.61.0-rust-gdb-substitute-path.patch b/rustc-1.70.0-rust-gdb-substitute-path.patch similarity index 44% rename from rustc-1.61.0-rust-gdb-substitute-path.patch rename to rustc-1.70.0-rust-gdb-substitute-path.patch index b94e23ec779439692d48ae499549b46c7b11ab56..e9e5e2e14e78c07ef13c9fa44ea5730e998a334f 100644 --- a/rustc-1.61.0-rust-gdb-substitute-path.patch +++ b/rustc-1.70.0-rust-gdb-substitute-path.patch @@ -1,18 +1,21 @@ ---- rustc-1.61.0-src/src/etc/rust-gdb.orig 2022-05-17 18:29:36.000000000 -0700 -+++ rustc-1.61.0-src/src/etc/rust-gdb 2022-05-18 11:18:13.732709661 -0700 -@@ -14,6 +14,9 @@ fi +diff --git a/src/etc/rust-gdb b/src/etc/rust-gdb +index 9abed30ea6f7..e4bf55df3688 100755 +--- a/src/etc/rust-gdb ++++ b/src/etc/rust-gdb +@@ -13,8 +13,6 @@ fi + # Find out where the pretty printer Python module is RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)" GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc" +-# Get the commit hash for path remapping +-RUSTC_COMMIT_HASH="$("$RUSTC" -vV | sed -n 's/commit-hash: \([a-zA-Z0-9_]*\)/\1/p')" -+RUST_STD_BUILD="@BUILDDIR@/library/" -+RUST_STD_SRC="$RUSTC_SYSROOT/lib/rustlib/src/rust/library/" -+ # Run GDB with the additional arguments that load the pretty printers # Set the environment variable `RUST_GDB` to overwrite the call to a - # different/specific command (defaults to `gdb`). -@@ -21,4 +24,5 @@ RUST_GDB="${RUST_GDB:-gdb}" +@@ -23,6 +21,6 @@ RUST_GDB="${RUST_GDB:-gdb}" PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" exec ${RUST_GDB} \ --directory="$GDB_PYTHON_MODULE_DIRECTORY" \ -iex "add-auto-load-safe-path $GDB_PYTHON_MODULE_DIRECTORY" \ -+ -iex "set substitute-path $RUST_STD_BUILD $RUST_STD_SRC" \ +- -iex "set substitute-path /rustc/$RUSTC_COMMIT_HASH $RUSTC_SYSROOT/lib/rustlib/src/rust" \ ++ -iex "set substitute-path @BUILDDIR@ $RUSTC_SYSROOT/lib/rustlib/src/rust" \ "$@" + diff --git a/rustc-1.76.0-disable-libssh2.patch b/rustc-1.76.0-disable-libssh2.patch new file mode 100644 index 0000000000000000000000000000000000000000..2c6fba2aaaef4b3791aefbbe3898f6f7f167d41f --- /dev/null +++ b/rustc-1.76.0-disable-libssh2.patch @@ -0,0 +1,42 @@ +--- 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" ] } diff --git a/rustc-1.76.0-src.tar.xz b/rustc-1.76.0-src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..8364846d17dfa5a5ebc739417500c72e8ad803fa --- /dev/null +++ b/rustc-1.76.0-src.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:805482b436442a6786d270cacbab8f00529e06141b27b7fb01909b97ce4f3464 +size 162267908 diff --git a/rustc-1.76.0-src.tar.xz.asc b/rustc-1.76.0-src.tar.xz.asc new file mode 100644 index 0000000000000000000000000000000000000000..70cbdc72b9da3e8ad16ff6b7e126d4820bea271a --- /dev/null +++ b/rustc-1.76.0-src.tar.xz.asc @@ -0,0 +1,16 @@ +-----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-----