Accepting request 824719 from home:mrostecki:branches:devel:languages:rust

NOTE: The reason I made an update to 1.44.x instead od 1.45.x is that it's impossible to build 1.45.x with 1.43.x. We will be able to update to 1.45.x after we have 1.44.x compilers reeady.

- Update to version 1.44.1
  * rustfmt accepts rustfmt_skip in cfg_attr again.
  * Don't hash executable filenames on apple platforms, fixing backtraces.
  * Fix crashes when finding backtrace on macOS.
  * Clippy applies lint levels into different files.
- Update to version 1.44.0
  + Language
    - You can now use `async/.await` with `#[no_std]` enabled.
    - Added the `unused_braces` lint.
    - Expansion-driven outline module parsing
  + Compiler
    - Rustc now respects the `-C codegen-units` flag in incremental mode.
      Additionally when in incremental mode rustc defaults to 256 codegen units.
    - Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and
      a panic is thrown.
    - Added tier 3\* support for the `aarch64-unknown-none` and
      `aarch64-unknown-none-softfloat` targets.
    - Added tier 3 support for `arm64-apple-tvos` and
      `x86_64-apple-tvos` targets.
  + Libraries
    - Special cased `vec![]` to map directly to `Vec::new()`. This allows
      `vec![]` to be able to be used in `const` contexts.
    - `convert::Infallible` now implements `Hash`.
    - `OsString` now implements `DerefMut` and `IndexMut` returning
      a `&mut OsStr`.
    - Unicode 13 is now supported.
    - `String` now implements `From<&mut str>`.
    - `IoSlice` now implements `Copy`.
    - `Vec<T>` now implements `From<[T; N]>`. Where `N` is at most 32.
    - `proc_macro::LexError` now implements `fmt::Display` and `Error`.

OBS-URL: https://build.opensuse.org/request/show/824719
OBS-URL: https://build.opensuse.org/package/show/devel:languages:rust/rust?expand=0&rev=254
This commit is contained in:
Neal Gompa 2020-08-06 16:56:34 +00:00 committed by Git OBS Bridge
parent 9ab2ea9b36
commit 1dcb483bf1
22 changed files with 113 additions and 215 deletions

View File

