!4 Update to 1.38.0-1

Merge pull request !4 from lyn/master
This commit is contained in:
openeuler-ci-bot 2020-07-16 10:14:11 +08:00 committed by Gitee
commit e04982d298
4 changed files with 393 additions and 133 deletions

View File

@ -0,0 +1,74 @@
From 2bf05f208272cd58c57f4d7d8d0e10fdb22e8719 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Fri, 27 Sep 2019 12:33:08 -0700
Subject: [PATCH] [WIP] minimize the rust-std component
---
src/bootstrap/dist.rs | 45 +++++++++++++++----------------------------
1 file changed, 16 insertions(+), 29 deletions(-)
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index 552965863d10..76fbd07f9fb5 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
@@ -667,41 +667,28 @@ impl Step for Std {
return distdir(builder).join(format!("{}-{}.tar.gz", name, target));
}
- // We want to package up as many target libraries as possible
- // for the `rust-std` package, so if this is a host target we
- // depend on librustc and otherwise we just depend on libtest.
- if builder.hosts.iter().any(|t| t == target) {
- builder.ensure(compile::Rustc { compiler, target });
- } else {
- if builder.no_std(target) == Some(true) {
- // the `test` doesn't compile for no-std targets
- builder.ensure(compile::Std { compiler, target });
- } else {
- builder.ensure(compile::Test { compiler, target });
- }
- }
+ builder.ensure(compile::Std { compiler, target });
+ builder.ensure(compile::Test { compiler, target });
let image = tmpdir(builder).join(format!("{}-{}-image", name, target));
let _ = fs::remove_dir_all(&image);
- let dst = image.join("lib/rustlib").join(target);
+ let dst = image.join("lib/rustlib").join(target).join("lib");
t!(fs::create_dir_all(&dst));
- let mut src = builder.sysroot_libdir(compiler, target).to_path_buf();
- src.pop(); // Remove the trailing /lib folder from the sysroot_libdir
- builder.cp_filtered(&src, &dst, &|path| {
- if let Some(name) = path.file_name().and_then(|s| s.to_str()) {
- if name == builder.config.rust_codegen_backends_dir.as_str() {
- return false
- }
- if name == "bin" {
- return false
- }
- if name.contains("LLVM") {
- return false
- }
+
+ let compiler_to_use = builder.compiler_for(compiler.stage, compiler.host, target);
+ let stamp = dbg!(compile::libstd_stamp(builder, compiler_to_use, target));
+ for (path, host) in builder.read_stamp_file(&stamp) {
+ if !host {
+ builder.copy(&path, &dst.join(path.file_name().unwrap()));
}
- true
- });
+ }
+ let stamp = dbg!(compile::libtest_stamp(builder, compiler_to_use, target));
+ for (path, host) in builder.read_stamp_file(&stamp) {
+ if !host {
+ builder.copy(&path, &dst.join(path.file_name().unwrap()));
+ }
+ }
let mut cmd = rust_installer(builder);
cmd.arg("generate")
--
2.21.0

View File

@ -0,0 +1,32 @@
commit ab998a2eeb2bcdc69ce70c814af97f0d1302a404 (from d17f62d857c70508efbf60be41135880bcd2e062)
Merge: d17f62d857c7 9452a8dfa3ba
Author: Mazdak Farrokhzad <twingoow@gmail.com>
Date: Thu Jan 24 00:20:00 2019 +0100
Rollup merge of #57840 - tromey:fix-issue-57762, r=nikic
Fix issue 57762
against a stock LLVM 7. LLVM 7 was released without a necessary fix
for a bug in the DWARF discriminant code.
This patch changes rustc to use the fallback mode on (non-Rust) LLVM 7.
Closes #57762
diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs
index 6deedd0b5ea3..9f63038c3623 100644
--- a/src/librustc_codegen_llvm/debuginfo/metadata.rs
+++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs
@@ -1164,7 +1164,10 @@ fn use_enum_fallback(cx: &CodegenCx) -> bool {
// On MSVC we have to use the fallback mode, because LLVM doesn't
// lower variant parts to PDB.
return cx.sess().target.target.options.is_like_msvc
- || llvm_util::get_major_version() < 7;
+ // LLVM version 7 did not release with an important bug fix;
+ // but the required patch is in the LLVM 8. Rust LLVM reports
+ // 8 as well.
+ || llvm_util::get_major_version() < 8;
}
// Describes the members of an enum value: An enum is described as a union of

392
rust.spec
View File

@ -1,36 +1,93 @@
%global rust_arches x86_64 aarch64 %{!?channel: %global channel stable}
%global bootstrap_rust 1.29.1 %global bootstrap_rust 1.37.0
%global bootstrap_cargo 1.29.0 %global bootstrap_cargo 1.37.0
%global bootstrap_channel %{bootstrap_rust} %global bootstrap_channel 1.37.0
%global bootstrap_date 2018-10-12 %global bootstrap_date 2019-08-15
%bcond_with llvm_static
%bcond_with bundled_llvm
%bcond_without bundled_libgit2
Name: rust Name: rust
Version: 1.30.0 Version: 1.38.0
Release: 1 Release: 1
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)
URL: https://www.rust-lang.org URL: https://www.rust-lang.org
ExclusiveArch: aarch64 x86_64 %if "%{channel}" == "stable"
Source0: https://static.rust-lang.org/dist/rustc-1.30.0-src.tar.xz %global rustc_package rustc-%{version}-src
%else
%global rustc_package rustc-%{channel}-src
%endif
Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz
Patch1: rust-pr57840-llvm7-debuginfo-variants.patch
Patch2: rustc-1.38.0-rebuild-bootstrap.patch
Patch3: 0001-WIP-minimize-the-rust-std-component.patch
%{lua: function rust_triple(arch) %{lua: function rust_triple(arch)
local abi = "gnu" local abi = "gnu"
if arch == "armv7hl" then
arch = "armv7"
abi = "gnueabihf"
elseif arch == "ppc64" then
arch = "powerpc64"
elseif arch == "ppc64le" then
arch = "powerpc64le"
end
return arch.."-unknown-linux-"..abi return arch.."-unknown-linux-"..abi
end} end}
%global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))} %global rust_triple %{lua: print(rust_triple(rpm.expand("%{_target_cpu}")))}
%if %defined bootstrap_arches
%{lua: do
local bootstrap_arches = {}
for arch in string.gmatch(rpm.expand("%{bootstrap_arches}"), "%S+") do
table.insert(bootstrap_arches, arch)
end
local base = rpm.expand("https://static.rust-lang.org/dist/%{bootstrap_date}"
.."/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)
end
end
end}
%endif
%ifarch %{bootstrap_arches}
%global bootstrap_root rust-%{bootstrap_channel}-%{rust_triple}
%global local_rust_root %{_builddir}/%{bootstrap_root}/usr
Provides: bundled(%{name}-bootstrap) = %{bootstrap_rust}
%else
BuildRequires: cargo >= %{bootstrap_cargo} BuildRequires: cargo >= %{bootstrap_cargo}
BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= 1.30.0) BuildRequires: (%{name} >= %{bootstrap_rust} with %{name} <= %{version})
BuildRequires: make gdb gcc gcc-c++ ncurses-devel curl %global local_rust_root %{_prefix}
BuildRequires: pkgconfig(libcurl) pkgconfig(liblzma) %endif
BuildRequires: pkgconfig(openssl) pkgconfig(zlib) BuildRequires: make gcc gcc-c++ ncurses-devel curl pkgconfig(libcurl) pkgconfig(liblzma)
BuildRequires: pkgconfig(libgit2) >= 0.27 pkgconfig(libssh2) >= 1.6.0 BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1.6.0
BuildRequires: python3 cmake >= 2.8.11 llvm-devel >= 5.0 %global python python3
BuildRequires: llvm-static libffi-devel procps-ng BuildRequires: %{python}
Provides: bundled(libbacktrace) = 8.1.0 bundled(miniz) = 1.16~beta+r1 %if %with bundled_llvm
Provides: rustc = 1.30.0-%{release} BuildRequires: cmake3 >= 3.4.3
Requires: %{name}-std-static = 1.30.0-%{release} /usr/bin/cc Provides: bundled(llvm) = 8.0.0
%else
BuildRequires: cmake >= 2.8.11
%if %defined llvm
%global llvm_root %{_libdir}/%{llvm}
%else
%global llvm llvm
%global llvm_root %{_prefix}
%endif
BuildRequires: %{llvm}-devel >= 6.0
%if %with llvm_static
BuildRequires: %{llvm}-static libffi-devel
%endif
%endif
BuildRequires: procps-ng gdb
Provides: bundled(libbacktrace) = 8.1.0
Provides: bundled(miniz) = 2.0.7
Provides: rustc = %{version}-%{release}
Provides: rustc%{?_isa} = %{version}-%{release}
Requires: %{name}-std-static%{?_isa} = %{version}-%{release}
Requires: /usr/bin/cc
%global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.* %global _privatelibs lib(.*-[[:xdigit:]]{16}*|rustc.*)[.]so.*
%global __provides_exclude ^(%{_privatelibs})$ %global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$ %global __requires_exclude ^(%{_privatelibs})$
@ -38,92 +95,97 @@ Requires: %{name}-std-static = 1.30.0-%{release} /usr/bin/cc
%global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$ %global __requires_exclude_from ^(%{_docdir}|%{rustlibdir}/src)/.*$
%global _find_debuginfo_opts --keep-section .rustc %global _find_debuginfo_opts --keep-section .rustc
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now %global rustflags -Clink-arg=-Wl,-z,relro,-z,now
%if %{without bundled_llvm}
%if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1}
%global llvm_has_filecheck 1
%endif
%endif
%description %description
Rust is a systems programming language focused on three goals:safety, Rust is a systems programming language that runs blazingly fast, prevents
speed,and concurrency.It maintains these goals without having segfaults, and guarantees thread safety.
a garbage This package includes the Rust compiler and documentation generator.
collector, making it a useful language for a number of use cases other
languages are not good at: embedding in other languages, programs with
specific space and time requirements,and writing low-level code, like
device drivers and operating systems. It improves on current languages
targeting this space by having a number of compile-time safety checks
that produce no runtime overhead,while eliminating all data races.
%package devel %package std-static
Summary: Libraries and header files for developing applications that use appstream-glib Summary: Standard library for Rust
Provides: rust-std-static = %{version}-%{release} %description std-static
Obsoletes: rust-std-static < %{version}-%{release} This package includes the standard libraries for building applications
%description devel written in Rust.
Libraries and header files for developing applications that use appstream-glib.
%package debugger-common %package debugger-common
Summary: Common debugger pretty printers for Rust Summary: Common debugger pretty printers for Rust
BuildArch: noarch BuildArch: noarch
%description debugger-common %description debugger-common
This package includes the common functionality for rust-gdb and rust-lldb. This package includes the common functionality for %{name}-gdb and %{name}-lldb.
%package gdb %package gdb
Summary: GDB pretty printers for Rust Summary: GDB pretty printers for Rust
BuildArch: noarch BuildArch: noarch
Requires: gdb rust-debugger-common = 1.30.0-%{release} Requires: gdb %{name}-debugger-common = %{version}-%{release}
%description gdb %description gdb
This package includes the rust-gdb script, which allows easier debugging of Rust This package includes the rust-gdb script, which allows easier debugging of Rust
programs. programs.
%package lldb %package lldb
Summary: LLDB pretty printers for Rust Summary: LLDB pretty printers for Rust
Requires: lldb python2-lldb rust-debugger-common = 1.30.0-%{release} BuildArch: noarch
Requires: lldb python2-lldb
Requires: %{name}-debugger-common = %{version}-%{release}
%description lldb %description lldb
This package includes the rust-lldb script, which allows easier debugging of Rust This package includes the rust-lldb script, which allows easier debugging of Rust
programs. programs.
%package help %package doc
Summary: Help documentation for Rust Summary: Documentation for Rust
Provides: rust-doc = %{version}-%{release} cargo-doc = %{version}-%{release} Provides: rust-help = %{version}-%{release}
Obsoletes: rust-doc < %{version}-%{release} cargo-doc < %{version}-%{release} Obsoletes: rust-help < %{version}-%{release}
%description help %description doc
Man pages and other related help documents for rust. This package includes HTML documentation for the Rust programming language and
its standard library.
%package -n cargo %package -n cargo
Summary: Rust's package manager and build tool Summary: Rust's package manager and build tool
Version: 1.30.0 Provides: bundled(libgit2) = 0.28.2
BuildRequires: git BuildRequires: git
Provides: bundled(libgit2)= 0.27
Requires: rust Requires: rust
Obsoletes: cargo-vendor <= 0.1.23
Provides: cargo-vendor = %{version}-%{release}
%description -n cargo %description -n cargo
Cargo is a tool that allows Rust projects to declare their various dependencies Cargo is a tool that allows Rust projects to declare their various dependencies
and ensure that you'll always get a repeatable build. and ensure that you'll always get a repeatable build.
%package -n cargo-doc
Summary: Documentation for Cargo
BuildArch: noarch
Requires: rust-doc = %{version}-%{release}
%description -n cargo-doc
This package includes HTML documentation for Cargo.
%package -n rustfmt-preview %package -n rustfmt
Summary: Tool to find and fix Rust formatting issues Summary: Tool to find and fix Rust formatting issues
Version: 0.99.4
Requires: cargo Requires: cargo
Obsoletes: rustfmt <= 0.9.0 Obsoletes: rustfmt-preview < 1.0.0
Provides: rustfmt = 0.99.4 Provides: rustfmt-preview = %{version}-%{release}
%description -n rustfmt-preview %description -n rustfmt
A tool for formatting Rust code according to style guidelines. A tool for formatting Rust code according to style guidelines.
%package -n rls-preview %package -n rls
Summary: Rust Language Server for IDE integration Summary: Rust Language Server for IDE integration
Version: 0.130.5 Provides: bundled(libgit2) = 0.28.2
Provides: rls = 0.130.5 Requires: rust-analysis %{name}%{?_isa} = %{version}-%{release}
Provides: bundled(libgit2) = 0.27 Obsoletes: rls-preview < 1.31.6
Requires: rust-analysis rust = 1.30.0-%{release} Provides: rls-preview = %{version}-%{release}
%description -n rls-preview %description -n rls
The Rust Language Server provides a server that runs in the background, The Rust Language Server provides a server that runs in the background,
providing IDEs, editors, and other tools with information about Rust programs. providing IDEs, editors, and other tools with information about Rust programs.
It supports functionality such as 'goto definition', symbol search, It supports functionality such as 'goto definition', symbol search,
reformatting, and code completion, and enables renaming and refactorings. reformatting, and code completion, and enables renaming and refactorings.
%package -n clippy-preview %package -n clippy
Summary: Lints to catch common mistakes and improve your Rust code Summary: Lints to catch common mistakes and improve your Rust code
Version: 0.0.212 Requires: cargo %{name}%{?_isa} = %{version}-%{release}
License: MPLv2.0 Obsoletes: clippy-preview <= 0.0.212
Provides: clippy = 0.0.212 Provides: clippy-preview = %{version}-%{release}
Requires: cargo rust = 1.30.0-%{release} %description -n clippy
%description -n clippy-preview
A collection of lints to catch common mistakes and improve your Rust code. A collection of lints to catch common mistakes and improve your Rust code.
%package src %package src
@ -135,139 +197,221 @@ useful as a reference for code completion tools in various editors.
%package analysis %package analysis
Summary: Compiler analysis data for the Rust standard library Summary: Compiler analysis data for the Rust standard library
Requires: devel = 1.30.0-%{release} Requires: rust-std-static%{?_isa} = %{version}-%{release}
%description analysis %description analysis
This package contains analysis data files produced with rustc's -Zsave-analysis This package contains analysis data files produced with rustc's -Zsave-analysis
feature for the Rust standard library. The RLS (Rust Language Server) uses this feature for the Rust standard library. The RLS (Rust Language Server) uses this
data to provide information about the Rust standard library. data to provide information about the Rust standard library.
%prep %prep
%autosetup -n rustc-1.30.0-src -p1 %ifarch %{bootstrap_arches}
%setup -q -n %{bootstrap_root} -T -b %{bootstrap_source}
./install.sh --components=cargo,rustc,rust-std-%{rust_triple} \
--prefix=%{local_rust_root} --disable-ldconfig
test -f '%{local_rust_root}/bin/cargo'
test -f '%{local_rust_root}/bin/rustc'
%endif
%setup -q -n %{rustc_package}
%patch1 -p1 -R
%patch2 -p1
%patch3 -p1
%if "%{python}" == "python3"
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
rm -rf src/llvm src/llvm-emscripten/ src/tools/clang src/tools/lld src/tools/lldb %endif
sed -e '/*\//q' src/libbacktrace/backtrace.h \ %if %without bundled_llvm
>src/libbacktrace/LICENSE-libbacktrace rm -rf src/llvm-project/
find src/vendor -name .cargo-checksum.json \ %endif
rm -rf src/llvm-emscripten/
rm -rf vendor/curl-sys/curl/
rm -rf vendor/jemalloc-sys/jemalloc/
rm -rf vendor/libz-sys/src/zlib/
rm -rf vendor/lzma-sys/xz-*/
rm -rf vendor/openssl-src/openssl/
rm -rf vendor/libssh2-sys/libssh2/
sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs
cp -a vendor/backtrace-sys/src/libbacktrace/LICENSE{,-libbacktrace}
%if %{without bundled_llvm} && %{with llvm_static}
sed -i.ffi -e '$a #[link(name = "ffi")] extern {}' \
src/librustc_llvm/lib.rs
%endif
find vendor -name .cargo-checksum.json \
-exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+' -exec sed -i.uncheck -e 's/"files":{[^}]*}/"files":{ }/' '{}' '+'
find -name '*.rs' -type f -perm /111 -exec chmod -v -x '{}' '+'
%build %build
export LIBSSH2_SYS_USE_PKG_CONFIG=1 export LIBSSH2_SYS_USE_PKG_CONFIG=1
export RUSTFLAGS="-Clink-arg=-Wl,-z,relro,-z,now" %{?cmake_path:export PATH=%{cmake_path}:$PATH}
%{?rustflags:export RUSTFLAGS="%{rustflags}"}
%global common_libdir %{_prefix}/lib %global common_libdir %{_prefix}/lib
%global rustlibdir %{common_libdir}/rustlib %global rustlibdir %{common_libdir}/rustlib
%define enable_debuginfo --enable-debuginfo --disable-debuginfo-only-std --enable-debuginfo-tools --disable-debuginfo-lines %ifarch %{arm} %{ix86} s390x
%define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2
%else
%define enable_debuginfo --debuginfo-level=2
%endif
%ifnarch %{power64}
%define codegen_units_std --set rust.codegen-units-std=1
%endif
%configure --disable-option-checking \ %configure --disable-option-checking \
--libdir=%{common_libdir} --release-channel=stable \ --libdir=%{common_libdir} \
--build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \ --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \
--local-rust-root=%{_prefix} --enable-verbose-tests \ --python=%{python} \
--llvm-root=%{_prefix} --disable-codegen-tests \ --local-rust-root=%{local_rust_root} \
--enable-llvm-link-shared --enable-vendor \ %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \
--disable-jemalloc -disable-rpath \ %{!?llvm_has_filecheck: --disable-codegen-tests} \
%{enable_debuginfo} --enable-extended %{!?with_llvm_static: --enable-llvm-link-shared } } \
python3 ./x.py build --disable-rpath \
python3 ./x.py doc %{enable_debuginfo} \
--enable-extended \
--enable-vendor \
--enable-verbose-tests \
%{?codegen_units_std} \
--release-channel=%{channel}
%{python} ./x.py build
%{python} ./x.py doc
%install %install
export RUSTFLAGS="-Clink-arg=-Wl,-z,relro,-z,now" %{?cmake_path:export PATH=%{cmake_path}:$PATH}
DESTDIR=%{buildroot} python3 ./x.py install %{?rustflags:export RUSTFLAGS="%{rustflags}"}
DESTDIR=%{buildroot} %{python} ./x.py install
%if "%{_libdir}" != "%{common_libdir}"
mkdir -p %{buildroot}%{_libdir} mkdir -p %{buildroot}%{_libdir}
find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \
-exec mv -v -t %{buildroot}%{_libdir} '{}' '+' -exec mv -v -t %{buildroot}%{_libdir} '{}' '+'
%endif
find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \
-exec chmod -v +x '{}' '+' -exec chmod -v +x '{}' '+'
(cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" && (cd "%{buildroot}%{rustlibdir}/%{rust_triple}/lib" &&
find ../../../../%{_lib} -maxdepth 1 -name '*.so' | find ../../../../%{_lib} -maxdepth 1 -name '*.so' |
while read lib; do while read lib; do
if [ -f "${lib##*/}" ]; then
# make sure they're actually identical!
cmp "$lib" "${lib##*/}" cmp "$lib" "${lib##*/}"
ln -v -f -s -t . "$lib" ln -v -f -s -t . "$lib"
fi
done) done)
find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+'
find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir} -type f -name '*.orig' -exec rm -v '{}' '+'
find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+' find %{buildroot}%{rustlibdir}/src -type f -name '*.py' -exec rm -v '{}' '+'
rm -f %{buildroot}%{_docdir}/rust/{README.md,COPYRIGHT,LICENSE,LICENSE-APACHE} rm -f %{buildroot}%{_docdir}/%{name}/README.md
rm -f %{buildroot}%{_docdir}/rust/{LICENSE-MIT,LICENSE-THIRD-PARTY,*.old} rm -f %{buildroot}%{_docdir}/%{name}/COPYRIGHT
find %{buildroot}%{_docdir}/rust/html -empty -delete rm -f %{buildroot}%{_docdir}/%{name}/LICENSE
find %{buildroot}%{_docdir}/rust/html -type f -exec chmod -x '{}' '+' rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-APACHE
install -d %{buildroot}%{_datadir}/cargo/registry rm -f %{buildroot}%{_docdir}/%{name}/LICENSE-MIT
install -d %{buildroot}%{_docdir}/cargo 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 '{}' '+'
mkdir -p %{buildroot}%{_datadir}/cargo/registry
mkdir -p %{buildroot}%{_docdir}/cargo
ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html
%check %check
export RUSTFLAGS="-Clink-arg=-Wl,-z,relro,-z,now" %{?cmake_path:export PATH=%{cmake_path}:$PATH}
python3 ./x.py test --no-fail-fast || : %{?rustflags:export RUSTFLAGS="%{rustflags}"}
python3 ./x.py test --no-fail-fast cargo || : %{python} ./x.py test --no-fail-fast || :
python3 ./x.py test --no-fail-fast clippy || : %{python} ./x.py test --no-fail-fast cargo || :
python3 ./x.py test --no-fail-fast rls || : %{python} ./x.py test --no-fail-fast clippy || :
python3 ./x.py test --no-fail-fast rustfmt || : %{python} ./x.py test --no-fail-fast rls || :
%post -p /sbin/ldconfig %{python} ./x.py test --no-fail-fast rustfmt || :
%postun -p /sbin/ldconfig %ldconfig_scriptlets
%files %files
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT %license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%license src/libbacktrace/LICENSE-libbacktrace %license vendor/backtrace-sys/src/libbacktrace/LICENSE-libbacktrace
%{_bindir}/{rustc,rustdoc} %doc README.md
%{_bindir}/rustc
%{_bindir}/rustdoc
%{_libdir}/*.so %{_libdir}/*.so
%{_mandir}/man1/{rustc.1*,rustdoc.1*} %{_mandir}/man1/rustc.1*
%{_mandir}/man1/rustdoc.1*
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
%dir %{rustlibdir}/%{rust_triple}/lib %dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.so %{rustlibdir}/%{rust_triple}/lib/*.so
%{rustlibdir}/%{rust_triple}/codegen-backends/ %{rustlibdir}/%{rust_triple}/codegen-backends/
%exclude %{_bindir}/*miri
%files devel %files std-static
%dir %{rustlibdir}
%dir %{rustlibdir}/%{rust_triple}
%dir %{rustlibdir}/%{rust_triple}/lib %dir %{rustlibdir}/%{rust_triple}/lib
%{rustlibdir}/%{rust_triple}/lib/*.rlib %{rustlibdir}/%{rust_triple}/lib/*.rlib
%files debugger-common %files debugger-common
%dir %{rustlibdir}
%dir %{rustlibdir}/etc %dir %{rustlibdir}/etc
%{rustlibdir}/etc/debugger_*.py* %{rustlibdir}/etc/debugger_*.py*
%files gdb %files gdb
%{_bindir}/rust-gdb %{_bindir}/rust-gdb
%{rustlibdir}/etc/gdb_*.py* %{rustlibdir}/etc/gdb_*.py*
%exclude %{_bindir}/rust-gdbgui
%files lldb %files lldb
%{_bindir}/rust-lldb %{_bindir}/rust-lldb
%{rustlibdir}/etc/lldb_*.py* %{rustlibdir}/etc/lldb_*.py*
%files help %files doc
%doc README.md %docdir %{_docdir}/%{name}
%{_docdir}/cargo/html %dir %{_docdir}/%{name}
%{_mandir}/man1/cargo*.1* %dir %{_docdir}/%{name}/html
%doc %{_docdir}/rust/html/*.txt %{_docdir}/%{name}/html/*/
%docdir %{_docdir}/{rust,cargo} %{_docdir}/%{name}/html/*.html
%dir %{_docdir}/{rust/html,cargo} %{_docdir}/%{name}/html/*.css
%{_docdir}/rust/html/{*/,*.html,*.css,*.js,*.svg,*.woff} %{_docdir}/%{name}/html/*.ico
%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md %{_docdir}/%{name}/html/*.js
%doc src/tools/rls/{README.md,COPYRIGHT,debugging.md} %{_docdir}/%{name}/html/*.png
%doc src/tools/clippy/{README.md,CHANGELOG.md} %{_docdir}/%{name}/html/*.svg
%{_docdir}/%{name}/html/*.woff
%license %{_docdir}/%{name}/html/*.txt
%license %{_docdir}/%{name}/html/*.md
%files -n cargo %files -n cargo
%doc src/tools/cargo/README.md 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/LICENSE-APACHE src/tools/cargo/LICENSE-MIT %doc src/tools/cargo/README.md
%{_bindir}/cargo %{_bindir}/cargo
%dir %{_datadir}/cargo/registry %{_mandir}/man1/cargo*.1*
%{_sysconfdir}/bash_completion.d/cargo %{_sysconfdir}/bash_completion.d/cargo
%{_datadir}/zsh/site-functions/_cargo %{_datadir}/zsh/site-functions/_cargo
%dir %{_datadir}/cargo
%dir %{_datadir}/cargo/registry
%files -n rustfmt-preview %files -n cargo-doc
%{_bindir}/{rustfmt,cargo-fmt} %docdir %{_docdir}/cargo
%doc src/tools/rustfmt/LICENSE-{APACHE,MIT} %dir %{_docdir}/cargo
%{_docdir}/cargo/html
%files -n rls-preview %files -n rustfmt
%{_bindir}/rustfmt
%{_bindir}/cargo-fmt
%doc src/tools/rustfmt/{README,CHANGELOG,Configurations}.md
%license src/tools/rustfmt/LICENSE-{APACHE,MIT}
%files -n rls
%{_bindir}/rls %{_bindir}/rls
%doc src/tools/rls/LICENSE-{APACHE,MIT} %doc src/tools/rls/{README.md,COPYRIGHT,debugging.md}
%license src/tools/rls/LICENSE-{APACHE,MIT}
%files -n clippy-preview %files -n clippy
%{_bindir}/{cargo-clippy,clippy-driver} %{_bindir}/cargo-clippy
%doc src/tools/clippy/LICENSE %{_bindir}/clippy-driver
%doc src/tools/clippy/{README.md,CHANGELOG.md}
%license src/tools/clippy/LICENSE-{APACHE,MIT}
%files src %files src
%dir %{rustlibdir}
%{rustlibdir}/src %{rustlibdir}/src
%files analysis %files analysis
%{rustlibdir}/%{rust_triple}/analysis/ %{rustlibdir}/%{rust_triple}/analysis/
%changelog %changelog
* Wed Jul 15 2020 yanan li <liyanan032@huawei.com> - 1.38.0-1
- Update to 1.38.0-1
* Fri Jun 5 2020 yaokai <yaoaki13@huawei.com> - 1.30.0-1 * Fri Jun 5 2020 yaokai <yaoaki13@huawei.com> - 1.30.0-1
- Update to 1.30.0-1 - Update to 1.30.0-1
* Thu Dec 5 2019 wutao <wutao61@huawei.com> - 1.29.1-3 * Thu Dec 5 2019 wutao <wutao61@huawei.com> - 1.29.1-3
- Package init - Package init

View File

@ -0,0 +1,10 @@
--- rustc-1.38.0-src/src/bootstrap/builder.rs 2019-09-23 14:15:52.000000000 -0700
+++ rustc-1.38.0-src/src/bootstrap/builder.rs 2019-09-26 10:45:49.663995011 -0700
@@ -140,6 +140,7 @@
impl StepDescription {
fn from<S: Step>() -> StepDescription {
+ #[allow(unused_unsafe)] // for rebuild bootstrapping
StepDescription {
default: S::DEFAULT,
only_hosts: S::ONLY_HOSTS,