From 93d478720031fba7fa2ee87982211178e1906ec2 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Thu, 31 Oct 2024 21:47:44 +0300 Subject: [PATCH] import rust-1.80.1-1.el10 --- .gitignore | 2 +- .rust.metadata | 2 +- ...ble-jump-threading-of-float-equality.patch | 212 -------------- ...x86-64-cpu-in-tests-that-are-sensiti.patch | 264 ------------------ SOURCES/0001-Use-lld-provided-by-system.patch | 10 + ...tch => rustc-1.80.0-disable-libssh2.patch} | 18 +- ...tch => rustc-1.80.0-unbundle-sqlite.patch} | 12 +- SPECS/rust.spec | 50 ++-- 8 files changed, 59 insertions(+), 511 deletions(-) delete mode 100644 SOURCES/0001-Disable-jump-threading-of-float-equality.patch delete mode 100644 SOURCES/0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch rename SOURCES/{rustc-1.79.0-disable-libssh2.patch => rustc-1.80.0-disable-libssh2.patch} (53%) rename SOURCES/{rustc-1.79.0-unbundle-sqlite.patch => rustc-1.80.0-unbundle-sqlite.patch} (61%) diff --git a/.gitignore b/.gitignore index 389f046..99967fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/rustc-1.79.0-src.tar.xz +SOURCES/rustc-1.80.1-src.tar.xz SOURCES/wasi-libc-wasi-sdk-22.tar.gz diff --git a/.rust.metadata b/.rust.metadata index 39b7583..6181f44 100644 --- a/.rust.metadata +++ b/.rust.metadata @@ -1,2 +1,2 @@ -fdd94a3bdb321d18a0021d4dce9b8546a1db2eec SOURCES/rustc-1.79.0-src.tar.xz +3b72a3caac06ff91557cc33545a5ebec12ec7f92 SOURCES/rustc-1.80.1-src.tar.xz 13451249ddb71e69f12565ef4803b71ce4092191 SOURCES/wasi-libc-wasi-sdk-22.tar.gz diff --git a/SOURCES/0001-Disable-jump-threading-of-float-equality.patch b/SOURCES/0001-Disable-jump-threading-of-float-equality.patch deleted file mode 100644 index 29093bd..0000000 --- a/SOURCES/0001-Disable-jump-threading-of-float-equality.patch +++ /dev/null @@ -1,212 +0,0 @@ -From 49166c7dd925244f631277b4aa9ae4233f300884 Mon Sep 17 00:00:00 2001 -From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> -Date: Sat, 27 Jul 2024 15:08:11 +0200 -Subject: [PATCH] Disable jump threading of float equality - -Jump threading stores values as `u128` (`ScalarInt`) and does its -comparisons for equality as integer comparisons. -This works great for integers. Sadly, not everything is an integer. - -Floats famously have wonky equality semantcs, with `NaN!=NaN` and -`0.0 == -0.0`. This does not match our beautiful integer bitpattern -equality and therefore causes things to go horribly wrong. - -While jump threading could be extended to support floats by remembering -that they're floats in the value state and handling them properly, -it's signficantly easier to just disable it for now. - -(cherry picked from commit eca0a7e72346ba123ace318a0f9c28c57d990aeb) ---- - .../rustc_mir_transform/src/jump_threading.rs | 7 +++ - ...ding.floats.JumpThreading.panic-abort.diff | 59 +++++++++++++++++++ - ...ing.floats.JumpThreading.panic-unwind.diff | 59 +++++++++++++++++++ - tests/mir-opt/jump_threading.rs | 12 ++++ - 4 files changed, 137 insertions(+) - create mode 100644 tests/mir-opt/jump_threading.floats.JumpThreading.panic-abort.diff - create mode 100644 tests/mir-opt/jump_threading.floats.JumpThreading.panic-unwind.diff - -diff --git a/compiler/rustc_mir_transform/src/jump_threading.rs b/compiler/rustc_mir_transform/src/jump_threading.rs -index a458297210db..e2d2864ad2a0 100644 ---- a/compiler/rustc_mir_transform/src/jump_threading.rs -+++ b/compiler/rustc_mir_transform/src/jump_threading.rs -@@ -493,6 +493,13 @@ fn process_assign( - BinOp::Ne => ScalarInt::FALSE, - _ => return None, - }; -+ if value.const_.ty().is_floating_point() { -+ // Floating point equality does not follow bit-patterns. -+ // -0.0 and NaN both have special rules for equality, -+ // and therefore we cannot use integer comparisons for them. -+ // Avoid handling them, though this could be extended in the future. -+ return None; -+ } - let value = value.const_.normalize(self.tcx, self.param_env).try_to_scalar_int()?; - let conds = conditions.map(self.arena, |c| Condition { - value, -diff --git a/tests/mir-opt/jump_threading.floats.JumpThreading.panic-abort.diff b/tests/mir-opt/jump_threading.floats.JumpThreading.panic-abort.diff -new file mode 100644 -index 000000000000..6ca37e96d297 ---- /dev/null -+++ b/tests/mir-opt/jump_threading.floats.JumpThreading.panic-abort.diff -@@ -0,0 +1,59 @@ -+- // MIR for `floats` before JumpThreading -++ // MIR for `floats` after JumpThreading -+ -+ fn floats() -> u32 { -+ let mut _0: u32; -+ let _1: f64; -+ let mut _2: bool; -+ let mut _3: bool; -+ let mut _4: f64; -+ scope 1 { -+ debug x => _1; -+ } -+ -+ bb0: { -+ StorageLive(_1); -+ StorageLive(_2); -+ _2 = const true; -+- switchInt(move _2) -> [0: bb2, otherwise: bb1]; -++ goto -> bb1; -+ } -+ -+ bb1: { -+ _1 = const -0f64; -+ goto -> bb3; -+ } -+ -+ bb2: { -+ _1 = const 1f64; -+ goto -> bb3; -+ } -+ -+ bb3: { -+ StorageDead(_2); -+ StorageLive(_3); -+ StorageLive(_4); -+ _4 = _1; -+ _3 = Eq(move _4, const 0f64); -+ switchInt(move _3) -> [0: bb5, otherwise: bb4]; -+ } -+ -+ bb4: { -+ StorageDead(_4); -+ _0 = const 0_u32; -+ goto -> bb6; -+ } -+ -+ bb5: { -+ StorageDead(_4); -+ _0 = const 1_u32; -+ goto -> bb6; -+ } -+ -+ bb6: { -+ StorageDead(_3); -+ StorageDead(_1); -+ return; -+ } -+ } -+ -diff --git a/tests/mir-opt/jump_threading.floats.JumpThreading.panic-unwind.diff b/tests/mir-opt/jump_threading.floats.JumpThreading.panic-unwind.diff -new file mode 100644 -index 000000000000..6ca37e96d297 ---- /dev/null -+++ b/tests/mir-opt/jump_threading.floats.JumpThreading.panic-unwind.diff -@@ -0,0 +1,59 @@ -+- // MIR for `floats` before JumpThreading -++ // MIR for `floats` after JumpThreading -+ -+ fn floats() -> u32 { -+ let mut _0: u32; -+ let _1: f64; -+ let mut _2: bool; -+ let mut _3: bool; -+ let mut _4: f64; -+ scope 1 { -+ debug x => _1; -+ } -+ -+ bb0: { -+ StorageLive(_1); -+ StorageLive(_2); -+ _2 = const true; -+- switchInt(move _2) -> [0: bb2, otherwise: bb1]; -++ goto -> bb1; -+ } -+ -+ bb1: { -+ _1 = const -0f64; -+ goto -> bb3; -+ } -+ -+ bb2: { -+ _1 = const 1f64; -+ goto -> bb3; -+ } -+ -+ bb3: { -+ StorageDead(_2); -+ StorageLive(_3); -+ StorageLive(_4); -+ _4 = _1; -+ _3 = Eq(move _4, const 0f64); -+ switchInt(move _3) -> [0: bb5, otherwise: bb4]; -+ } -+ -+ bb4: { -+ StorageDead(_4); -+ _0 = const 0_u32; -+ goto -> bb6; -+ } -+ -+ bb5: { -+ StorageDead(_4); -+ _0 = const 1_u32; -+ goto -> bb6; -+ } -+ -+ bb6: { -+ StorageDead(_3); -+ StorageDead(_1); -+ return; -+ } -+ } -+ -diff --git a/tests/mir-opt/jump_threading.rs b/tests/mir-opt/jump_threading.rs -index 57f4e4a2654f..3e7e8995f1a3 100644 ---- a/tests/mir-opt/jump_threading.rs -+++ b/tests/mir-opt/jump_threading.rs -@@ -514,6 +514,16 @@ fn assume(a: u8, b: bool) -> u8 { - ) - } - -+fn floats() -> u32 { -+ // CHECK-LABEL: fn floats( -+ // CHECK: switchInt( -+ -+ // Test for issue #128243, where float equality was assumed to be bitwise. -+ // When adding float support, it must be ensured that this continues working properly. -+ let x = if true { -0.0 } else { 1.0 }; -+ if x == 0.0 { 0 } else { 1 } -+} -+ - fn main() { - // CHECK-LABEL: fn main( - too_complex(Ok(0)); -@@ -528,6 +538,7 @@ fn main() { - disappearing_bb(7); - aggregate(7); - assume(7, false); -+ floats(); - } - - // EMIT_MIR jump_threading.too_complex.JumpThreading.diff -@@ -542,3 +553,4 @@ fn main() { - // EMIT_MIR jump_threading.disappearing_bb.JumpThreading.diff - // EMIT_MIR jump_threading.aggregate.JumpThreading.diff - // EMIT_MIR jump_threading.assume.JumpThreading.diff -+// EMIT_MIR jump_threading.floats.JumpThreading.diff --- -2.46.0 - diff --git a/SOURCES/0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch b/SOURCES/0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch deleted file mode 100644 index c427d51..0000000 --- a/SOURCES/0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch +++ /dev/null @@ -1,264 +0,0 @@ -From 706f06c39a9e08a4708a53722429d13ae4069c2f Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Wed, 1 May 2024 15:25:26 -0700 -Subject: [PATCH] Use an explicit x86-64 cpu in tests that are sensitive to it - -There are a few tests that depend on some target features **not** being -enabled by default, and usually they are correct with the default x86-64 -target CPU. However, in downstream builds we have modified the default -to fit our distros -- `x86-64-v2` in RHEL 9 and `x86-64-v3` in RHEL 10 --- and the latter especially trips tests that expect not to have AVX. - -These cases are few enough that we can just set them back explicitly. ---- - tests/assembly/simd-intrinsic-mask-reduce.rs | 1 + - tests/assembly/x86_64-floating-point-clamp.rs | 2 +- - .../codegen/target-feature-inline-closure.rs | 2 +- - tests/ui/asm/x86_64/target-feature-attr.rs | 1 + - .../ui/asm/x86_64/target-feature-attr.stderr | 8 +++--- - .../const-eval/const_fn_target_feature.rs | 2 +- - .../rfc-2396-target_feature-11/safe-calls.rs | 1 + - .../safe-calls.stderr | 28 +++++++++---------- - tests/ui/sse2.rs | 4 +-- - 9 files changed, 26 insertions(+), 23 deletions(-) - -diff --git a/tests/assembly/simd-intrinsic-mask-reduce.rs b/tests/assembly/simd-intrinsic-mask-reduce.rs -index 763401755fad..0d77fc410511 100644 ---- a/tests/assembly/simd-intrinsic-mask-reduce.rs -+++ b/tests/assembly/simd-intrinsic-mask-reduce.rs -@@ -1,6 +1,7 @@ - // verify that simd mask reductions do not introduce additional bit shift operations - //@ revisions: x86 aarch64 - //@ [x86] compile-flags: --target=x86_64-unknown-linux-gnu -C llvm-args=-x86-asm-syntax=intel -+//@ [x86] compile-flags: -C target-cpu=x86-64 - //@ [x86] needs-llvm-components: x86 - //@ [aarch64] compile-flags: --target=aarch64-unknown-linux-gnu - //@ [aarch64] needs-llvm-components: aarch64 -diff --git a/tests/assembly/x86_64-floating-point-clamp.rs b/tests/assembly/x86_64-floating-point-clamp.rs -index 4a72a7f44fa0..b963aee35590 100644 ---- a/tests/assembly/x86_64-floating-point-clamp.rs -+++ b/tests/assembly/x86_64-floating-point-clamp.rs -@@ -2,7 +2,7 @@ - // so check to make sure that's what it's actually emitting. - - //@ assembly-output: emit-asm --//@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel -+//@ compile-flags: --crate-type=lib -O -C llvm-args=-x86-asm-syntax=intel -C target-cpu=x86-64 - //@ only-x86_64 - //@ ignore-sgx - -diff --git a/tests/codegen/target-feature-inline-closure.rs b/tests/codegen/target-feature-inline-closure.rs -index 88bd413a8707..20bb4e66ff21 100644 ---- a/tests/codegen/target-feature-inline-closure.rs -+++ b/tests/codegen/target-feature-inline-closure.rs -@@ -1,5 +1,5 @@ - //@ only-x86_64 --//@ compile-flags: -Copt-level=3 -+//@ compile-flags: -Copt-level=3 -Ctarget-cpu=x86-64 - - #![crate_type = "lib"] - #![feature(target_feature_11)] -diff --git a/tests/ui/asm/x86_64/target-feature-attr.rs b/tests/ui/asm/x86_64/target-feature-attr.rs -index 820be132ef79..51829be15065 100644 ---- a/tests/ui/asm/x86_64/target-feature-attr.rs -+++ b/tests/ui/asm/x86_64/target-feature-attr.rs -@@ -1,4 +1,5 @@ - //@ only-x86_64 -+//@ compile-flags: -C target-cpu=x86-64 - - #![feature(avx512_target_feature)] - -diff --git a/tests/ui/asm/x86_64/target-feature-attr.stderr b/tests/ui/asm/x86_64/target-feature-attr.stderr -index c852726ee7ff..1a9962732cfb 100644 ---- a/tests/ui/asm/x86_64/target-feature-attr.stderr -+++ b/tests/ui/asm/x86_64/target-feature-attr.stderr -@@ -1,23 +1,23 @@ - error: register class `ymm_reg` requires the `avx` target feature -- --> $DIR/target-feature-attr.rs:18:40 -+ --> $DIR/target-feature-attr.rs:19:40 - | - LL | asm!("vaddps {2:y}, {0:y}, {1:y}", in(ymm_reg) x, in(ymm_reg) y, lateout(ymm_reg) x); - | ^^^^^^^^^^^^^ - - error: register class `ymm_reg` requires the `avx` target feature -- --> $DIR/target-feature-attr.rs:18:55 -+ --> $DIR/target-feature-attr.rs:19:55 - | - LL | asm!("vaddps {2:y}, {0:y}, {1:y}", in(ymm_reg) x, in(ymm_reg) y, lateout(ymm_reg) x); - | ^^^^^^^^^^^^^ - - error: register class `ymm_reg` requires the `avx` target feature -- --> $DIR/target-feature-attr.rs:18:70 -+ --> $DIR/target-feature-attr.rs:19:70 - | - LL | asm!("vaddps {2:y}, {0:y}, {1:y}", in(ymm_reg) x, in(ymm_reg) y, lateout(ymm_reg) x); - | ^^^^^^^^^^^^^^^^^^ - - error: register class `kreg` requires at least one of the following target features: avx512bw, avx512f -- --> $DIR/target-feature-attr.rs:33:23 -+ --> $DIR/target-feature-attr.rs:34:23 - | - LL | asm!("/* {0} */", in(kreg) x); - | ^^^^^^^^^^ -diff --git a/tests/ui/consts/const-eval/const_fn_target_feature.rs b/tests/ui/consts/const-eval/const_fn_target_feature.rs -index b56b68a57958..d0de9d8d7a34 100644 ---- a/tests/ui/consts/const-eval/const_fn_target_feature.rs -+++ b/tests/ui/consts/const-eval/const_fn_target_feature.rs -@@ -1,5 +1,5 @@ - //@ only-x86_64 --//@ compile-flags:-C target-feature=+ssse3 -+//@ compile-flags: -C target-cpu=x86-64 -C target-feature=+ssse3 - - #![crate_type = "lib"] - -diff --git a/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.rs b/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.rs -index c73b8d7e4d29..6fb0688008e6 100644 ---- a/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.rs -+++ b/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.rs -@@ -1,4 +1,5 @@ - //@ only-x86_64 -+//@ compile-flags: -C target-cpu=x86-64 - - #![feature(target_feature_11)] - -diff --git a/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.stderr b/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.stderr -index d9d7e297f8e9..fed3da6594cb 100644 ---- a/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.stderr -+++ b/tests/ui/rfcs/rfc-2396-target_feature-11/safe-calls.stderr -@@ -1,5 +1,5 @@ - error[E0133]: call to function `sse2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:25:5 -+ --> $DIR/safe-calls.rs:26:5 - | - LL | sse2(); - | ^^^^^^ call to function with `#[target_feature]` -@@ -8,7 +8,7 @@ LL | sse2(); - = note: the sse2 target feature being enabled in the build configuration does not remove the requirement to list it in `#[target_feature]` - - error[E0133]: call to function `avx_bmi2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:27:5 -+ --> $DIR/safe-calls.rs:28:5 - | - LL | avx_bmi2(); - | ^^^^^^^^^^ call to function with `#[target_feature]` -@@ -16,7 +16,7 @@ LL | avx_bmi2(); - = help: in order for the call to be safe, the context requires the following additional target features: avx and bmi2 - - error[E0133]: call to function `Quux::avx_bmi2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:29:5 -+ --> $DIR/safe-calls.rs:30:5 - | - LL | Quux.avx_bmi2(); - | ^^^^^^^^^^^^^^^ call to function with `#[target_feature]` -@@ -24,7 +24,7 @@ LL | Quux.avx_bmi2(); - = help: in order for the call to be safe, the context requires the following additional target features: avx and bmi2 - - error[E0133]: call to function `avx_bmi2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:35:5 -+ --> $DIR/safe-calls.rs:36:5 - | - LL | avx_bmi2(); - | ^^^^^^^^^^ call to function with `#[target_feature]` -@@ -32,7 +32,7 @@ LL | avx_bmi2(); - = help: in order for the call to be safe, the context requires the following additional target features: avx and bmi2 - - error[E0133]: call to function `Quux::avx_bmi2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:37:5 -+ --> $DIR/safe-calls.rs:38:5 - | - LL | Quux.avx_bmi2(); - | ^^^^^^^^^^^^^^^ call to function with `#[target_feature]` -@@ -40,7 +40,7 @@ LL | Quux.avx_bmi2(); - = help: in order for the call to be safe, the context requires the following additional target features: avx and bmi2 - - error[E0133]: call to function `sse2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:43:5 -+ --> $DIR/safe-calls.rs:44:5 - | - LL | sse2(); - | ^^^^^^ call to function with `#[target_feature]` -@@ -49,7 +49,7 @@ LL | sse2(); - = note: the sse2 target feature being enabled in the build configuration does not remove the requirement to list it in `#[target_feature]` - - error[E0133]: call to function `avx_bmi2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:45:5 -+ --> $DIR/safe-calls.rs:46:5 - | - LL | avx_bmi2(); - | ^^^^^^^^^^ call to function with `#[target_feature]` -@@ -57,7 +57,7 @@ LL | avx_bmi2(); - = help: in order for the call to be safe, the context requires the following additional target feature: bmi2 - - error[E0133]: call to function `Quux::avx_bmi2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:47:5 -+ --> $DIR/safe-calls.rs:48:5 - | - LL | Quux.avx_bmi2(); - | ^^^^^^^^^^^^^^^ call to function with `#[target_feature]` -@@ -65,7 +65,7 @@ LL | Quux.avx_bmi2(); - = help: in order for the call to be safe, the context requires the following additional target feature: bmi2 - - error[E0133]: call to function `sse2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:54:5 -+ --> $DIR/safe-calls.rs:55:5 - | - LL | sse2(); - | ^^^^^^ call to function with `#[target_feature]` -@@ -74,7 +74,7 @@ LL | sse2(); - = note: the sse2 target feature being enabled in the build configuration does not remove the requirement to list it in `#[target_feature]` - - error[E0133]: call to function `sse2` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:58:15 -+ --> $DIR/safe-calls.rs:59:15 - | - LL | const _: () = sse2(); - | ^^^^^^ call to function with `#[target_feature]` -@@ -83,7 +83,7 @@ LL | const _: () = sse2(); - = note: the sse2 target feature being enabled in the build configuration does not remove the requirement to list it in `#[target_feature]` - - error[E0133]: call to function `sse2_and_fxsr` with `#[target_feature]` is unsafe and requires unsafe function or block -- --> $DIR/safe-calls.rs:61:15 -+ --> $DIR/safe-calls.rs:62:15 - | - LL | const _: () = sse2_and_fxsr(); - | ^^^^^^^^^^^^^^^ call to function with `#[target_feature]` -@@ -92,7 +92,7 @@ LL | const _: () = sse2_and_fxsr(); - = note: the fxsr and sse2 target features being enabled in the build configuration does not remove the requirement to list them in `#[target_feature]` - - error: call to function `sse2` with `#[target_feature]` is unsafe and requires unsafe block (error E0133) -- --> $DIR/safe-calls.rs:68:5 -+ --> $DIR/safe-calls.rs:69:5 - | - LL | sse2(); - | ^^^^^^ call to function with `#[target_feature]` -@@ -101,12 +101,12 @@ LL | sse2(); - = help: in order for the call to be safe, the context requires the following additional target feature: sse2 - = note: the sse2 target feature being enabled in the build configuration does not remove the requirement to list it in `#[target_feature]` - note: an unsafe function restricts its caller, but its body is safe by default -- --> $DIR/safe-calls.rs:67:1 -+ --> $DIR/safe-calls.rs:68:1 - | - LL | unsafe fn needs_unsafe_block() { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - note: the lint level is defined here -- --> $DIR/safe-calls.rs:64:8 -+ --> $DIR/safe-calls.rs:65:8 - | - LL | #[deny(unsafe_op_in_unsafe_fn)] - | ^^^^^^^^^^^^^^^^^^^^^^ -diff --git a/tests/ui/sse2.rs b/tests/ui/sse2.rs -index fa6d79713b4b..c203ca2716ff 100644 ---- a/tests/ui/sse2.rs -+++ b/tests/ui/sse2.rs -@@ -20,6 +20,6 @@ fn main() { - "SSE2 was not detected as available on an x86 platform"); - } - // check a negative case too -- allowed on x86, but not enabled by default -- assert!(cfg!(not(target_feature = "avx2")), -- "AVX2 shouldn't be detected as available by default on any platform"); -+ assert!(cfg!(not(target_feature = "avx512f")), -+ "AVX512 shouldn't be detected as available by default on any platform"); - } --- -2.44.0 - diff --git a/SOURCES/0001-Use-lld-provided-by-system.patch b/SOURCES/0001-Use-lld-provided-by-system.patch index 8fcf4dc..d5970bd 100644 --- a/SOURCES/0001-Use-lld-provided-by-system.patch +++ b/SOURCES/0001-Use-lld-provided-by-system.patch @@ -63,3 +63,13 @@ diff -Naur a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softflo -- 2.41.0 +--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs 2024-04-09 19:20:09.000000000 +0200 ++++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs 2024-04-26 11:22:31.988601550 +0200 +@@ -9,6 +9,7 @@ pub fn target() -> Target { + base.max_atomic_width = Some(128); + base.add_pre_link_args(LinkerFlavor::Msvc(Lld::No), &["/machine:arm64"]); + base.features = "+v8a".into(); ++ base.linker = Some("lld".into()); + + Target { + llvm_target: "aarch64-unknown-windows".into(), diff --git a/SOURCES/rustc-1.79.0-disable-libssh2.patch b/SOURCES/rustc-1.80.0-disable-libssh2.patch similarity index 53% rename from SOURCES/rustc-1.79.0-disable-libssh2.patch rename to SOURCES/rustc-1.80.0-disable-libssh2.patch index 6b3c90c..85061b4 100644 --- a/SOURCES/rustc-1.79.0-disable-libssh2.patch +++ b/SOURCES/rustc-1.80.0-disable-libssh2.patch @@ -1,7 +1,7 @@ -diff -up rustc-1.79.0-src/src/tools/cargo/Cargo.lock.orig rustc-1.79.0-src/src/tools/cargo/Cargo.lock ---- rustc-1.79.0-src/src/tools/cargo/Cargo.lock.orig 2024-06-13 16:37:16.640599290 -0700 -+++ rustc-1.79.0-src/src/tools/cargo/Cargo.lock 2024-06-13 16:37:16.646599231 -0700 -@@ -2150,7 +2150,6 @@ checksum = "ee4126d8b4ee5c9d9ea891dd875c +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-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-1.79.0-src/src/tools/cargo/Cargo.lock.orig rustc-1.79.0-src/src/t "libz-sys", "openssl-sys", "pkg-config", -@@ -2191,20 +2190,6 @@ dependencies = [ +@@ -2192,20 +2191,6 @@ dependencies = [ "pkg-config", "vcpkg", ] @@ -30,13 +30,13 @@ diff -up rustc-1.79.0-src/src/tools/cargo/Cargo.lock.orig rustc-1.79.0-src/src/t [[package]] name = "libz-sys" -diff -up rustc-1.79.0-src/src/tools/cargo/Cargo.toml.orig rustc-1.79.0-src/src/tools/cargo/Cargo.toml ---- rustc-1.79.0-src/src/tools/cargo/Cargo.toml.orig 2024-06-13 16:37:16.646599231 -0700 -+++ rustc-1.79.0-src/src/tools/cargo/Cargo.toml 2024-06-13 16:39:06.040526596 -0700 +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-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"] } + 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" diff --git a/SOURCES/rustc-1.79.0-unbundle-sqlite.patch b/SOURCES/rustc-1.80.0-unbundle-sqlite.patch similarity index 61% rename from SOURCES/rustc-1.79.0-unbundle-sqlite.patch rename to SOURCES/rustc-1.80.0-unbundle-sqlite.patch index 8101227..d38128d 100644 --- a/SOURCES/rustc-1.79.0-unbundle-sqlite.patch +++ b/SOURCES/rustc-1.80.0-unbundle-sqlite.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 2006-07-24 10:21:28.000000000 +0900 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-05-06 14:13:00.172595245 +0900 -@@ -2191,7 +2191,6 @@ version = "0.28.0" +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2006-07-23 18:21:28.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-07-05 18:09:20.585019493 -0700 +@@ -2189,7 +2189,6 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" dependencies = [ @@ -10,10 +10,10 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools "vcpkg", ] 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-05-06 14:13:00.173595257 +0900 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-05-06 14:13:54.089275003 +0900 +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2024-07-05 18:09:20.585019493 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-07-05 18:10:13.753432408 -0700 @@ -77,7 +77,7 @@ proptest = "1.4.0" - pulldown-cmark = { version = "0.10.2", default-features = false, features = ["html"] } + pulldown-cmark = { version = "0.10.3", default-features = false, features = ["html"] } rand = "0.8.5" regex = "1.10.4" -rusqlite = { version = "0.31.0", features = ["bundled"] } diff --git a/SPECS/rust.spec b/SPECS/rust.spec index 3312543..098354f 100644 --- a/SPECS/rust.spec +++ b/SPECS/rust.spec @@ -2,14 +2,14 @@ ## (rpmautospec version 0.6.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: - release_number = 3; + release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec Name: rust -Version: 1.79.0 +Version: 1.80.1 Release: %autorelease Summary: The Rust Programming Language License: (Apache-2.0 OR MIT) AND (Artistic-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-DFS-2016) @@ -24,9 +24,9 @@ ExclusiveArch: %{rust_arches} # To bootstrap from scratch, set the channel and date from src/stage0.json # e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13 # or nightly wants some beta-YYYY-MM-DD -%global bootstrap_version 1.78.0 -%global bootstrap_channel 1.78.0 -%global bootstrap_date 2024-05-02 +%global bootstrap_version 1.79.0 +%global bootstrap_channel 1.79.0 +%global bootstrap_date 2024-06-13 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -54,6 +54,9 @@ ExclusiveArch: %{rust_arches} %endif %ifarch aarch64 %if 0%{?fedora} +%global extra_targets aarch64-unknown-none-softfloat aarch64-unknown-uefi +%endif +%if 0%{?rhel} >= 10 %global extra_targets aarch64-unknown-none-softfloat %endif %endif @@ -165,16 +168,10 @@ Patch4: 0001-bootstrap-allow-disabling-target-self-contained.patch Patch5: 0002-set-an-external-library-path-for-wasm32-wasi.patch # We don't want to use the bundled library in libsqlite3-sys -Patch6: rustc-1.79.0-unbundle-sqlite.patch - -# https://github.com/rust-lang/rust/pull/124597 -Patch7: 0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch +Patch6: rustc-1.80.0-unbundle-sqlite.patch # Fix codegen test failure on big endian: https://github.com/rust-lang/rust/pull/126263 -Patch8: 0001-Make-issue-122805.rs-big-endian-compatible.patch - -# https://github.com/rust-lang/rust/pull/128271 -Patch9: 0001-Disable-jump-threading-of-float-equality.patch +Patch7: 0001-Make-issue-122805.rs-big-endian-compatible.patch ### RHEL-specific patches below ### @@ -185,7 +182,7 @@ Source102: cargo_vendor.attr Source103: cargo_vendor.prov # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) -Patch100: rustc-1.79.0-disable-libssh2.patch +Patch100: rustc-1.80.0-disable-libssh2.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -308,7 +305,10 @@ BuildRequires: python3-rpm BuildRequires: glibc-static # For tests/run-make/pgo-branch-weights +# riscv64 does not support binutils-gold yet +%ifnarch riscv64 BuildRequires: binutils-gold +%endif # Virtual provides for folks who attempt "dnf install rustc" Provides: rustc = %{version}-%{release} @@ -468,6 +468,12 @@ Requires: lld %target_description x86_64-unknown-none embedded %endif +%if %target_enabled aarch64-unknown-uefi +%target_package aarch64-unknown-uefi +Requires: lld +%target_description aarch64-unknown-uefi embedded +%endif + %if %target_enabled x86_64-unknown-uefi %target_package x86_64-unknown-uefi Requires: lld @@ -671,8 +677,6 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %patch -P6 -p1 %endif %patch -P7 -p1 -%patch -P8 -p1 -%patch -P9 -p1 %if %with disabled_libssh2 %patch -P100 -p1 @@ -1093,6 +1097,10 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %target_files x86_64-unknown-none %endif +%if %target_enabled aarch64-unknown-uefi +%target_files aarch64-unknown-uefi +%endif + %if %target_enabled x86_64-unknown-uefi %target_files x86_64-unknown-uefi %endif @@ -1178,10 +1186,16 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %changelog -* Fri Oct 25 2024 MSVSphere Packaging Team - 1.79.0-3 +## START: Generated by rpmautospec +* Fri Oct 25 2024 MSVSphere Packaging Team - 1.80.1-1 - Rebuilt for MSVSphere 10 -## START: Generated by rpmautospec +* Tue Oct 22 2024 Josh Stone - 1.80.1-1 +- Update to Rust 1.80.1 + +* Wed Oct 09 2024 Davide Cavalca - 1.79.0-4 +- Reenable the aarch64-unknown-none-softfloat target on RHEL + * Tue Aug 13 2024 Josh Stone - 1.79.0-3 - Disable jump threading of float equality