@ -1,8 +1,8 @@
Index: rustc-1.42.0-src/src/librustc_llvm/build.rs
Index: rustc-1.44.1-src/src/librustc_llvm/build.rs
===================================================================
--- rustc-1.42.0-src.orig/src/librustc_llvm/build.rs
+++ rustc-1.42.0-src/src/librustc_llvm/build.rs
@@ -135,6 +135,12 @@ fn main() {
--- rustc-1.44.1-src.orig/src/librustc_llvm/build.rs
+++ rustc-1.44.1-src/src/librustc_llvm/build.rs
@@ -145,6 +145,12 @@ fn main() {
continue;
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d1bcbf7575be72c4775c89098366158ee87905423342196a6ef0c1b3d3f1140
size 103995164

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e045d3015949d7240af1ff990ccd59391958a6be5e8bc3baa5210914fa6ebde
size 108910044

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:871b87937e7dc774a2d0f7788520a215efefb7369b4968fe3811d2cbe8f7244a
size 126712424

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c27dc3c10aea2298d15ad90234a9d5f49865ac29a395dea40e2663ce5003e703
size 102103936

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ed9cee7c909ae713970c02cc0114e8cffc3fcd6d4d34c28533c4cb940fd02985
size 109310784

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cd1c77917576c017a67d2e7b07a01df13d30fd0bbf52e7ce4d024649ba7a2267
size 111611976

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d3070fdeceebd999ba132a2f65f956fd28e2e2d02db0a0f87b3454702f322133
size 119622236

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af633676caffaaecfb2600ec617d84e41811e7a6fe438760a97c5404afecdd6b
size 112598556

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d8d8f6b881065c8cfc6b8df922907df838368fa60ce746910324f0ca1009163f
size 104148868

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0587b115d7dc01b8116ae4c395086fa2f45fefbb56b185ef7359139019d82ed
size 108430484

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:171dc7cba06b7204604cdf3fac7669299e14a3e2d6de5a30c4be028f815ad1df
size 125731548

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:daf0bc829eef4b78583dee0ce660c54da81cb760b059006d5e9eaf299cfb81b4
size 105007576

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ef672156f15d19eb0a91e818d11dd5f05b528f401694ed39bf612b5d321eb70c
size 107189572

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cbd84b34845ecddbd4cd1bda864b984d23cc0d8d12eeea8a07ffc42cad12d1c5
size 112921244

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:03061a9d86033148f2f92d92149bd63f38dd72199f99ffc1c614e50bc86635d4
size 119547480

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:59c4137b8b6a27c94a5b6c42e612e3d8d022e2aa12b0ac8ede662048b329fe94
size 112817212

View File

@ -1,175 +0,0 @@
commit 374ab25585f0a817fe7bd6986737f12347b12d0b (from 1add455ec6f81045e7651c6225902823f5d4fbfa)
Merge: 1add455ec6f8 497f879b1e24
Author: bors <bors@rust-lang.org>
Date: Tue Mar 24 12:42:54 2020 +0000
Auto merge of #70163 - nikic:llvm-10-preparation, r=cuviper
Prepare for LLVM 10 upgrade
This is #67759 minus the submodule update.
* Fix two compatibility issues in the rustllvm wrapper.
* Update data layout strings in tests.
* Fix LLVM version comparison (this become a problem because the major version has two digits now).
r? @cuviper
Index: rustc-1.43.0-src/src/bootstrap/test.rs
===================================================================
--- rustc-1.43.0-src.orig/src/bootstrap/test.rs
+++ rustc-1.43.0-src/src/bootstrap/test.rs
@@ -1142,6 +1142,8 @@ impl Step for Compiletest {
let llvm_config = builder.ensure(native::Llvm { target: builder.config.build });
if !builder.config.dry_run {
let llvm_version = output(Command::new(&llvm_config).arg("--version"));
+ // Remove trailing newline from llvm-config output.
+ let llvm_version = llvm_version.trim_end();
cmd.arg("--llvm-version").arg(llvm_version);
}
if !builder.is_rust_llvm(target) {
Index: rustc-1.43.0-src/src/rustllvm/PassWrapper.cpp
===================================================================
--- rustc-1.43.0-src.orig/src/rustllvm/PassWrapper.cpp
+++ rustc-1.43.0-src/src/rustllvm/PassWrapper.cpp
@@ -67,7 +67,11 @@ extern "C" void LLVMInitializePasses() {
}
extern "C" void LLVMTimeTraceProfilerInitialize() {
-#if LLVM_VERSION_GE(9, 0)
+#if LLVM_VERSION_GE(10, 0)
+ timeTraceProfilerInitialize(
+ /* TimeTraceGranularity */ 0,
+ /* ProcName */ "rustc");
+#elif LLVM_VERSION_GE(9, 0)
timeTraceProfilerInitialize();
#endif
}
Index: rustc-1.43.0-src/src/rustllvm/RustWrapper.cpp
===================================================================
--- rustc-1.43.0-src.orig/src/rustllvm/RustWrapper.cpp
+++ rustc-1.43.0-src/src/rustllvm/RustWrapper.cpp
@@ -1328,8 +1328,13 @@ extern "C" LLVMValueRef LLVMRustBuildMem
LLVMValueRef Dst, unsigned DstAlign,
LLVMValueRef Val,
LLVMValueRef Size, bool IsVolatile) {
+#if LLVM_VERSION_GE(10, 0)
+ return wrap(unwrap(B)->CreateMemSet(
+ unwrap(Dst), unwrap(Val), unwrap(Size), MaybeAlign(DstAlign), IsVolatile));
+#else
return wrap(unwrap(B)->CreateMemSet(
unwrap(Dst), unwrap(Val), unwrap(Size), DstAlign, IsVolatile));
+#endif
}
extern "C" LLVMValueRef
Index: rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json
===================================================================
--- rustc-1.43.0-src.orig/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json
+++ rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json
@@ -1,5 +1,5 @@
{
- "data-layout": "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128",
+ "data-layout": "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128",
"linker-flavor": "gcc",
"llvm-target": "i686-unknown-linux-gnu",
"target-endian": "little",
Index: rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json
===================================================================
--- rustc-1.43.0-src.orig/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json
+++ rustc-1.43.0-src/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json
@@ -1,6 +1,6 @@
{
"pre-link-args": {"gcc": ["-m64"]},
- "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128",
+ "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128",
"linker-flavor": "gcc",
"llvm-target": "x86_64-unknown-linux-gnu",
"target-endian": "little",
Index: rustc-1.43.0-src/src/tools/compiletest/src/header.rs
===================================================================
--- rustc-1.43.0-src.orig/src/tools/compiletest/src/header.rs
+++ rustc-1.43.0-src/src/tools/compiletest/src/header.rs
@@ -191,6 +191,7 @@ impl EarlyProps {
return true;
}
if let Some(ref actual_version) = config.llvm_version {
+ let actual_version = version_to_int(actual_version);
if line.starts_with("min-llvm-version") {
let min_version = line
.trim_end()
@@ -199,7 +200,7 @@ impl EarlyProps {
.expect("Malformed llvm version directive");
// Ignore if actual version is smaller the minimum required
// version
- &actual_version[..] < min_version
+ actual_version < version_to_int(min_version)
} else if line.starts_with("min-system-llvm-version") {
let min_version = line
.trim_end()
@@ -208,7 +209,7 @@ impl EarlyProps {
.expect("Malformed llvm version directive");
// Ignore if using system LLVM and actual version
// is smaller the minimum required version
- config.system_llvm && &actual_version[..] < min_version
+ config.system_llvm && actual_version < version_to_int(min_version)
} else if line.starts_with("ignore-llvm-version") {
// Syntax is: "ignore-llvm-version <version1> [- <version2>]"
let range_components = line
@@ -219,15 +220,15 @@ impl EarlyProps {
.take(3) // 3 or more = invalid, so take at most 3.
.collect::<Vec<&str>>();
match range_components.len() {
- 1 => &actual_version[..] == range_components[0],
+ 1 => actual_version == version_to_int(range_components[0]),
2 => {
- let v_min = range_components[0];
- let v_max = range_components[1];
+ let v_min = version_to_int(range_components[0]);
+ let v_max = version_to_int(range_components[1]);
if v_max < v_min {
panic!("Malformed LLVM version range: max < min")
}
// Ignore if version lies inside of range.
- &actual_version[..] >= v_min && &actual_version[..] <= v_max
+ actual_version >= v_min && actual_version <= v_max
}
_ => panic!("Malformed LLVM version directive"),
}
@@ -238,6 +239,20 @@ impl EarlyProps {
false
}
}
+
+ fn version_to_int(version: &str) -> u32 {
+ let version_without_suffix = version.split('-').next().unwrap();
+ let components: Vec<u32> = version_without_suffix
+ .split('.')
+ .map(|s| s.parse().expect("Malformed version component"))
+ .collect();
+ match components.len() {
+ 1 => components[0] * 10000,
+ 2 => components[0] * 10000 + components[1] * 100,
+ 3 => components[0] * 10000 + components[1] * 100 + components[2],
+ _ => panic!("Malformed version"),
+ }
+ }
}
}
Index: rustc-1.43.0-src/src/tools/compiletest/src/header/tests.rs
===================================================================
--- rustc-1.43.0-src.orig/src/tools/compiletest/src/header/tests.rs
+++ rustc-1.43.0-src/src/tools/compiletest/src/header/tests.rs
@@ -122,9 +122,8 @@ fn llvm_version() {
config.llvm_version = Some("9.3.1-rust-1.43.0-dev".to_owned());
assert!(!parse_rs(&config, "// min-llvm-version 9.2").ignore);
- // FIXME.
- // config.llvm_version = Some("10.0.0-rust".to_owned());
- // assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore);
+ config.llvm_version = Some("10.0.0-rust".to_owned());
+ assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore);
}
#[test]

View File

@ -1,3 +1,78 @@
-------------------------------------------------------------------
Thu Aug 6 08:26:41 UTC 2020 - Michał Rostecki <mrostecki@suse.com>
- Update to version 1.44.1
* rustfmt accepts rustfmt_skip in cfg_attr again.
* Don't hash executable filenames on apple platforms, fixing backtraces.
* Fix crashes when finding backtrace on macOS.
* Clippy applies lint levels into different files.
- Update to version 1.44.0
+ Language
- You can now use `async/.await` with `#[no_std]` enabled.
- Added the `unused_braces` lint.
- Expansion-driven outline module parsing
+ Compiler
- Rustc now respects the `-C codegen-units` flag in incremental mode.
Additionally when in incremental mode rustc defaults to 256 codegen units.
- Refactored `catch_unwind` to have zero-cost, unless unwinding is enabled and
a panic is thrown.
- Added tier 3\* support for the `aarch64-unknown-none` and
`aarch64-unknown-none-softfloat` targets.
- Added tier 3 support for `arm64-apple-tvos` and
`x86_64-apple-tvos` targets.
+ Libraries
- Special cased `vec![]` to map directly to `Vec::new()`. This allows
`vec![]` to be able to be used in `const` contexts.
- `convert::Infallible` now implements `Hash`.
- `OsString` now implements `DerefMut` and `IndexMut` returning
a `&mut OsStr`.
- Unicode 13 is now supported.
- `String` now implements `From<&mut str>`.
- `IoSlice` now implements `Copy`.
- `Vec<T>` now implements `From<[T; N]>`. Where `N` is at most 32.
- `proc_macro::LexError` now implements `fmt::Display` and `Error`.
- `from_le_bytes`, `to_le_bytes`, `from_be_bytes`, `to_be_bytes`,
`from_ne_bytes`, and `to_ne_bytes` methods are now `const` for all
integer types.
+ Stabilizd APIs
- [`PathBuf::with_capacity`]
- [`PathBuf::capacity`]
- [`PathBuf::clear`]
- [`PathBuf::reserve`]
- [`PathBuf::reserve_exact`]
- [`PathBuf::shrink_to_fit`]
- [`f32::to_int_unchecked`]
- [`f64::to_int_unchecked`]
- [`Layout::align_to`]
- [`Layout::pad_to_align`]
- [`Layout::array`]
- [`Layout::extend`]
+ Cargo
- Added the `cargo tree` command which will print a tree graph of
your dependencies
+ Misc
- Rustdoc now allows you to specify `--crate-version` to have rustdoc include
the version in the sidebar.
+ Compatibility Notes
- Rustc now correctly generates static libraries on Windows GNU targets with
the `.a` extension, rather than the previous `.lib`.
- Removed the `-C no_integrated_as` flag from rustc.
- The `file_name` property in JSON output of macro errors now points the actual
source file rather than the previous format of `<NAME macros>`.
**Note:** this may not point to a file that actually exists on the user's system.
- The minimum required external LLVM version has been bumped to LLVM 8.
- `mem::{zeroed, uninitialised}` will now panic when used with types that do
not allow zero initialization such as `NonZeroU8`. This was
previously a warning.
- In 1.45.0 (the next release) converting a `f64` to `u32` using the `as`
operator has been defined as a saturating operation. This was previously
undefined behaviour, but you can use the `{f64, f32}::to_int_unchecked` methods to
continue using the current behaviour, which may be desirable in rare performance
sensitive situations.
- Rebased patches:
+ ignore-Wstring-conversion.patch (offset / fuzz)
+ rust-pr70163-prepare-for-llvm-10-upgrade.patch dropped (merged upstream)
-------------------------------------------------------------------
Wed May 20 12:23:40 UTC 2020 - Martin Sirringhaus <martin.sirringhaus@suse.com>

View File

@ -17,12 +17,12 @@
#
%global version_current 1.43.1
%global version_previous 1.43.0
%global version_bootstrap 1.43.0
%global version_current 1.44.1
%global version_previous 1.43.1
%global version_bootstrap 1.43.1
# some sub-packages are versioned independently
%global rustfmt_version 1.4.12
%global rustfmt_version 1.4.16
%global clippy_version 0.0.212
# Build the rust target triple.
@ -136,7 +136,6 @@ Source1000: README.suse-maint
# PATCH-FIX-OPENSUSE: edit src/librustc_llvm/build.rs to ignore GCC incompatible flag
Patch0: ignore-Wstring-conversion.patch
# PATCH-FIX-UPSTREAM: fix compilation with llvm10 https://github.com/rust-lang/rust/issues/71573
Patch1: rust-pr70163-prepare-for-llvm-10-upgrade.patch
BuildRequires: ccache
BuildRequires: curl
BuildRequires: fdupes
@ -310,9 +309,9 @@ A tool for formatting Rust code according to style guidelines.
%package -n clippy
Summary: Lints to catch common mistakes and improve Rust code
# /usr/bin/clippy-driver is dynamically linked against internal rustc libs
License: MPL-2.0
Group: Development/Languages/Rust
# /usr/bin/clippy-driver is dynamically linked against internal rustc libs
Requires: %{name} = %{version}
Requires: cargo = %{version}
Provides: clippy = %{clippy_version}
@ -336,10 +335,10 @@ Cargo downloads dependencies of Rust projects and compiles it.
%package -n cargo-doc
Summary: Documentation for Cargo
License: MIT OR Apache-2.0
Group: Development/Languages/Rust
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
License: MIT OR Apache-2.0
Group: Development/Languages/Rust
Requires: rust-doc = %{version}
BuildArch: noarch
@ -387,7 +386,6 @@ This package includes HTML documentation for Cargo.
%setup -q -n rustc-%{version}-src
%patch0 -p1
%patch1 -p1
# use python3
sed -i -e "1s|#!.*|#!%{_bindir}/python3|" x.py

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eb0a103c67c4565403d9e6f84a1c708982a5e9e5b3c0d831e4d6f6451795d106
size 94405276

3
rustc-1.44.1-src.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e0386295dd5f2c7842835a509e4c57989eec6c29f989a1c85478b0e06f9d38ea
size 94756856