From 23326e00368ce6a9cfe614dcfae5d9be72dd3811 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 7 Nov 2019 09:29:18 -0800 Subject: [PATCH] Update to 1.39.0. --- .gitignore | 8 + ...-WIP-minimize-the-rust-std-component.patch | 74 --- rust-pr65474-split-rustc-dev.patch | 479 ++++++++++++++++++ rust.spec | 23 +- rustc-1.38.0-rebuild-bootstrap.patch | 10 - sources | 2 +- sources-bootstrap | 16 +- 7 files changed, 507 insertions(+), 105 deletions(-) delete mode 100644 0001-WIP-minimize-the-rust-std-component.patch create mode 100644 rust-pr65474-split-rustc-dev.patch delete mode 100644 rustc-1.38.0-rebuild-bootstrap.patch diff --git a/.gitignore b/.gitignore index 2d12042..65f499a 100644 --- a/.gitignore +++ b/.gitignore @@ -228,3 +228,11 @@ /rust-1.37.0-powerpc64-unknown-linux-gnu.tar.xz /rust-1.37.0-s390x-unknown-linux-gnu.tar.xz /rust-1.37.0-x86_64-unknown-linux-gnu.tar.xz +/rustc-1.39.0-src.tar.xz +/rust-1.38.0-aarch64-unknown-linux-gnu.tar.xz +/rust-1.38.0-armv7-unknown-linux-gnueabihf.tar.xz +/rust-1.38.0-i686-unknown-linux-gnu.tar.xz +/rust-1.38.0-powerpc64le-unknown-linux-gnu.tar.xz +/rust-1.38.0-powerpc64-unknown-linux-gnu.tar.xz +/rust-1.38.0-s390x-unknown-linux-gnu.tar.xz +/rust-1.38.0-x86_64-unknown-linux-gnu.tar.xz diff --git a/0001-WIP-minimize-the-rust-std-component.patch b/0001-WIP-minimize-the-rust-std-component.patch deleted file mode 100644 index 04be717..0000000 --- a/0001-WIP-minimize-the-rust-std-component.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 2bf05f208272cd58c57f4d7d8d0e10fdb22e8719 Mon Sep 17 00:00:00 2001 -From: Josh Stone -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 - diff --git a/rust-pr65474-split-rustc-dev.patch b/rust-pr65474-split-rustc-dev.patch new file mode 100644 index 0000000..7e1c57a --- /dev/null +++ b/rust-pr65474-split-rustc-dev.patch @@ -0,0 +1,479 @@ +From 8e0007f829661e57d008d2e908c95f6e84b04b25 Mon Sep 17 00:00:00 2001 +From: bors +Date: Thu, 24 Oct 2019 07:27:00 +0000 +Subject: [PATCH] Auto merge of #65474 - Mark-Simulacrum:rustc-dev-split, + r=pietroalbini + +Split the rustc target libraries into separate rustc-dev component + +This is re-applies a squashed version of #64823 as well as including #65337 to fix bugs noted after merging the first PR. + +The second PR is confirmed as fixing windows-gnu, and presumably also fixes other platforms, such as musl (i.e. #65335 should be fixed); `RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup toolchain install nightly-2019-10-16` can be installed to confirm that this is indeed the case. + +diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs +index b8071b98f707..2748903f2d47 100644 +--- a/src/bootstrap/builder.rs ++++ b/src/bootstrap/builder.rs +@@ -443,6 +443,7 @@ impl<'a> Builder<'a> { + dist::Rustc, + dist::DebuggerScripts, + dist::Std, ++ dist::RustcDev, + dist::Analysis, + dist::Src, + dist::PlainSourceTarball, +diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs +index cadb9a7e441f..df1c72575846 100644 +--- a/src/bootstrap/check.rs ++++ b/src/bootstrap/check.rs +@@ -55,6 +55,7 @@ impl Step for Std { + cargo, + args(builder.kind), + &libstd_stamp(builder, compiler, target), ++ vec![], + true); + + let libdir = builder.sysroot_libdir(compiler, target); +@@ -103,6 +104,7 @@ impl Step for Rustc { + cargo, + args(builder.kind), + &librustc_stamp(builder, compiler, target), ++ vec![], + true); + + let libdir = builder.sysroot_libdir(compiler, target); +@@ -155,6 +157,7 @@ impl Step for CodegenBackend { + cargo, + args(builder.kind), + &codegen_backend_stamp(builder, compiler, target, backend), ++ vec![], + true); + } + } +@@ -199,6 +202,7 @@ impl Step for Rustdoc { + cargo, + args(builder.kind), + &rustdoc_stamp(builder, compiler, target), ++ vec![], + true); + + let libdir = builder.sysroot_libdir(compiler, target); +diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs +index 5074b035789a..da8d43ed49b7 100644 +--- a/src/bootstrap/compile.rs ++++ b/src/bootstrap/compile.rs +@@ -69,7 +69,7 @@ impl Step for Std { + return; + } + +- builder.ensure(StartupObjects { compiler, target }); ++ let mut target_deps = builder.ensure(StartupObjects { compiler, target }); + + let compiler_to_use = builder.compiler_for(compiler.stage, compiler.host, target); + if compiler_to_use != compiler { +@@ -91,7 +91,7 @@ impl Step for Std { + return; + } + +- copy_third_party_objects(builder, &compiler, target); ++ target_deps.extend(copy_third_party_objects(builder, &compiler, target).into_iter()); + + let mut cargo = builder.cargo(compiler, Mode::Std, target, "build"); + std_cargo(builder, &compiler, target, &mut cargo); +@@ -102,6 +102,7 @@ impl Step for Std { + cargo, + vec![], + &libstd_stamp(builder, compiler, target), ++ target_deps, + false); + + builder.ensure(StdLink { +@@ -113,9 +114,22 @@ impl Step for Std { + } + + /// Copies third pary objects needed by various targets. +-fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: Interned) { ++fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: Interned) ++ -> Vec ++{ + let libdir = builder.sysroot_libdir(*compiler, target); + ++ let mut target_deps = vec![]; ++ ++ let mut copy_and_stamp = |sourcedir: &Path, name: &str| { ++ let target = libdir.join(name); ++ builder.copy( ++ &sourcedir.join(name), ++ &target, ++ ); ++ target_deps.push(target); ++ }; ++ + // Copies the crt(1,i,n).o startup objects + // + // Since musl supports fully static linking, we can cross link for it even +@@ -123,19 +137,13 @@ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: + // files. As those shipped with glibc won't work, copy the ones provided by + // musl so we have them on linux-gnu hosts. + if target.contains("musl") { ++ let srcdir = builder.musl_root(target).unwrap().join("lib"); + for &obj in &["crt1.o", "crti.o", "crtn.o"] { +- builder.copy( +- &builder.musl_root(target).unwrap().join("lib").join(obj), +- &libdir.join(obj), +- ); ++ copy_and_stamp(&srcdir, obj); + } + } else if target.ends_with("-wasi") { +- for &obj in &["crt1.o"] { +- builder.copy( +- &builder.wasi_root(target).unwrap().join("lib/wasm32-wasi").join(obj), +- &libdir.join(obj), +- ); +- } ++ let srcdir = builder.wasi_root(target).unwrap().join("lib/wasm32-wasi"); ++ copy_and_stamp(&srcdir, "crt1.o"); + } + + // Copies libunwind.a compiled to be linked wit x86_64-fortanix-unknown-sgx. +@@ -145,11 +153,11 @@ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: + // which is provided by std for this target. + if target == "x86_64-fortanix-unknown-sgx" { + let src_path_env = "X86_FORTANIX_SGX_LIBS"; +- let obj = "libunwind.a"; + let src = env::var(src_path_env).expect(&format!("{} not found in env", src_path_env)); +- let src = Path::new(&src).join(obj); +- builder.copy(&src, &libdir.join(obj)); ++ copy_and_stamp(Path::new(&src), "libunwind.a"); + } ++ ++ target_deps + } + + /// Configure cargo to compile the standard library, adding appropriate env vars +@@ -306,7 +314,7 @@ pub struct StartupObjects { + } + + impl Step for StartupObjects { +- type Output = (); ++ type Output = Vec; + + fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { + run.path("src/rtstartup") +@@ -325,13 +333,15 @@ impl Step for StartupObjects { + /// They don't require any library support as they're just plain old object + /// files, so we just use the nightly snapshot compiler to always build them (as + /// no other compilers are guaranteed to be available). +- fn run(self, builder: &Builder<'_>) { ++ fn run(self, builder: &Builder<'_>) -> Vec { + let for_compiler = self.compiler; + let target = self.target; + if !target.contains("windows-gnu") { +- return ++ return vec![] + } + ++ let mut target_deps = vec![]; ++ + let src_dir = &builder.src.join("src/rtstartup"); + let dst_dir = &builder.native_dir(target).join("rtstartup"); + let sysroot_dir = &builder.sysroot_libdir(for_compiler, target); +@@ -350,7 +360,9 @@ impl Step for StartupObjects { + .arg(src_file)); + } + +- builder.copy(dst_file, &sysroot_dir.join(file.to_string() + ".o")); ++ let target = sysroot_dir.join(file.to_string() + ".o"); ++ builder.copy(dst_file, &target); ++ target_deps.push(target); + } + + for obj in ["crt2.o", "dllcrt2.o"].iter() { +@@ -358,8 +370,12 @@ impl Step for StartupObjects { + builder.cc(target), + target, + obj); +- builder.copy(&src, &sysroot_dir.join(obj)); ++ let target = sysroot_dir.join(obj); ++ builder.copy(&src, &target); ++ target_deps.push(target); + } ++ ++ target_deps + } + } + +@@ -437,6 +453,7 @@ impl Step for Rustc { + cargo, + vec![], + &librustc_stamp(builder, compiler, target), ++ vec![], + false); + + builder.ensure(RustcLink { +@@ -585,7 +602,7 @@ impl Step for CodegenBackend { + + let tmp_stamp = out_dir.join(".tmp.stamp"); + +- let files = run_cargo(builder, cargo, vec![], &tmp_stamp, false); ++ let files = run_cargo(builder, cargo, vec![], &tmp_stamp, vec![], false); + if builder.config.dry_run { + return; + } +@@ -941,6 +958,7 @@ pub fn run_cargo(builder: &Builder<'_>, + cargo: Cargo, + tail_args: Vec, + stamp: &Path, ++ additional_target_deps: Vec, + is_check: bool) + -> Vec + { +@@ -1057,6 +1075,7 @@ pub fn run_cargo(builder: &Builder<'_>, + deps.push((path_to_add.into(), false)); + } + ++ deps.extend(additional_target_deps.into_iter().map(|d| (d, false))); + deps.sort(); + let mut new_contents = Vec::new(); + for (dep, proc_macro) in deps.iter() { +diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs +index 514ad1144491..93143570b0fe 100644 +--- a/src/bootstrap/dist.rs ++++ b/src/bootstrap/dist.rs +@@ -637,6 +637,28 @@ impl Step for DebuggerScripts { + } + } + ++fn skip_host_target_lib(builder: &Builder<'_>, compiler: Compiler) -> bool { ++ // The only true set of target libraries came from the build triple, so ++ // let's reduce redundant work by only producing archives from that host. ++ if compiler.host != builder.config.build { ++ builder.info("\tskipping, not a build host"); ++ true ++ } else { ++ false ++ } ++} ++ ++/// Copy stamped files into an image's `target/lib` directory. ++fn copy_target_libs(builder: &Builder<'_>, target: &str, image: &Path, stamp: &Path) { ++ let dst = image.join("lib/rustlib").join(target).join("lib"); ++ t!(fs::create_dir_all(&dst)); ++ for (path, host) in builder.read_stamp_file(stamp) { ++ if !host || builder.config.build == target { ++ builder.copy(&path, &dst.join(path.file_name().unwrap())); ++ } ++ } ++} ++ + #[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] + pub struct Std { + pub compiler: Compiler, +@@ -667,44 +689,19 @@ impl Step for Std { + let target = self.target; + + let name = pkgname(builder, "rust-std"); +- +- // The only true set of target libraries came from the build triple, so +- // let's reduce redundant work by only producing archives from that host. +- if compiler.host != builder.config.build { +- builder.info("\tskipping, not a build host"); +- return distdir(builder).join(format!("{}-{}.tar.gz", name, target)); ++ let archive = distdir(builder).join(format!("{}-{}.tar.gz", name, target)); ++ if skip_host_target_lib(builder, compiler) { ++ return archive; + } + +- // 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 { +- builder.ensure(compile::Std { compiler, target }); +- } ++ builder.ensure(compile::Std { 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); +- 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 +- } +- } +- true +- }); ++ let compiler_to_use = builder.compiler_for(compiler.stage, compiler.host, target); ++ let stamp = compile::libstd_stamp(builder, compiler_to_use, target); ++ copy_target_libs(builder, &target, &image, &stamp); + + let mut cmd = rust_installer(builder); + cmd.arg("generate") +@@ -723,7 +720,73 @@ impl Step for Std { + let _time = timeit(builder); + builder.run(&mut cmd); + builder.remove_dir(&image); +- distdir(builder).join(format!("{}-{}.tar.gz", name, target)) ++ archive ++ } ++} ++ ++#[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] ++pub struct RustcDev { ++ pub compiler: Compiler, ++ pub target: Interned, ++} ++ ++impl Step for RustcDev { ++ type Output = PathBuf; ++ const DEFAULT: bool = true; ++ const ONLY_HOSTS: bool = true; ++ ++ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { ++ run.path("rustc-dev") ++ } ++ ++ fn make_run(run: RunConfig<'_>) { ++ run.builder.ensure(RustcDev { ++ compiler: run.builder.compiler_for( ++ run.builder.top_stage, ++ run.builder.config.build, ++ run.target, ++ ), ++ target: run.target, ++ }); ++ } ++ ++ fn run(self, builder: &Builder<'_>) -> PathBuf { ++ let compiler = self.compiler; ++ let target = self.target; ++ ++ let name = pkgname(builder, "rustc-dev"); ++ let archive = distdir(builder).join(format!("{}-{}.tar.gz", name, target)); ++ if skip_host_target_lib(builder, compiler) { ++ return archive; ++ } ++ ++ builder.ensure(compile::Rustc { compiler, target }); ++ ++ let image = tmpdir(builder).join(format!("{}-{}-image", name, target)); ++ let _ = fs::remove_dir_all(&image); ++ ++ let compiler_to_use = builder.compiler_for(compiler.stage, compiler.host, target); ++ let stamp = compile::librustc_stamp(builder, compiler_to_use, target); ++ copy_target_libs(builder, &target, &image, &stamp); ++ ++ let mut cmd = rust_installer(builder); ++ cmd.arg("generate") ++ .arg("--product-name=Rust") ++ .arg("--rel-manifest-dir=rustlib") ++ .arg("--success-message=Rust-is-ready-to-develop.") ++ .arg("--image-dir").arg(&image) ++ .arg("--work-dir").arg(&tmpdir(builder)) ++ .arg("--output-dir").arg(&distdir(builder)) ++ .arg(format!("--package-name={}-{}", name, target)) ++ .arg(format!("--component-name=rustc-dev-{}", target)) ++ .arg("--legacy-manifest-dirs=rustlib,cargo"); ++ ++ builder.info(&format!("Dist rustc-dev stage{} ({} -> {})", ++ compiler.stage, &compiler.host, target)); ++ let _time = timeit(builder); ++ builder.run(&mut cmd); ++ builder.remove_dir(&image); ++ archive + } + } + +diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs +index a182405f3b2d..d1cf1cbca784 100644 +--- a/src/bootstrap/lib.rs ++++ b/src/bootstrap/lib.rs +@@ -1137,6 +1137,7 @@ impl Build { + pub fn copy(&self, src: &Path, dst: &Path) { + if self.config.dry_run { return; } + self.verbose_than(1, &format!("Copy {:?} to {:?}", src, dst)); ++ if src == dst { return; } + let _ = fs::remove_file(&dst); + let metadata = t!(src.symlink_metadata()); + if metadata.file_type().is_symlink() { +diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs +index f41e7dd17ede..c0d2deab2f8b 100644 +--- a/src/tools/build-manifest/src/main.rs ++++ b/src/tools/build-manifest/src/main.rs +@@ -399,6 +399,7 @@ impl Builder { + fn add_packages_to(&mut self, manifest: &mut Manifest) { + let mut package = |name, targets| self.package(name, &mut manifest.pkg, targets); + package("rustc", HOSTS); ++ package("rustc-dev", HOSTS); + package("cargo", HOSTS); + package("rust-mingw", MINGW); + package("rust-std", TARGETS); +@@ -426,6 +427,13 @@ impl Builder { + "rls-preview", "rust-src", "llvm-tools-preview", + "lldb-preview", "rust-analysis", "miri-preview" + ]); ++ ++ // The compiler libraries are not stable for end users, but `rustc-dev` was only recently ++ // split out of `rust-std`. We'll include it by default as a transition for nightly users. ++ if self.rust_release == "nightly" { ++ self.extend_profile("default", &mut manifest.profiles, &["rustc-dev"]); ++ self.extend_profile("complete", &mut manifest.profiles, &["rustc-dev"]); ++ } + } + + fn add_renames_to(&self, manifest: &mut Manifest) { +@@ -481,6 +489,15 @@ impl Builder { + components.push(host_component("rust-mingw")); + } + ++ // The compiler libraries are not stable for end users, but `rustc-dev` was only recently ++ // split out of `rust-std`. We'll include it by default as a transition for nightly users, ++ // but ship it as an optional component on the beta and stable channels. ++ if self.rust_release == "nightly" { ++ components.push(host_component("rustc-dev")); ++ } else { ++ extensions.push(host_component("rustc-dev")); ++ } ++ + // Tools are always present in the manifest, + // but might be marked as unavailable if they weren't built. + extensions.extend(vec![ +@@ -498,6 +515,11 @@ impl Builder { + .filter(|&&target| target != host) + .map(|target| Component::from_str("rust-std", target)) + ); ++ extensions.extend( ++ HOSTS.iter() ++ .filter(|&&target| target != host) ++ .map(|target| Component::from_str("rustc-dev", target)) ++ ); + extensions.push(Component::from_str("rust-src", "*")); + + // If the components/extensions don't actually exist for this +@@ -534,6 +556,14 @@ impl Builder { + dst.insert(profile_name.to_owned(), pkgs.iter().map(|s| (*s).to_owned()).collect()); + } + ++ fn extend_profile(&mut self, ++ profile_name: &str, ++ dst: &mut BTreeMap>, ++ pkgs: &[&str]) { ++ dst.get_mut(profile_name).expect("existing profile") ++ .extend(pkgs.iter().map(|s| (*s).to_owned())); ++ } ++ + fn package(&mut self, + pkgname: &str, + dst: &mut BTreeMap, diff --git a/rust.spec b/rust.spec index 40faed3..6de3a28 100644 --- a/rust.spec +++ b/rust.spec @@ -9,10 +9,10 @@ # e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 # or nightly wants some beta-YYYY-MM-DD # Note that cargo matches the program version here, not its crate version. -%global bootstrap_rust 1.37.0 -%global bootstrap_cargo 1.37.0 -%global bootstrap_channel 1.37.0 -%global bootstrap_date 2019-08-15 +%global bootstrap_rust 1.38.0 +%global bootstrap_cargo 1.38.0 +%global bootstrap_channel 1.38.0 +%global bootstrap_date 2019-09-26 # Only the specified arches will use bootstrap binaries. #global bootstrap_arches %%{rust_arches} @@ -48,8 +48,8 @@ %endif Name: rust -Version: 1.38.0 -Release: 2%{?dist} +Version: 1.39.0 +Release: 1%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) # ^ written as: (rust itself) and (bundled libraries) @@ -67,12 +67,9 @@ Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz # We do have the necessary fix in our LLVM 7. Patch1: rust-pr57840-llvm7-debuginfo-variants.patch -# Mask a warning-as-error when rebuilding 1.38 with 1.38 -Patch2: rustc-1.38.0-rebuild-bootstrap.patch - # Reduce the size of rust-std -# https://github.com/rust-lang/rust/pull/64823 -Patch3: 0001-WIP-minimize-the-rust-std-component.patch +# https://github.com/rust-lang/rust/pull/65474 +Patch2: rust-pr65474-split-rustc-dev.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -405,7 +402,6 @@ test -f '%{local_rust_root}/bin/rustc' %patch1 -p1 -R %patch2 -p1 -%patch3 -p1 %if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure @@ -715,6 +711,9 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %changelog +* Thu Nov 07 2019 Josh Stone - 1.39.0-1 +- Update to 1.39.0. + * Fri Sep 27 2019 Josh Stone - 1.38.0-2 - Filter the libraries included in rust-std (rhbz1756487) diff --git a/rustc-1.38.0-rebuild-bootstrap.patch b/rustc-1.38.0-rebuild-bootstrap.patch deleted file mode 100644 index 07f59a0..0000000 --- a/rustc-1.38.0-rebuild-bootstrap.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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() -> StepDescription { -+ #[allow(unused_unsafe)] // for rebuild bootstrapping - StepDescription { - default: S::DEFAULT, - only_hosts: S::ONLY_HOSTS, diff --git a/sources b/sources index c280199..3be13be 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rustc-1.38.0-src.tar.xz) = b756d29a7a222bc7b5c7f42ff397346ab840f78e559f93e6e36b65e76eea525cf429899fe4de9fb8966623a2225b552feef9fa831bee50f9e25c976fa2af8c0a +SHA512 (rustc-1.39.0-src.tar.xz) = 8610b2ec77722087c572bd84ac562a5b7c5f1a644aea58c5d5daa07a9aed242703b7816e73e2eaa049f773d5907859e259744a0de700622df005584fd798dab0 diff --git a/sources-bootstrap b/sources-bootstrap index 00b3ee0..820432c 100644 --- a/sources-bootstrap +++ b/sources-bootstrap @@ -1,8 +1,8 @@ -SHA512 (rustc-1.38.0-src.tar.xz) = b756d29a7a222bc7b5c7f42ff397346ab840f78e559f93e6e36b65e76eea525cf429899fe4de9fb8966623a2225b552feef9fa831bee50f9e25c976fa2af8c0a -SHA512 (rust-1.37.0-aarch64-unknown-linux-gnu.tar.xz) = c70054f589aa2aecfbd6a89f567306e0cf5d3eb56e5a544ced0a5d212f14033dab10559d22dd6b07945e45a25d8de14fc7897c9d24c0d8149548a06b404ca9d2 -SHA512 (rust-1.37.0-armv7-unknown-linux-gnueabihf.tar.xz) = 6d9e055f36a2e912f30bebb25afdd3188019a438f208d3db67b38078bd5c37633c38fd48da15ba80640399babf89221e727a2bf43990aee269fcc5c91cd412b4 -SHA512 (rust-1.37.0-i686-unknown-linux-gnu.tar.xz) = b59377350f82efd10c7afe0f7a28ecbd5355719d841d40c98bec0f01961233f7a19bed2581a111a76cde8dd8dc68a019fa7d3da66cb7ebcb002ba52a14a7e573 -SHA512 (rust-1.37.0-powerpc64le-unknown-linux-gnu.tar.xz) = 366c8920448000bfb4baa3a47588a1c7bc81e18afb8d40f0efc824e429e9e6900efbdb4c9003fb45b9d8595328bd612bd63f390a7d3dedbb30b7dc57fc12abf3 -SHA512 (rust-1.37.0-powerpc64-unknown-linux-gnu.tar.xz) = e8e5cf1c64bd3eec389cef022e1c7bae4618fb6966505d2e762d10e7f443fece43b8b95c989c020bdf739abaf9c3f036230df46f6477a2ccd517a7bdef2ba0d7 -SHA512 (rust-1.37.0-s390x-unknown-linux-gnu.tar.xz) = 14f403d3ce9df2a2baba1db13c9f039d7118d7e0c8285ca19ea0284c32e80c3f786660dedef4d1758b2227f91732b8e7deccbf3f38c2b3491738c1408d6bfd0e -SHA512 (rust-1.37.0-x86_64-unknown-linux-gnu.tar.xz) = c4d48aa12cb929d6600f9cce81bb612c504aa1b3b3f8e76352af3a76b737dcbe0d31e8d139c17884b11aef9f12a55c4908fb8f3ff63dfa92533e4bd0a729914f +SHA512 (rustc-1.39.0-src.tar.xz) = 8610b2ec77722087c572bd84ac562a5b7c5f1a644aea58c5d5daa07a9aed242703b7816e73e2eaa049f773d5907859e259744a0de700622df005584fd798dab0 +SHA512 (rust-1.38.0-aarch64-unknown-linux-gnu.tar.xz) = c9dea8907d05af938c1936139c1fb8673d0db90503552f53645d71637bb7248263fd20b1c16db140694b2d467a12c474015a2077d9b26c782b44e965a01544c6 +SHA512 (rust-1.38.0-armv7-unknown-linux-gnueabihf.tar.xz) = ddbb2c8d2e7112c5871155890c8308080ac800795c685c4b4d06b9dd8c5abd28ee13961686c9be465d1bbd33d476c6478b90af8de0ca5a451f8b07eaff42f97d +SHA512 (rust-1.38.0-i686-unknown-linux-gnu.tar.xz) = ffdea264378510c6df687a173211427f4cb5930553c9d14e33c5776b0e15d435d1be719bba8a1db50f50a3171a38802e090451dc92a6ea764cc8fdca24651f24 +SHA512 (rust-1.38.0-powerpc64le-unknown-linux-gnu.tar.xz) = 5f3e1dd233ef17d8a296dcb55738fa119e40c32b154a7575f149bf1475b64e34f7e805f206b9862dc6499be470f179290d8abb7ad8d2b5cb355cef03d95ae374 +SHA512 (rust-1.38.0-powerpc64-unknown-linux-gnu.tar.xz) = 26240976834e510fa5a47c35b747b42db4651ea8decdb5498704432c9a21563e603046994fcc2b070d06361bf2c36fe02a15c7f02d88161b299a410f1995983a +SHA512 (rust-1.38.0-s390x-unknown-linux-gnu.tar.xz) = 7af64849236e0173d2aea723f3462682fde7d2e1e04d61c28d215163415e1b15cfb8cac57010ce55bdd928ea74076506ef50376d7550999e0fb00f9d20c4f5ff +SHA512 (rust-1.38.0-x86_64-unknown-linux-gnu.tar.xz) = 0b25c3049a7a213e9151c898979ec9b5b45e46a9072f9853d8f048cf401ef7ac343526d6919e68607a490e3e7bd0375b12ed9fb253caed26bb60f46473d3699b