import rust-1.52.1-1.module+el8.4.0+11282+0729bac9

This commit is contained in:
CentOS Sources 2021-08-10 08:12:49 -04:00 committed by Andrew Lukoshko
parent 2a05617f78
commit e7012379f5
6 changed files with 157 additions and 31 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/rustc-1.49.0-src.tar.xz SOURCES/rustc-1.52.1-src.tar.xz

View File

@ -1 +1 @@
f6f4d4e41694935511097c3913d9f720d5e606f8 SOURCES/rustc-1.49.0-src.tar.xz c5cdec7630c1915cac29e962e02465544335bad4 SOURCES/rustc-1.52.1-src.tar.xz

View File

@ -0,0 +1,102 @@
From eaf7ea1fc339e1ff348ed941ed2e8c4d66f3e458 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Thu, 18 Feb 2021 19:14:58 -0800
Subject: [PATCH] Revert "Auto merge of #79547 - erikdesjardins:byval,
r=nagisa"
This reverts commit a094ff9590b83c8f94d898f92c2964a5803ded06, reversing
changes made to d37afad0cc87bf709ad10c85319296ac53030f03.
---
compiler/rustc_middle/src/ty/layout.rs | 12 ++++++------
...return-value-in-reg.rs => return-value-in-reg.rs} | 4 ++--
src/test/codegen/union-abi.rs | 11 +++--------
3 files changed, 11 insertions(+), 16 deletions(-)
rename src/test/codegen/{arg-return-value-in-reg.rs => return-value-in-reg.rs} (74%)
diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs
index b545b92c9252..545f6aee1a21 100644
--- a/compiler/rustc_middle/src/ty/layout.rs
+++ b/compiler/rustc_middle/src/ty/layout.rs
@@ -2849,7 +2849,7 @@ fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi) {
|| abi == SpecAbi::RustIntrinsic
|| abi == SpecAbi::PlatformIntrinsic
{
- let fixup = |arg: &mut ArgAbi<'tcx, Ty<'tcx>>| {
+ let fixup = |arg: &mut ArgAbi<'tcx, Ty<'tcx>>, is_ret: bool| {
if arg.is_ignore() {
return;
}
@@ -2887,9 +2887,9 @@ fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi) {
_ => return,
}
- // Pass and return structures up to 2 pointers in size by value, matching `ScalarPair`.
- // LLVM will usually pass these in 2 registers, which is more efficient than by-ref.
- let max_by_val_size = Pointer.size(cx) * 2;
+ // Return structures up to 2 pointers in size by value, matching `ScalarPair`. LLVM
+ // will usually return these in 2 registers, which is more efficient than by-ref.
+ let max_by_val_size = if is_ret { Pointer.size(cx) * 2 } else { Pointer.size(cx) };
let size = arg.layout.size;
if arg.layout.is_unsized() || size > max_by_val_size {
@@ -2901,9 +2901,9 @@ fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi) {
arg.cast_to(Reg { kind: RegKind::Integer, size });
}
};
- fixup(&mut self.ret);
+ fixup(&mut self.ret, true);
for arg in &mut self.args {
- fixup(arg);
+ fixup(arg, false);
}
return;
}
diff --git a/src/test/codegen/arg-return-value-in-reg.rs b/src/test/codegen/return-value-in-reg.rs
similarity index 74%
rename from src/test/codegen/arg-return-value-in-reg.rs
rename to src/test/codegen/return-value-in-reg.rs
index a69291d47821..4bc0136c5e32 100644
--- a/src/test/codegen/arg-return-value-in-reg.rs
+++ b/src/test/codegen/return-value-in-reg.rs
@@ -1,4 +1,4 @@
-//! Check that types of up to 128 bits are passed and returned by-value instead of via pointer.
+//! This test checks that types of up to 128 bits are returned by-value instead of via out-pointer.
// compile-flags: -C no-prepopulate-passes -O
// only-x86_64
@@ -11,7 +11,7 @@ pub struct S {
c: u32,
}
-// CHECK: define i128 @modify(i128{{( %0)?}})
+// CHECK: define i128 @modify(%S* noalias nocapture dereferenceable(16) %s)
#[no_mangle]
pub fn modify(s: S) -> S {
S { a: s.a + s.a, b: s.b + s.b, c: s.c + s.c }
diff --git a/src/test/codegen/union-abi.rs b/src/test/codegen/union-abi.rs
index f282fd237054..afea01e9a2d0 100644
--- a/src/test/codegen/union-abi.rs
+++ b/src/test/codegen/union-abi.rs
@@ -63,16 +63,11 @@ pub union UnionU128{a:u128}
#[no_mangle]
pub fn test_UnionU128(_: UnionU128) -> UnionU128 { loop {} }
-pub union UnionU128x2{a:(u128, u128)}
-// CHECK: define void @test_UnionU128x2(i128 %_1.0, i128 %_1.1)
-#[no_mangle]
-pub fn test_UnionU128x2(_: UnionU128x2) { loop {} }
-
#[repr(C)]
-pub union CUnionU128x2{a:(u128, u128)}
-// CHECK: define void @test_CUnionU128x2(%CUnionU128x2* {{.*}} %_1)
+pub union CUnionU128{a:u128}
+// CHECK: define void @test_CUnionU128(%CUnionU128* {{.*}} %_1)
#[no_mangle]
-pub fn test_CUnionU128x2(_: CUnionU128x2) { loop {} }
+pub fn test_CUnionU128(_: CUnionU128) { loop {} }
pub union UnionBool { b:bool }
// CHECK: define zeroext i1 @test_UnionBool(i8 %b)
--
2.29.2

View File

@ -1,6 +1,6 @@
--- rustc-1.49.0-src/Cargo.lock.orig 2021-01-05 12:45:10.456414612 -0800 --- rustc-beta-src/Cargo.lock.orig 2021-03-09 10:30:08.626424998 -0800
+++ rustc-1.49.0-src/Cargo.lock 2021-01-05 12:45:10.458414575 -0800 +++ rustc-beta-src/Cargo.lock 2021-03-09 10:32:38.096207704 -0800
@@ -882,7 +882,6 @@ @@ -899,7 +899,6 @@
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
@ -8,7 +8,7 @@
"libz-sys", "libz-sys",
"openssl-sys", "openssl-sys",
"pkg-config", "pkg-config",
@@ -1728,16 +1727,6 @@ @@ -1860,16 +1859,6 @@
] ]
[[package]] [[package]]
@ -25,10 +25,10 @@
name = "libz-sys" name = "libz-sys"
version = "1.1.2" version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
--- rustc-1.49.0-src/src/tools/cargo/Cargo.toml.orig 2021-01-05 12:45:10.458414575 -0800 --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2021-03-05 08:34:15.000000000 -0800
+++ rustc-1.49.0-src/src/tools/cargo/Cargo.toml 2021-01-05 12:47:25.966928554 -0800 +++ rustc-beta-src/src/tools/cargo/Cargo.toml 2021-03-09 10:32:38.096207704 -0800
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
crates-io = { path = "crates/crates-io", version = "0.31.1" } crates-io = { path = "crates/crates-io", version = "0.33.0" }
crossbeam-utils = "0.8" crossbeam-utils = "0.8"
crypto-hash = "0.3.1" crypto-hash = "0.3.1"
-curl = { version = "0.4.23", features = ["http2"] } -curl = { version = "0.4.23", features = ["http2"] }
@ -36,9 +36,9 @@
curl-sys = "0.4.22" curl-sys = "0.4.22"
env_logger = "0.8.1" env_logger = "0.8.1"
pretty_env_logger = { version = "0.4", optional = true } pretty_env_logger = { version = "0.4", optional = true }
--- rustc-1.49.0-src/src/tools/cargo/src/cargo/core/package.rs.orig 2020-12-28 19:03:25.000000000 -0800 --- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2021-03-05 08:34:15.000000000 -0800
+++ rustc-1.49.0-src/src/tools/cargo/src/cargo/core/package.rs 2021-01-05 12:45:10.458414575 -0800 +++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2021-03-09 10:32:38.096207704 -0800
@@ -408,14 +408,8 @@ @@ -412,14 +412,8 @@
// Also note that pipelining is disabled as curl authors have indicated // Also note that pipelining is disabled as curl authors have indicated
// that it's buggy, and we've empirically seen that it's buggy with HTTP // that it's buggy, and we've empirically seen that it's buggy with HTTP
// proxies. // proxies.
@ -55,7 +55,7 @@
Ok(PackageSet { Ok(PackageSet {
packages: package_ids packages: package_ids
@@ -584,7 +578,7 @@ @@ -592,7 +586,7 @@
macro_rules! try_old_curl { macro_rules! try_old_curl {
($e:expr, $msg:expr) => { ($e:expr, $msg:expr) => {
let result = $e; let result = $e;

View File

@ -1,14 +1,15 @@
--- rustc-1.48.0-src/compiler/rustc_codegen_ssa/src/back/link.rs.orig 2020-11-16 06:01:53.000000000 -0800 --- rustc-beta-src/compiler/rustc_codegen_ssa/src/back/link.rs.orig 2021-03-09 10:40:09.755485845 -0800
+++ rustc-1.48.0-src/compiler/rustc_codegen_ssa/src/back/link.rs 2020-11-16 09:37:15.779516797 -0800 +++ rustc-beta-src/compiler/rustc_codegen_ssa/src/back/link.rs 2021-03-09 10:44:51.257426181 -0800
@@ -1185,10 +1185,12 @@ @@ -1279,11 +1279,13 @@
} }
fn link_output_kind(sess: &Session, crate_type: CrateType) -> LinkOutputKind { fn link_output_kind(sess: &Session, crate_type: CrateType) -> LinkOutputKind {
- let kind = match (crate_type, sess.crt_static(Some(crate_type)), sess.relocation_model()) { - let kind = match (crate_type, sess.crt_static(Some(crate_type)), sess.relocation_model()) {
- (CrateType::Executable, false, RelocModel::Pic) => LinkOutputKind::DynamicPicExe,
+ // Only use PIE if explicity specified. + // Only use PIE if explicity specified.
+ let explicit_pic = matches!(sess.opts.cg.relocation_model, Some(RelocModel::Pic)); + let explicit_pic = matches!(sess.opts.cg.relocation_model, Some(RelocModel::Pic));
+ let kind = match (crate_type, sess.crt_static(Some(crate_type)), explicit_pic) { + let kind = match (crate_type, sess.crt_static(Some(crate_type)), explicit_pic) {
(CrateType::Executable, _, _) if sess.is_wasi_reactor() => LinkOutputKind::WasiReactorExe,
- (CrateType::Executable, false, RelocModel::Pic) => LinkOutputKind::DynamicPicExe,
+ (CrateType::Executable, false, true) => LinkOutputKind::DynamicPicExe, + (CrateType::Executable, false, true) => LinkOutputKind::DynamicPicExe,
(CrateType::Executable, false, _) => LinkOutputKind::DynamicNoPicExe, (CrateType::Executable, false, _) => LinkOutputKind::DynamicNoPicExe,
- (CrateType::Executable, true, RelocModel::Pic) => LinkOutputKind::StaticPicExe, - (CrateType::Executable, true, RelocModel::Pic) => LinkOutputKind::StaticPicExe,

View File

@ -10,10 +10,10 @@
# e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 # e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24
# or nightly wants some beta-YYYY-MM-DD # or nightly wants some beta-YYYY-MM-DD
# Note that cargo matches the program version here, not its crate version. # Note that cargo matches the program version here, not its crate version.
%global bootstrap_rust 1.48.0 %global bootstrap_rust 1.51.0
%global bootstrap_cargo 1.48.0 %global bootstrap_cargo 1.51.0
%global bootstrap_channel 1.48.0 %global bootstrap_channel 1.51.0
%global bootstrap_date 2020-11-19 %global bootstrap_date 2021-03-25
# Only the specified arches will use bootstrap binaries. # Only the specified arches will use bootstrap binaries.
#global bootstrap_arches %%{rust_arches} #global bootstrap_arches %%{rust_arches}
@ -22,11 +22,11 @@
%bcond_with llvm_static %bcond_with llvm_static
# We can also choose to just use Rust's bundled LLVM, in case the system LLVM # We can also choose to just use Rust's bundled LLVM, in case the system LLVM
# is insufficient. Rust currently requires LLVM 8.0+. # is insufficient. Rust currently requires LLVM 9.0+.
%bcond_with bundled_llvm %bcond_with bundled_llvm
# Requires stable libgit2 1.0 # Requires stable libgit2 1.1
%if 0%{?fedora} >= 32 %if 0%{?fedora} >= 34
%bcond_with bundled_libgit2 %bcond_with bundled_libgit2
%else %else
%bcond_without bundled_libgit2 %bcond_without bundled_libgit2
@ -53,7 +53,7 @@
%endif %endif
Name: rust Name: rust
Version: 1.49.0 Version: 1.52.1
Release: 1%{?dist} Release: 1%{?dist}
Summary: The Rust Programming Language Summary: The Rust Programming Language
License: (ASL 2.0 or MIT) and (BSD and MIT) License: (ASL 2.0 or MIT) and (BSD and MIT)
@ -68,6 +68,10 @@ ExclusiveArch: %{rust_arches}
%endif %endif
Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz
# This internal rust-abi change broke s390x -- revert for now.
# https://github.com/rust-lang/rust/issues/80810#issuecomment-781784032
Patch1: 0001-Revert-Auto-merge-of-79547.patch
### RHEL-specific patches below ### ### RHEL-specific patches below ###
# Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949)
@ -75,11 +79,11 @@ Patch100: rustc-1.48.0-disable-libssh2.patch
# libcurl on RHEL7 doesn't have http2, but since cargo requests it, curl-sys # libcurl on RHEL7 doesn't have http2, but since cargo requests it, curl-sys
# will try to build it statically -- instead we turn off the feature. # will try to build it statically -- instead we turn off the feature.
Patch101: rustc-1.49.0-disable-http2.patch Patch101: rustc-1.51.0-disable-http2.patch
# kernel rh1410097 causes too-small stacks for PIE. # kernel rh1410097 causes too-small stacks for PIE.
# (affects RHEL6 kernels when building for RHEL7) # (affects RHEL6 kernels when building for RHEL7)
Patch102: rustc-1.48.0-no-default-pie.patch Patch102: rustc-1.51.0-no-default-pie.patch
# Get the Rust triple for any arch. # Get the Rust triple for any arch.
@ -149,7 +153,7 @@ BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(zlib)
%if %without bundled_libgit2 %if %without bundled_libgit2
BuildRequires: pkgconfig(libgit2) >= 1.0.0 BuildRequires: pkgconfig(libgit2) >= 1.1.0
%endif %endif
%if %{without disabled_libssh2} %if %{without disabled_libssh2}
@ -161,8 +165,8 @@ BuildRequires: pkgconfig(libssh2) >= 1.6.0
BuildRequires: %{python} BuildRequires: %{python}
%if %with bundled_llvm %if %with bundled_llvm
BuildRequires: cmake3 >= 3.4.3 BuildRequires: cmake3 >= 3.13.4
Provides: bundled(llvm) = 11.0.0 Provides: bundled(llvm) = 12.0.0
%else %else
BuildRequires: cmake >= 2.8.11 BuildRequires: cmake >= 2.8.11
%if 0%{?epel} == 7 %if 0%{?epel} == 7
@ -397,6 +401,8 @@ test -f '%{local_rust_root}/bin/rustc'
%setup -q -n %{rustc_package} %setup -q -n %{rustc_package}
%patch1 -p1
%if %with disabled_libssh2 %if %with disabled_libssh2
%patch100 -p1 %patch100 -p1
%endif %endif
@ -530,7 +536,8 @@ fi
--enable-vendor \ --enable-vendor \
--enable-verbose-tests \ --enable-verbose-tests \
%{?codegen_units_std} \ %{?codegen_units_std} \
--release-channel=%{channel} --release-channel=%{channel} \
--release-description="%{?fedora:Fedora }%{?rhel:Red Hat }%{version}-%{release}"
%{python} ./x.py build -j "$ncpus" --stage 2 %{python} ./x.py build -j "$ncpus" --stage 2
%{python} ./x.py doc --stage 2 %{python} ./x.py doc --stage 2
@ -604,6 +611,9 @@ rm -f %{buildroot}%{_bindir}/rust-lldb
rm -f %{buildroot}%{rustlibdir}/etc/lldb_* rm -f %{buildroot}%{rustlibdir}/etc/lldb_*
%endif %endif
# We don't want Rust copies of LLVM tools (rust-lld, rust-llvm-dwp)
rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll*
%check %check
export %{rust_env} export %{rust_env}
@ -670,6 +680,7 @@ export %{rust_env}
%{_docdir}/%{name}/html/*.png %{_docdir}/%{name}/html/*.png
%{_docdir}/%{name}/html/*.svg %{_docdir}/%{name}/html/*.svg
%{_docdir}/%{name}/html/*.woff %{_docdir}/%{name}/html/*.woff
%{_docdir}/%{name}/html/*.woff2
%license %{_docdir}/%{name}/html/*.txt %license %{_docdir}/%{name}/html/*.txt
%license %{_docdir}/%{name}/html/*.md %license %{_docdir}/%{name}/html/*.md
@ -678,6 +689,7 @@ export %{rust_env}
%license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY %license src/tools/cargo/LICENSE-APACHE src/tools/cargo/LICENSE-MIT src/tools/cargo/LICENSE-THIRD-PARTY
%doc src/tools/cargo/README.md %doc src/tools/cargo/README.md
%{_bindir}/cargo %{_bindir}/cargo
%{_libexecdir}/cargo*
%{_mandir}/man1/cargo*.1* %{_mandir}/man1/cargo*.1*
%{_sysconfdir}/bash_completion.d/cargo %{_sysconfdir}/bash_completion.d/cargo
%{_datadir}/zsh/site-functions/_cargo %{_datadir}/zsh/site-functions/_cargo
@ -721,6 +733,17 @@ export %{rust_env}
%changelog %changelog
* Tue May 25 2021 Josh Stone <jistone@redhat.com> - 1.52.1-1
- Update to 1.52.1. Includes security fixes for CVE-2020-36323,
CVE-2021-28876, CVE-2021-28878, CVE-2021-28879, and CVE-2021-31162.
* Mon May 24 2021 Josh Stone <jistone@redhat.com> - 1.51.0-1
- Update to 1.51.0. Update to 1.51.0. Includes security fixes for
CVE-2021-28875 and CVE-2021-28877.
* Mon May 24 2021 Josh Stone <jistone@redhat.com> - 1.50.0-1
- Update to 1.50.0.
* Wed Jan 13 2021 Josh Stone <jistone@redhat.com> - 1.49.0-1 * Wed Jan 13 2021 Josh Stone <jistone@redhat.com> - 1.49.0-1
- Update to 1.49.0. - Update to 1.49.0.