Accepting request 800121 from devel:languages:rust

OBS-URL: https://build.opensuse.org/request/show/800121
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rust?expand=0&rev=51
This commit is contained in:
Dominique Leuenberger 2020-05-07 15:49:57 +00:00 committed by Git OBS Bridge
commit cb1b490f72
21 changed files with 323 additions and 59 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,175 @@
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,105 @@
-------------------------------------------------------------------
Mon May 4 16:21:54 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
- Add rust-pr70163-prepare-for-llvm-10-upgrade.patch to fix compilation
with llvm10
-------------------------------------------------------------------
Mon May 4 10:45:18 UTC 2020 - Andreas Schwab <schwab@suse.de>
- Update rustfmt_version
-------------------------------------------------------------------
Wed Apr 29 11:46:59 UTC 2020 - Martin Sirringhaus <martin.sirringhaus@suse.com>
- Update to version 1.43.0
+ Language
- Fixed using binary operations with `&{number}` (e.g. `&1.0`)
not having the type inferred correctly.
- Attributes such as `#[cfg()]` can now be used on `if`
expressions.
- Syntax only changes:
* Allow `type Foo: Ord` syntactically.
* Fuse associated and extern items up to defaultness.
* Syntactically allow `self` in all `fn` contexts.
* Merge `fn` syntax + cleanup item parsing.
* `item` macro fragments can be interpolated into `trait`s,
`impl`s, and `extern` blocks.
For example, you may now write:
```rust
macro_rules! mac_trait {
($i:item) => {
trait T { $i }
}
}
mac_trait! {
fn foo() {}
}
```
* These are still rejected *semantically*, so you will likely
receive an error but these changes can be seen and parsed by
macros and conditional compilation.
+ Compiler
- You can now pass multiple lint flags to rustc to override the
previous flags.
For example; `rustc -D unused -A unused-variables` denies
everything in the `unused` lint group except `unused-variables`
which is explicitly allowed. However, passing
`rustc -A unused-variables -D unused` denies everything in
the `unused` lint group **including** `unused-variables` since
the allow flag is specified before the deny flag (and therefore
overridden).
- rustc will now prefer your system MinGW libraries over its
bundled libraries if they are available on `windows-gnu`.
- rustc now buffers errors/warnings printed in JSON.
+ Libraries
- `Arc<[T; N]>`, `Box<[T; N]>`, and `Rc<[T; N]>`, now implement
`TryFrom<Arc<[T]>>`,`TryFrom<Box<[T]>>`, and `TryFrom<Rc<[T]>>`
respectively.
**Note** These conversions are only available when `N` is
`0..=32`.
- You can now use associated constants on floats and integers
directly, rather than having to import the module.
e.g. You can now write `u32::MAX` or `f32::NAN` with no imports.
- `u8::is_ascii` is now `const`.
- `String` now implements `AsMut<str>`.
- Added the `primitive` module to `std` and `core`.
This module reexports Rust's primitive types. This is mainly
useful in macros where you want avoid these types being shadowed.
- Relaxed some of the trait bounds on `HashMap` and `HashSet`.
- `string::FromUtf8Error` now implements `Clone + Eq`.
+ Stabilized APIs
- `Once::is_completed`
- `f32::LOG10_2`
- `f32::LOG2_10`
- `f64::LOG10_2`
- `f64::LOG2_10`
- `iter::once_with`
+ Cargo
- You can now set config `[profile]`s in your `.cargo/config`,
or through your environment.
- Cargo will now set `CARGO_BIN_EXE_<name>` pointing to a
binary's executable path when running integration tests or
benchmarks.
`<name>` is the name of your binary as-is e.g. If you wanted
the executable path for a binary named `my-program`you would
use `env!("CARGO_BIN_EXE_my-program")`.
+ Misc
- Certain checks in the `const_err` lint were deemed unrelated
to const evaluation, and have been moved to the
`unconditional_panic` and `arithmetic_overflow` lints.
+ Compatibility Notes
- Having trailing syntax in the `assert!` macro is now a hard
error. This has been a warning since 1.36.0.
- Fixed `Self` not having the correctly inferred type. This
incorrectly led to some instances being accepted, and now
correctly emits a hard error.
-------------------------------------------------------------------
Tue Apr 7 08:54:37 UTC 2020 - Andreas Schwab <schwab@suse.de>
- Avoid duplication of environment settings
-------------------------------------------------------------------
Tue Mar 31 12:28:18 UTC 2020 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package rust
#
# Copyright (c) 2020 SUSE LLC.
# Copyright (c) 2020 SUSE LLC
# Copyright (c) 2019 Luke Jones, luke@ljones.dev
#
# All modifications and additions to the file contributed by third parties
@ -17,12 +17,12 @@
#
%global version_current 1.42.0
%global version_previous 1.41.1
%global version_bootstrap 1.41.1
%global version_current 1.43.0
%global version_previous 1.42.0
%global version_bootstrap 1.42.0
# some sub-packages are versioned independently
%global rustfmt_version 1.4.11
%global rustfmt_version 1.4.12
%global clippy_version 0.0.212
# Build the rust target triple.
@ -135,7 +135,8 @@ Source108: %{dl_url}/rust-%{version_bootstrap}-powerpc-unknown-linux-gnu.ta
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 rustdoc compilation: https://github.com/rust-lang/rust/issues/66224
# 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
@ -309,9 +310,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}
@ -335,10 +336,10 @@ Cargo downloads dependencies of Rust projects and compiles it.
%package -n cargo-doc
Summary: Documentation for Cargo
# 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
# Cargo no longer builds its own documentation
# https://github.com/rust-lang/cargo/pull/4904
Requires: rust-doc = %{version}
BuildArch: noarch
@ -386,6 +387,7 @@ 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
@ -455,12 +457,12 @@ if [ $(%{rust_root}/bin/rustc --version | sed -En 's/rustc ([0-9].[0-9][0-9].[0-
sed -i -e "s|#local-rebuild = false|local-rebuild = true|" config.toml;
fi
# BEGIN EXPORTS
# Create exports file
# Keep all the "export VARIABLE" together here, so they can be
# cut&pasted to the %%install section below. And please keep them
# in sync!
# reread in the %%install section below.
# If the environments between build and install and different,
# everything will be rebuilt during installation!
cat > .env.sh <<\EOF
export RUSTFLAGS="%{rustflags}"
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120500
export CC=gcc-7
@ -470,34 +472,19 @@ export CXX=g++-7
%if !%{with rust_bootstrap} && 0%{?sle_version} >= 150000
export LIBSSH2_SYS_USE_PKG_CONFIG=1
%endif
# eliminate complain from RPMlint
# eliminate complaint from RPMlint
export CPPFLAGS="%{optflags}"
export DESTDIR=%{buildroot}
# END EXPORTS
EOF
. ./.env.sh
./x.py build -v
./x.py doc -v
%install
# BEGIN EXPORTS
# Keep all the "export VARIABLE" together here, so they can be
# cut&pasted to the %%install section below. And please keep them
# in sync!
# If the environments between build and install and different,
# everything will be rebuilt during installation!
export RUSTFLAGS="%{rustflags}"
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} <= 120500
export CC=gcc-7
export CXX=g++-7
%endif
# Make cargo use system libs if not bootstrapping
%if !%{with rust_bootstrap} && 0%{?sle_version} >= 150000
export LIBSSH2_SYS_USE_PKG_CONFIG=1
%endif
# eliminate complain from RPMlint
export CPPFLAGS="%{optflags}"
export DESTDIR=%{buildroot}
# END EXPORTS
# Reread exports file
. ./.env.sh
./x.py install
./x.py install src

View File

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

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

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