From effe9a09b1c4b3b00e3bb4490cf5b8444960dfce Mon Sep 17 00:00:00 2001 From: wk333 <13474090681@163.com> Date: Sat, 12 Oct 2024 17:30:38 +0800 Subject: [PATCH] Update to 1.80.0 --- 0001-add-support-for-ppc64le.patch | 88 +++--- ...-abi-in-bc-when-plugin-_-lto-is-used.patch | 296 ------------------ rust.spec | 87 ++--- rustc-1.77.0-src.tar.xz.asc | 16 - ...atch => rustc-1.80.0-disable-libssh2.patch | 26 +- ...77.0-src.tar.xz => rustc-1.80.0-src.tar.xz | 0 rustc-1.80.0-src.tar.xz.asc | 16 + 7 files changed, 120 insertions(+), 409 deletions(-) delete mode 100644 embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch delete mode 100644 rustc-1.77.0-src.tar.xz.asc rename rustc-1.77.0-disable-libssh2.patch => rustc-1.80.0-disable-libssh2.patch (45%) rename rustc-1.77.0-src.tar.xz => rustc-1.80.0-src.tar.xz (100%) create mode 100644 rustc-1.80.0-src.tar.xz.asc diff --git a/0001-add-support-for-ppc64le.patch b/0001-add-support-for-ppc64le.patch index e22fbeb..75f6ee8 100644 --- a/0001-add-support-for-ppc64le.patch +++ b/0001-add-support-for-ppc64le.patch @@ -4,24 +4,23 @@ 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(+) + 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 | 2 ++ + vendor/openssl-src-111.28.1+1.1.1w/src/lib.rs | 3 +++ + vendor/target-lexicon-0.12.14/src/targets.rs | 3 +++ + 7 files changed, 79 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 +index 291a761..e6e80a1 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -1421,6 +1421,8 @@ supported_targets! { +@@ -1513,6 +1513,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), @@ -32,10 +31,10 @@ index 6c698c5b0..29575b9aa 100644 ("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 +index 0000000..615bb67 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs -@@ -0,0 +1,17 @@ +@@ -0,0 +1,23 @@ +use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; + +pub fn target() -> Target { @@ -47,6 +46,12 @@ index 000000000..41189b6fa + + 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(), @@ -55,10 +60,10 @@ index 000000000..41189b6fa +} 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 +index 0000000..5ff45e2 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs -@@ -0,0 +1,17 @@ +@@ -0,0 +1,23 @@ +use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; + +pub fn target() -> Target { @@ -70,6 +75,12 @@ index 000000000..f60b84447 + + 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(), @@ -78,10 +89,10 @@ index 000000000..f60b84447 +} 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 +index 0000000..2b612e7 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs -@@ -0,0 +1,17 @@ +@@ -0,0 +1,23 @@ +use crate::spec::{base, Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions}; + +pub fn target() -> Target { @@ -93,6 +104,12 @@ index 000000000..d497b674b + + 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(), @@ -100,10 +117,10 @@ index 000000000..d497b674b + } +} diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py -index d34c19a47..b6adafc5e 100755 +index 768aac9..155f21e 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", +@@ -127,6 +127,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") @@ -112,25 +129,10 @@ index d34c19a47..b6adafc5e 100755 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 +diff --git a/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs b/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs +index 1264742..14427a7 100644 +--- a/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs ++++ b/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs @@ -282,6 +282,9 @@ impl Build { "powerpc64le-unknown-freebsd" => "BSD-generic64", "powerpc64le-unknown-linux-gnu" => "linux-ppc64le", @@ -141,11 +143,11 @@ index 1264742dc..14427a70e 100644 "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 { +diff --git a/vendor/target-lexicon-0.12.14/src/targets.rs b/vendor/target-lexicon-0.12.14/src/targets.rs +index f764b34..e150f84 100644 +--- a/vendor/target-lexicon-0.12.14/src/targets.rs ++++ b/vendor/target-lexicon-0.12.14/src/targets.rs +@@ -1639,6 +1639,9 @@ mod tests { "powerpc64le-unknown-freebsd", "powerpc64le-unknown-linux-gnu", "powerpc64le-unknown-linux-musl", 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 deleted file mode 100644 index 631a5eb..0000000 --- a/embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.patch +++ /dev/null @@ -1,296 +0,0 @@ -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/rust.spec b/rust.spec index 8350270..c6497eb 100644 --- a/rust.spec +++ b/rust.spec @@ -1,7 +1,8 @@ -%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_rust 1.79.0 +%global bootstrap_cargo 1.79.0 +%global bootstrap_channel 1.79.0 +%global bootstrap_date 2024-06-13 +%global bootstrap_arches x86_64 aarch64 riscv64 %bcond_with llvm_static %bcond_with bundled_llvm %bcond_without bundled_libgit2 @@ -10,8 +11,8 @@ %bcond_without analyzer Name: rust -Version: 1.77.0 -Release: 5 +Version: 1.80.0 +Release: 1 Summary: The Rust Programming Language License: Apache-2.0 OR MIT URL: https://www.rust-lang.org @@ -23,17 +24,13 @@ Source3: cargo-config Source4: cargo-config.sh Source5: cargo-config.csh -Patch0000: rustc-1.77.0-disable-libssh2.patch +Patch0000: rustc-1.80.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: 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" if arch == "armv7hl" then @@ -45,8 +42,6 @@ Patch1000: embed-riscv64-target-abi-in-bc-when-plugin-_-lto-is-used.pa arch = "powerpc64le" elseif arch == "riscv64" then arch = "riscv64gc" - elseif arch == "loongarch64" then - arch = "loongarch64" end return arch.."-unknown-linux-"..abi end} @@ -76,10 +71,10 @@ end} .."/rust-%{bootstrap_channel}") 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))) if arch == target_arch then - rpm.define("bootstrap_source "..i) + print(string.format("Source%d: %s-%s.tar.xz\n", + i+5, base, rust_triple(arch))) + rpm.define("bootstrap_source "..i+5) end end end} @@ -248,6 +243,7 @@ gpg --import %{SOURCE2} gpg --verify %{SOURCE1} %{SOURCE0} %ifarch %{bootstrap_arches} +wget -qO %{_sourcedir}/%{bootstrap_root}.tar.xz https://user-repo.openeuler.openatom.cn/lfs-tar/rust/%{bootstrap_root}.tar.xz %setup -q -n %{bootstrap_root} -T -b %{bootstrap_source} ./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \ --prefix=%{local_rust_root} --disable-ldconfig @@ -264,9 +260,6 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure %patch -P 0001 -p1 %patch -P 0002 -p1 %patch -P 0003 -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/ @@ -338,13 +331,10 @@ fi test -r "%{profiler}" %configure --disable-option-checking \ + --docdir=%{_pkgdocdir} \ --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} \ @@ -388,15 +378,15 @@ find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+' -rm -f %{buildroot}%{_docdir}/%{name}/README.md -rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT -rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-THIRD-PARTY -rm -f %{buildroot}%{_docdir}/%{name}/*.old -find %{buildroot}%{_docdir}/%{name}/html -empty -delete -find %{buildroot}%{_docdir}/%{name}/html -type f -exec chmod -x '{}' '+' +rm -f %{buildroot}%{_pkgdocdir}/README.md +rm -f %{buildroot}%{_pkgdocdir}/COPYRIGHT +rm -f %{buildroot}%{_pkgdocdir}/LICENSE +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-APACHE +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-MIT +rm -f %{buildroot}%{_pkgdocdir}/LICENSE-THIRD-PARTY +rm -f %{buildroot}%{_pkgdocdir}/*.old +find %{buildroot}%{_pkgdocdir}/html -empty -delete +find %{buildroot}%{_pkgdocdir}/html -type f -exec chmod -x '{}' '+' mkdir -p %{buildroot}%{_datadir}/cargo/registry mkdir -p %{buildroot}%{_docdir}/cargo ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html @@ -420,7 +410,11 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* %check export %{rust_env} %{python} ./x.py test --no-fail-fast --stage 2 || : -%{python} ./x.py test --no-fail-fast --stage 2 cargo || : +%ifarch aarch64 +# https://github.com/rust-lang/rust/issues/123733 +%define cargo_test_skip --test-args "--skip panic_abort_doc_tests" +%endif +%{python} ./x.py test --no-fail-fast --stage 2 cargo %{?cargo_test_skip} || : %{python} ./x.py test --no-fail-fast --stage 2 clippy || : %if %{with analyzer} %{python} ./x.py test --no-fail-fast --stage 2 rust-analyzer || : @@ -430,7 +424,7 @@ export %{rust_env} %files %license COPYRIGHT LICENSE-APACHE LICENSE-MIT -%license %{_docdir}/%{name}/html/*.txt +%license %{_pkgdocdir}/html/*.txt %doc README.md %{_bindir}/rustc %{_bindir}/rustdoc @@ -442,24 +436,20 @@ 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} @@ -513,9 +503,9 @@ export %{rust_env} %{rustlibdir}/src %files help -%dir %{_docdir}/%{name} -%docdir %{_docdir}/%{name} -%{_docdir}/%{name}/html +%dir %{_pkgdocdir} +%docdir %{_pkgdocdir} +%{_pkgdocdir}/html %dir %{_docdir}/cargo %docdir %{_docdir}/cargo %{_docdir}/cargo/html @@ -524,6 +514,21 @@ export %{rust_env} %{_mandir}/man1/cargo*.1* %changelog +* Wed Aug 07 2024 wangkai <13474090681@163.com> - 1.80.0-1 +- Update to 1.80.0 + +* Wed Jul 24 2024 wangkai <13474090681@163.com> - 1.79.0-3 +- Switch to bootstrap compilation + +* Thu Jul 18 2024 jchzhou - 1.79.0-2 +- Drop obsolete patch for riscv64 (rust-lang/rust#123612 landed in 1.79.0) + +* Wed Jun 19 2024 wangkai <13474090681@163.com> - 1.79.0-1 +- Update to 1.79.0 + +* Tue May 07 2024 wangkai <13474090681@163.com> - 1.78.0-1 +- Update to 1.78.0 + * Thu Jun 13 2024 jianchunfu - 1.77.0-5 - spec: Add support for ppc64le diff --git a/rustc-1.77.0-src.tar.xz.asc b/rustc-1.77.0-src.tar.xz.asc deleted file mode 100644 index 44f1232..0000000 --- a/rustc-1.77.0-src.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------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----- diff --git a/rustc-1.77.0-disable-libssh2.patch b/rustc-1.80.0-disable-libssh2.patch similarity index 45% rename from rustc-1.77.0-disable-libssh2.patch rename to rustc-1.80.0-disable-libssh2.patch index 859fecb..85061b4 100644 --- a/rustc-1.77.0-disable-libssh2.patch +++ b/rustc-1.80.0-disable-libssh2.patch @@ -1,7 +1,7 @@ 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 +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2024-07-05 18:14:51.101370053 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-07-05 18:14:51.104370020 -0700 +@@ -2151,7 +2151,6 @@ checksum = "ee4126d8b4ee5c9d9ea891dd875c dependencies = [ "cc", "libc", @@ -9,7 +9,7 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools "libz-sys", "openssl-sys", "pkg-config", -@@ -2113,20 +2112,6 @@ dependencies = [ +@@ -2192,20 +2191,6 @@ dependencies = [ "pkg-config", "vcpkg", ] @@ -31,14 +31,14 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools [[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" +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2024-07-05 18:14:51.104370020 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-07-05 18:15:36.584867840 -0700 +@@ -44,7 +44,7 @@ curl = "0.4.46" + curl-sys = "0.4.72" 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"] } + flate2 = { version = "1.0.30", default-features = false, features = ["zlib"] } +-git2 = "0.18.3" ++git2 = { version = "0.18.3", 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" ] } + gix = { version = "0.63.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision", "parallel", "dirwalk"] } + glob = "0.3.1" diff --git a/rustc-1.77.0-src.tar.xz b/rustc-1.80.0-src.tar.xz similarity index 100% rename from rustc-1.77.0-src.tar.xz rename to rustc-1.80.0-src.tar.xz diff --git a/rustc-1.80.0-src.tar.xz.asc b/rustc-1.80.0-src.tar.xz.asc new file mode 100644 index 0000000..d17f365 --- /dev/null +++ b/rustc-1.80.0-src.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJmojj9CRCFq5bm+hvl/gAAbkUQAIW8jreyzqoDkufBTEXoqdls +MX4UY4YVQD3wQezC3nTJGN85FU8WjpuaJomYNkKDGQKb9BI1+V+krBuIXgFEbHyl +lcEvK4FNaxmYSaYwOhQE117bAKFFIdQsWe8tQ1kDE5hs6BhiHwsLbpPiSgplQqS3 +0LwRUQrGIE3zS6q/yhC0TQdOlUb+VWbYvDbsSYi2uOFQaezqwwrHHOP/P0jR/G+h +MHs2bRI14DDu55hrmIWoxdQUtIBoN4qCnkWX3HS1+TBu6n3kdvjKTq9kxfcFuXWq +BA/ztQaJb7ip8RKlxPIWc5m1tqyAkhoOLwy5Wg0Sug47YZZdgDb847ingHIImRBr +ks+ESJ4lej2jXPdCigNGO/1zRzPuJaWhl8URDgYPpdDFXclUzeNSJl/Bw1qUhe4a +iiepiiI2/o3mDs3zxp7uoCCTLc4z5gb+eOmTTWKb4bT8p8b1pTlD3Ly9Ty3lLPMK +M2BYSymUjb0FlQD2UA31/BZj5hvC1mRvb7//oz3y8NmqV2ca9lZIiv4w+AIkGj9g +1AK6iUQSfnBSFYt/Bdli7WKpKL529r75vT+9OlNSozH4gtMxIC1qpZMR8sczLI2z +2HfeVgQKkY9BowfdswlAGUskZ6zC/LvFvqbfNCwT7yf8WgfsGczAivg0ScJ3zFEo +EIUfUQY5tpv4ynBo6TYH +=xmER +-----END PGP SIGNATURE----- -- Gitee