summaryrefslogtreecommitdiff
path: root/user/rust
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2019-05-26 15:21:24 -0500
committerSamuel Holland <samuel@sholland.org>2019-05-29 04:38:48 +0000
commitd726062dd22ef3eaafd366821fb7c9dde338f060 (patch)
treee443eb75a9559da3b883f3c8d34a3068e46992bb /user/rust
parent0ee2191bdaf224bcc5c9bd4cfd3e42e0fe5fed16 (diff)
downloadpackages-d726062dd22ef3eaafd366821fb7c9dde338f060.tar.gz
packages-d726062dd22ef3eaafd366821fb7c9dde338f060.tar.bz2
packages-d726062dd22ef3eaafd366821fb7c9dde338f060.tar.xz
packages-d726062dd22ef3eaafd366821fb7c9dde338f060.zip
user/rust: Bump to 1.34.2
Signed-off-by: Samuel Holland <samuel@sholland.org>
Diffstat (limited to 'user/rust')
-rw-r--r--user/rust/0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch28
-rw-r--r--user/rust/0002-Fix-LLVM-build.patch6
-rw-r--r--user/rust/0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch8
-rw-r--r--user/rust/0004-Require-static-native-libraries-when-linking-static-.patch36
-rw-r--r--user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch66
-rw-r--r--user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch4
-rw-r--r--user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch8
-rw-r--r--user/rust/0008-Correct-minimum-system-LLVM-version-in-tests.patch206
-rw-r--r--user/rust/0008-test-enum-debug-Correct-minimum-LLVM-version.patch67
-rw-r--r--user/rust/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch10
-rw-r--r--user/rust/0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch2
-rw-r--r--user/rust/0011-Ignore-broken-and-non-applicable-tests.patch68
-rw-r--r--user/rust/0012-Link-stage-2-tools-dynamically-to-libstd.patch6
-rw-r--r--user/rust/0013-Move-debugger-scripts-to-usr-share-rust.patch8
-rw-r--r--user/rust/0014-Add-foxkit-target-specs.patch118
-rw-r--r--user/rust/0020-bootstrap-rustdoc.patch194
-rw-r--r--user/rust/0030-libc-linkage.patch32
-rw-r--r--user/rust/0031-typenum-pmmx.patch33
-rw-r--r--user/rust/0040-rls-atomics.patch29
-rw-r--r--user/rust/0050-LLVM-8.0-compatibility.patch310
-rw-r--r--user/rust/APKBUILD56
21 files changed, 667 insertions, 628 deletions
diff --git a/user/rust/0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch b/user/rust/0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
index bb20cb7b6..f4df88e4a 100644
--- a/user/rust/0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
+++ b/user/rust/0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
@@ -1,33 +1,23 @@
-From 6861c8305fc6449fdc019405d501e5740d44b818 Mon Sep 17 00:00:00 2001
+From 4b5cdf991eb8776927a2730ed73446559856b468 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Wed, 10 Jan 2018 13:36:41 -0600
Subject: [PATCH 01/14] Don't pass CFLAGS to the C++ compiler
---
- src/bootstrap/builder.rs | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
+ src/bootstrap/builder.rs | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
-index 9c58f5b179..bbb275c572 100644
+index a471af2576..f4273729bb 100644
--- a/src/bootstrap/builder.rs
+++ b/src/bootstrap/builder.rs
-@@ -1037,7 +1037,7 @@ impl<'a> Builder<'a> {
- let cflags = self.cflags(target, GitRepo::Rustc).join(" ");
- cargo
- .env(format!("CFLAGS_{}", target), cflags.clone())
-- .env("CFLAGS", cflags.clone());
-+ .env("CFLAGS", cflags);
-
- if let Some(ar) = self.ar(target) {
- let ranlib = format!("{} s", ar.display());
-@@ -1052,9 +1052,7 @@ impl<'a> Builder<'a> {
+@@ -1068,8 +1068,7 @@ impl<'a> Builder<'a> {
+ if let Ok(cxx) = self.cxx(target) {
let cxx = ccacheify(&cxx);
cargo
- .env(format!("CXX_{}", target), &cxx)
-- .env("CXX", &cxx)
-- .env(format!("CXXFLAGS_{}", target), cflags.clone())
-- .env("CXXFLAGS", cflags);
-+ .env("CXX", &cxx);
+- .env(format!("CXX_{}", target), &cxx)
+- .env(format!("CXXFLAGS_{}", target), cflags);
++ .env(format!("CXX_{}", target), &cxx);
}
}
diff --git a/user/rust/0002-Fix-LLVM-build.patch b/user/rust/0002-Fix-LLVM-build.patch
index 7d12e84d3..0a8ececdf 100644
--- a/user/rust/0002-Fix-LLVM-build.patch
+++ b/user/rust/0002-Fix-LLVM-build.patch
@@ -1,4 +1,4 @@
-From d44d2ca85013e85b2b72940609131d1229647461 Mon Sep 17 00:00:00 2001
+From 22fac16a9a1651eb9ac121761583ff6031a15077 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Fri, 8 Sep 2017 00:04:29 -0500
Subject: [PATCH 02/14] Fix LLVM build
@@ -8,10 +8,10 @@ Subject: [PATCH 02/14] Fix LLVM build
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
-index 7491385af7..74c04bac6b 100644
+index 7e6fbdff12..f1e7f05aa9 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
-@@ -772,7 +772,8 @@ impl Build {
+@@ -764,7 +764,8 @@ impl Build {
// cc-rs because the build scripts will determine that for themselves.
let mut base = self.cc[&target].args().iter()
.map(|s| s.to_string_lossy().into_owned())
diff --git a/user/rust/0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch b/user/rust/0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
index c1cb5e930..087dea295 100644
--- a/user/rust/0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
+++ b/user/rust/0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
@@ -1,4 +1,4 @@
-From 520ceedb4a6384da5c207aa434a29d68fc8e238a Mon Sep 17 00:00:00 2001
+From c4565fab697249c4233c97f7855fe692a5a880a4 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sat, 2 Dec 2017 17:25:44 -0600
Subject: [PATCH 03/14] Allow rustdoc to work when cross-compiling on musl
@@ -9,10 +9,10 @@ musl can't handle foreign-architecture libraries in LD_LIBRARY_PATH.
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/bootstrap/bin/rustdoc.rs b/src/bootstrap/bin/rustdoc.rs
-index dec74e60c7..af76331db0 100644
+index 52b5971f0a..c779e35e26 100644
--- a/src/bootstrap/bin/rustdoc.rs
+++ b/src/bootstrap/bin/rustdoc.rs
-@@ -24,9 +24,6 @@ fn main() {
+@@ -23,9 +23,6 @@ fn main() {
Err(_) => 0,
};
@@ -22,7 +22,7 @@ index dec74e60c7..af76331db0 100644
//FIXME(misdreavus): once stdsimd uses cfg(rustdoc) instead of cfg(dox), remove the `--cfg dox`
//arguments here
let mut cmd = Command::new(rustdoc);
-@@ -38,7 +35,7 @@ fn main() {
+@@ -37,7 +34,7 @@ fn main() {
.arg("--sysroot")
.arg(sysroot)
.env(bootstrap::util::dylib_path_var(),
diff --git a/user/rust/0004-Require-static-native-libraries-when-linking-static-.patch b/user/rust/0004-Require-static-native-libraries-when-linking-static-.patch
index 6ec5eb76f..6238e5058 100644
--- a/user/rust/0004-Require-static-native-libraries-when-linking-static-.patch
+++ b/user/rust/0004-Require-static-native-libraries-when-linking-static-.patch
@@ -1,42 +1,48 @@
-From 46e6ead56b2899d9041fe73c1530b7f02df2ca40 Mon Sep 17 00:00:00 2001
+From 859624e56281aff33673dcceb34698bd30eceea3 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Fri, 8 Sep 2017 00:05:18 -0500
Subject: [PATCH 04/14] Require static native libraries when linking static
executables
-gcc/ld will create a dynamically-linked executable without warning, even
-when passed `-static`, when asked to link to a `.so`. Avoid this
-confusing and unintended behavior by always using the static version of
-libraries when trying to link static executables.
+On ELF targets like Linux, gcc/ld will create a dynamically-linked
+executable without warning, even when passed `-static`, when asked to
+link to a `.so`. Avoid this confusing and unintended behavior by always
+using the static version of libraries when trying to link static
+executables.
Fixes #54243
---
- src/librustc_codegen_llvm/back/link.rs | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
+ src/librustc_codegen_llvm/back/link.rs | 18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/src/librustc_codegen_llvm/back/link.rs b/src/librustc_codegen_llvm/back/link.rs
-index fc744201a3..bae8b6ed75 100644
+index 819f7f9410..49adc5dfca 100644
--- a/src/librustc_codegen_llvm/back/link.rs
+++ b/src/librustc_codegen_llvm/back/link.rs
-@@ -1413,8 +1413,8 @@ fn add_upstream_rust_crates(cmd: &mut dyn Linker,
+@@ -1413,9 +1413,7 @@ fn add_upstream_rust_crates(cmd: &mut dyn Linker,
}
}
-// Link in all of our upstream crates' native dependencies. Remember that
-// all of these upstream native dependencies are all non-static
-+// Link in all of our upstream crates' native dependencies. Remember that when
-+// linking libraries, these upstream native dependencies are all non-static
- // dependencies. We've got two cases then:
+-// dependencies. We've got two cases then:
++// Link in all of our upstream crates' native dependencies. We have two cases:
//
// 1. The upstream crate is an rlib. In this case we *must* link in the
-@@ -1458,7 +1458,14 @@ fn add_upstream_native_libraries(cmd: &mut dyn Linker,
+ // native dependency because the rlib is just an archive.
+@@ -1458,7 +1456,19 @@ fn add_upstream_native_libraries(cmd: &mut dyn Linker,
continue
}
match lib.kind {
- NativeLibraryKind::NativeUnknown => cmd.link_dylib(&name.as_str()),
+ NativeLibraryKind::NativeUnknown => {
-+ // When creating executables, match library linkage to that of the executable.
-+ if crate_type == config::CrateType::Executable && sess.crt_static() {
++ // On some targets, like Linux, linking a static executable inhibits using
++ // dylibs at all. Force native libraries to be static, even if for example
++ // an upstream rlib was originally linked against a native shared library.
++ if crate_type == config::CrateType::Executable
++ && sess.crt_static()
++ && !sess.target.target.options.crt_static_allows_dylibs
++ {
+ cmd.link_staticlib(&name.as_str())
+ } else {
+ cmd.link_dylib(&name.as_str())
diff --git a/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch b/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
index 6053de26b..b8ca29376 100644
--- a/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
+++ b/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
@@ -1,4 +1,4 @@
-From 5d98731bae319172c5fbfd8235f62bb00acb3a7d Mon Sep 17 00:00:00 2001
+From d84f9863017bd4bb38c5a2063c679dc3132ecf28 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Fri, 8 Sep 2017 22:11:14 -0500
Subject: [PATCH 05/14] Remove -nostdlib and musl_root from musl targets
@@ -19,10 +19,10 @@ Subject: [PATCH 05/14] Remove -nostdlib and musl_root from musl targets
12 files changed, 3 insertions(+), 154 deletions(-)
diff --git a/config.toml.example b/config.toml.example
-index 23943d34b7..5eace54c6b 100644
+index f45db37c33..50692bf74a 100644
--- a/config.toml.example
+++ b/config.toml.example
-@@ -461,12 +461,6 @@
+@@ -470,12 +470,6 @@
# only use static libraries. If unset, the target's default linkage is used.
#crt-static = false
@@ -36,18 +36,18 @@ index 23943d34b7..5eace54c6b 100644
# probably don't want to use this.
#qemu-rootfs = "..."
diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs
-index a0c75cd9e9..f8daab9bd1 100644
+index b6afe317a0..0eace41a5a 100644
--- a/src/bootstrap/bin/rustc.rs
+++ b/src/bootstrap/bin/rustc.rs
-@@ -20,7 +20,6 @@
- extern crate bootstrap;
+@@ -18,7 +18,6 @@
+ #![deny(warnings)]
use std::env;
-use std::ffi::OsString;
use std::io;
use std::path::PathBuf;
use std::process::Command;
-@@ -116,17 +115,6 @@ fn main() {
+@@ -114,17 +113,6 @@ fn main() {
cmd.arg("-Cprefer-dynamic");
}
@@ -66,10 +66,10 @@ index a0c75cd9e9..f8daab9bd1 100644
if let Ok(target_linker) = env::var("RUSTC_TARGET_LINKER") {
cmd.arg(format!("-Clinker={}", target_linker));
diff --git a/src/bootstrap/cc_detect.rs b/src/bootstrap/cc_detect.rs
-index 37844759c7..fa553c0b06 100644
+index dfc243b705..848d1d4b2b 100644
--- a/src/bootstrap/cc_detect.rs
+++ b/src/bootstrap/cc_detect.rs
-@@ -85,7 +85,7 @@ pub fn find(build: &mut Build) {
+@@ -84,7 +84,7 @@ pub fn find(build: &mut Build) {
if let Some(cc) = config.and_then(|c| c.cc.as_ref()) {
cfg.compiler(cc);
} else {
@@ -78,7 +78,7 @@ index 37844759c7..fa553c0b06 100644
}
let compiler = cfg.get_compiler();
-@@ -114,7 +114,7 @@ pub fn find(build: &mut Build) {
+@@ -113,7 +113,7 @@ pub fn find(build: &mut Build) {
if let Some(cxx) = config.and_then(|c| c.cxx.as_ref()) {
cfg.compiler(cxx);
} else {
@@ -87,7 +87,7 @@ index 37844759c7..fa553c0b06 100644
}
let compiler = cfg.get_compiler();
build.verbose(&format!("CXX_{} = {:?}", host, compiler.path()));
-@@ -125,8 +125,7 @@ pub fn find(build: &mut Build) {
+@@ -124,8 +124,7 @@ pub fn find(build: &mut Build) {
fn set_compiler(cfg: &mut cc::Build,
compiler: Language,
target: Interned<String>,
@@ -97,7 +97,7 @@ index 37844759c7..fa553c0b06 100644
match &*target {
// When compiling for android we may have the NDK configured in the
// config.toml in which case we look there. Otherwise the default
-@@ -166,26 +165,6 @@ fn set_compiler(cfg: &mut cc::Build,
+@@ -165,26 +164,6 @@ fn set_compiler(cfg: &mut cc::Build,
}
}
@@ -125,11 +125,11 @@ index 37844759c7..fa553c0b06 100644
}
}
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
-index b581271663..21421b2e38 100644
+index 249a183189..bfc62c762a 100644
--- a/src/bootstrap/compile.rs
+++ b/src/bootstrap/compile.rs
@@ -114,21 +114,6 @@ impl Step for Std {
- fn copy_third_party_objects(builder: &Builder, compiler: &Compiler, target: Interned<String>) {
+ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: Interned<String>) {
let libdir = builder.sysroot_libdir(*compiler, target);
- // Copies the crt(1,i,n).o startup objects
@@ -150,7 +150,7 @@ index b581271663..21421b2e38 100644
// Copies libunwind.a compiled to be linked wit x86_64-fortanix-unknown-sgx.
//
// This target needs to be linked to Fortanix's port of llvm's libunwind.
-@@ -182,12 +167,6 @@ pub fn std_cargo(builder: &Builder,
+@@ -182,12 +167,6 @@ pub fn std_cargo(builder: &Builder<'_>,
cargo.arg("--features").arg(features)
.arg("--manifest-path")
.arg(builder.src.join("src/libstd/Cargo.toml"));
@@ -164,10 +164,10 @@ index b581271663..21421b2e38 100644
}
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
-index 9421817ae6..cd70c1a1e4 100644
+index 7d3e584f1a..3f0113e11a 100644
--- a/src/bootstrap/config.rs
+++ b/src/bootstrap/config.rs
-@@ -128,8 +128,6 @@ pub struct Config {
+@@ -132,8 +132,6 @@ pub struct Config {
pub print_step_timings: bool,
pub missing_tools: bool,
@@ -176,7 +176,7 @@ index 9421817ae6..cd70c1a1e4 100644
pub prefix: Option<PathBuf>,
pub sysconfdir: Option<PathBuf>,
pub datadir: Option<PathBuf>,
-@@ -164,7 +162,6 @@ pub struct Target {
+@@ -168,7 +166,6 @@ pub struct Target {
pub linker: Option<PathBuf>,
pub ndk: Option<PathBuf>,
pub crt_static: Option<bool>,
@@ -184,7 +184,7 @@ index 9421817ae6..cd70c1a1e4 100644
pub qemu_rootfs: Option<PathBuf>,
pub no_std: bool,
}
-@@ -296,7 +293,6 @@ struct Rust {
+@@ -304,7 +301,6 @@ struct Rust {
backtrace: Option<bool>,
default_linker: Option<String>,
channel: Option<String>,
@@ -192,7 +192,7 @@ index 9421817ae6..cd70c1a1e4 100644
rpath: Option<bool>,
optimize_tests: Option<bool>,
debuginfo_tests: Option<bool>,
-@@ -335,7 +331,6 @@ struct TomlTarget {
+@@ -343,7 +339,6 @@ struct TomlTarget {
linker: Option<String>,
android_ndk: Option<String>,
crt_static: Option<bool>,
@@ -200,15 +200,15 @@ index 9421817ae6..cd70c1a1e4 100644
qemu_rootfs: Option<String>,
}
-@@ -549,7 +544,6 @@ impl Config {
+@@ -562,7 +557,6 @@ impl Config {
set(&mut config.llvm_tools_enabled, rust.llvm_tools);
- config.rustc_parallel_queries = rust.experimental_parallel_queries.unwrap_or(false);
+ config.rustc_parallel = rust.parallel_compiler.unwrap_or(false);
config.rustc_default_linker = rust.default_linker.clone();
- config.musl_root = rust.musl_root.clone().map(PathBuf::from);
config.save_toolstates = rust.save_toolstates.clone().map(PathBuf::from);
set(&mut config.deny_warnings, rust.deny_warnings.or(flags.warnings));
set(&mut config.backtrace_on_ice, rust.backtrace_on_ice);
-@@ -592,7 +586,6 @@ impl Config {
+@@ -605,7 +599,6 @@ impl Config {
target.ranlib = cfg.ranlib.clone().map(PathBuf::from);
target.linker = cfg.linker.clone().map(PathBuf::from);
target.crt_static = cfg.crt_static.clone();
@@ -217,10 +217,10 @@ index 9421817ae6..cd70c1a1e4 100644
config.target_config.insert(INTERNER.intern_string(triple.clone()), target);
diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
-index b0c3c97024..5128897bf7 100755
+index b2d8f2d8eb..c3bb94938f 100755
--- a/src/bootstrap/configure.py
+++ b/src/bootstrap/configure.py
-@@ -105,28 +105,6 @@ v("aarch64-linux-android-ndk", "target.aarch64-linux-android.android-ndk",
+@@ -109,28 +109,6 @@ v("aarch64-linux-android-ndk", "target.aarch64-linux-android.android-ndk",
"aarch64-linux-android NDK standalone path")
v("x86_64-linux-android-ndk", "target.x86_64-linux-android.android-ndk",
"x86_64-linux-android NDK standalone path")
@@ -250,10 +250,10 @@ index b0c3c97024..5128897bf7 100755
"rootfs in qemu testing, you probably don't want to use this")
v("qemu-aarch64-rootfs", "target.aarch64-unknown-linux-gnu.qemu-rootfs",
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
-index 74c04bac6b..aa91600ea7 100644
+index f1e7f05aa9..4ee1444db3 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
-@@ -849,14 +849,6 @@ impl Build {
+@@ -842,14 +842,6 @@ impl Build {
}
}
@@ -265,11 +265,11 @@ index 74c04bac6b..aa91600ea7 100644
- .map(|p| &**p)
- }
-
- /// Returns true if this is a no-std `target`, if defined
+ /// Returns `true` if this is a no-std `target`, if defined
fn no_std(&self, target: Interned<String>) -> Option<bool> {
self.config.target_config.get(&target)
diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
-index fe547a6b15..a452c874c4 100644
+index ff4fb85bbf..ff45200bde 100644
--- a/src/bootstrap/sanity.rs
+++ b/src/bootstrap/sanity.rs
@@ -169,34 +169,6 @@ pub fn check(build: &mut Build) {
@@ -321,10 +321,10 @@ index ba2d32a929..412c37fdd1 100644
--disable-docs
diff --git a/src/ci/docker/dist-various-1/Dockerfile b/src/ci/docker/dist-various-1/Dockerfile
-index ab2dd5a399..a9569fe6d4 100644
+index f80293b182..52f28df826 100644
--- a/src/ci/docker/dist-various-1/Dockerfile
+++ b/src/ci/docker/dist-various-1/Dockerfile
-@@ -128,13 +128,6 @@ ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
+@@ -130,13 +130,6 @@ ENV CC_mipsel_unknown_linux_musl=mipsel-openwrt-linux-gcc \
CXX_thumbv7neon_unknown_linux_gnueabihf=arm-linux-gnueabihf-g++
ENV RUST_CONFIGURE_ARGS \
@@ -351,10 +351,10 @@ index 06f8a2fbba..f5dd379528 100644
--disable-docs
diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/spec/linux_musl_base.rs
-index 1bc90d1a73..e26a5240a6 100644
+index e294e63982..58ae91a96a 100644
--- a/src/librustc_target/spec/linux_musl_base.rs
+++ b/src/librustc_target/spec/linux_musl_base.rs
-@@ -3,28 +3,12 @@ use spec::{LinkerFlavor, TargetOptions};
+@@ -3,28 +3,12 @@ use crate::spec::{LinkerFlavor, TargetOptions};
pub fn opts() -> TargetOptions {
let mut base = super::linux_base::opts();
diff --git a/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch b/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
index f7f7ccd3e..ea8a7a0d2 100644
--- a/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
+++ b/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
@@ -1,4 +1,4 @@
-From eb2340bd8c8d9e79eb4bb231ccb31cd4e4bba907 Mon Sep 17 00:00:00 2001
+From af88a145ea4fbcda9f1d16a53a341282d2129b07 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sat, 9 Sep 2017 00:14:16 -0500
Subject: [PATCH 06/14] Prefer libgcc_eh over libunwind for musl
@@ -8,7 +8,7 @@ Subject: [PATCH 06/14] Prefer libgcc_eh over libunwind for musl
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs
-index 7ed7837268..2f38a43845 100644
+index 0ccffea317..935175dd8d 100644
--- a/src/libunwind/lib.rs
+++ b/src/libunwind/lib.rs
@@ -26,6 +26,6 @@ cfg_if! {
diff --git a/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch b/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
index 6435eeef0..06eebb9c5 100644
--- a/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
+++ b/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
@@ -1,4 +1,4 @@
-From e60db771c8ffe7b82a97ca516737cbf40b372e54 Mon Sep 17 00:00:00 2001
+From a7c6bcd4834952f3f5b0483dd71b47407d9fb186 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 16 Sep 2018 16:40:04 +0000
Subject: [PATCH 07/14] runtest: Fix proc-macro tests on musl hosts
@@ -8,10 +8,10 @@ Subject: [PATCH 07/14] runtest: Fix proc-macro tests on musl hosts
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs
-index 400c205d44..be5c50b070 100644
+index 7781ce74f4..5d73545b1f 100644
--- a/src/tools/compiletest/src/runtest.rs
+++ b/src/tools/compiletest/src/runtest.rs
-@@ -1566,7 +1566,6 @@ impl<'test> TestCx<'test> {
+@@ -1604,7 +1604,6 @@ impl<'test> TestCx<'test> {
None
} else if self.config.target.contains("cloudabi")
|| self.config.target.contains("emscripten")
@@ -19,7 +19,7 @@ index 400c205d44..be5c50b070 100644
|| self.config.target.contains("wasm32")
{
// We primarily compile all auxiliary libraries as dynamic libraries
-@@ -1574,10 +1573,8 @@ impl<'test> TestCx<'test> {
+@@ -1612,10 +1611,8 @@ impl<'test> TestCx<'test> {
// for the test suite (otherwise including libstd statically in all
// executables takes up quite a bit of space).
//
diff --git a/user/rust/0008-Correct-minimum-system-LLVM-version-in-tests.patch b/user/rust/0008-Correct-minimum-system-LLVM-version-in-tests.patch
new file mode 100644
index 000000000..1da2bec5c
--- /dev/null
+++ b/user/rust/0008-Correct-minimum-system-LLVM-version-in-tests.patch
@@ -0,0 +1,206 @@
+From b038aa4b514a520c3ad2a6ab0e518cb8d45c4ca0 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Fri, 22 Mar 2019 17:08:06 -0500
+Subject: [PATCH 08/14] Correct minimum system LLVM version in tests
+
+Since commit 9452a8dfa3ba, the new debug info format is only generated
+for LLVM 8 and newer versions. However, the tests still assume that LLVM
+7 will use the new debug info format. Fix the tests (and a comment in
+the code) to match the actual version check.
+---
+ src/librustc_codegen_llvm/debuginfo/metadata.rs | 8 +++++---
+ src/test/codegen/enum-debug-clike.rs | 2 +-
+ src/test/codegen/enum-debug-niche-2.rs | 2 +-
+ src/test/codegen/enum-debug-niche.rs | 2 +-
+ src/test/codegen/enum-debug-tagged.rs | 2 +-
+ src/test/debuginfo/borrowed-enum.rs | 2 +-
+ .../debuginfo/generic-enum-with-different-disr-sizes.rs | 2 +-
+ src/test/debuginfo/generic-struct-style-enum.rs | 2 +-
+ src/test/debuginfo/generic-tuple-style-enum.rs | 2 +-
+ src/test/debuginfo/recursive-struct.rs | 2 +-
+ src/test/debuginfo/struct-style-enum.rs | 2 +-
+ src/test/debuginfo/tuple-style-enum.rs | 2 +-
+ src/test/debuginfo/unique-enum.rs | 2 +-
+ 13 files changed, 17 insertions(+), 15 deletions(-)
+
+diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs
+index ddcbf29da8..8efa025e3d 100644
+--- a/src/librustc_codegen_llvm/debuginfo/metadata.rs
++++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs
+@@ -1156,12 +1156,14 @@ fn prepare_union_metadata(
+ // Enums
+ //=-----------------------------------------------------------------------------
+
+-// DWARF variant support is only available starting in LLVM 7.
++// DWARF variant support is only available starting in LLVM 8.
+ // Although the earlier enum debug info output did not work properly
+ // in all situations, it is better for the time being to continue to
+ // sometimes emit the old style rather than emit something completely
+-// useless when rust is compiled against LLVM 6 or older. This
+-// function decides which representation will be emitted.
++// useless when rust is compiled against LLVM 6 or older. LLVM 7
++// contains an early version of the DWARF variant support, and will
++// crash when handling the new debug info format. This function
++// decides which representation will be emitted.
+ 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.
+diff --git a/src/test/codegen/enum-debug-clike.rs b/src/test/codegen/enum-debug-clike.rs
+index 62cfef5a84..f268c8bcbc 100644
+--- a/src/test/codegen/enum-debug-clike.rs
++++ b/src/test/codegen/enum-debug-clike.rs
+@@ -4,7 +4,7 @@
+
+ // ignore-tidy-linelength
+ // ignore-windows
+-// min-system-llvm-version 7.0
++// min-system-llvm-version 8.0
+
+ // compile-flags: -g -C no-prepopulate-passes
+
+diff --git a/src/test/codegen/enum-debug-niche-2.rs b/src/test/codegen/enum-debug-niche-2.rs
+index 369fa1fcfd..aa6cbf66b4 100644
+--- a/src/test/codegen/enum-debug-niche-2.rs
++++ b/src/test/codegen/enum-debug-niche-2.rs
+@@ -4,7 +4,7 @@
+
+ // ignore-tidy-linelength
+ // ignore-windows
+-// min-system-llvm-version 7.0
++// min-system-llvm-version 8.0
+
+ // compile-flags: -g -C no-prepopulate-passes
+
+diff --git a/src/test/codegen/enum-debug-niche.rs b/src/test/codegen/enum-debug-niche.rs
+index 1273a785ba..93eebde7b8 100644
+--- a/src/test/codegen/enum-debug-niche.rs
++++ b/src/test/codegen/enum-debug-niche.rs
+@@ -4,7 +4,7 @@
+
+ // ignore-tidy-linelength
+ // ignore-windows
+-// min-system-llvm-version 7.0
++// min-system-llvm-version 8.0
+
+ // compile-flags: -g -C no-prepopulate-passes
+
+diff --git a/src/test/codegen/enum-debug-tagged.rs b/src/test/codegen/enum-debug-tagged.rs
+index 5c37e40c27..84976ce97a 100644
+--- a/src/test/codegen/enum-debug-tagged.rs
++++ b/src/test/codegen/enum-debug-tagged.rs
+@@ -4,7 +4,7 @@
+
+ // ignore-tidy-linelength
+ // ignore-windows
+-// min-system-llvm-version 7.0
++// min-system-llvm-version 8.0
+
+ // compile-flags: -g -C no-prepopulate-passes
+
+diff --git a/src/test/debuginfo/borrowed-enum.rs b/src/test/debuginfo/borrowed-enum.rs
+index e27a31dd0e..63c11f59c1 100644
+--- a/src/test/debuginfo/borrowed-enum.rs
++++ b/src/test/debuginfo/borrowed-enum.rs
+@@ -1,7 +1,7 @@
+ // ignore-tidy-linelength
+
+ // Require LLVM with DW_TAG_variant_part and a gdb or lldb that can read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+ // rust-lldb
+
+diff --git a/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs b/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
+index 9392aa7097..e26294cb73 100644
+--- a/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
++++ b/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs
+@@ -3,7 +3,7 @@
+ // min-lldb-version: 310
+
+ // Require LLVM with DW_TAG_variant_part and a gdb that can read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+
+ // compile-flags:-g
+diff --git a/src/test/debuginfo/generic-struct-style-enum.rs b/src/test/debuginfo/generic-struct-style-enum.rs
+index 3e59347030..3dc5cb807b 100644
+--- a/src/test/debuginfo/generic-struct-style-enum.rs
++++ b/src/test/debuginfo/generic-struct-style-enum.rs
+@@ -2,7 +2,7 @@
+ // min-lldb-version: 310
+
+ // Require LLVM with DW_TAG_variant_part and a gdb that can read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+
+ // compile-flags:-g
+diff --git a/src/test/debuginfo/generic-tuple-style-enum.rs b/src/test/debuginfo/generic-tuple-style-enum.rs
+index 3c136add07..b16634ee6d 100644
+--- a/src/test/debuginfo/generic-tuple-style-enum.rs
++++ b/src/test/debuginfo/generic-tuple-style-enum.rs
+@@ -2,7 +2,7 @@
+
+ // Require LLVM with DW_TAG_variant_part and a gdb and lldb that can
+ // read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+ // rust-lldb
+
+diff --git a/src/test/debuginfo/recursive-struct.rs b/src/test/debuginfo/recursive-struct.rs
+index c3d2bea913..8fb83b7956 100644
+--- a/src/test/debuginfo/recursive-struct.rs
++++ b/src/test/debuginfo/recursive-struct.rs
+@@ -2,7 +2,7 @@
+ // ignore-lldb
+
+ // Require LLVM with DW_TAG_variant_part and a gdb that can read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+
+ // compile-flags:-g
+diff --git a/src/test/debuginfo/struct-style-enum.rs b/src/test/debuginfo/struct-style-enum.rs
+index 1654c93209..5843b076b1 100644
+--- a/src/test/debuginfo/struct-style-enum.rs
++++ b/src/test/debuginfo/struct-style-enum.rs
+@@ -2,7 +2,7 @@
+
+ // Require LLVM with DW_TAG_variant_part and a gdb and lldb that can
+ // read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+ // rust-lldb
+
+diff --git a/src/test/debuginfo/tuple-style-enum.rs b/src/test/debuginfo/tuple-style-enum.rs
+index fd76bcb0af..4d9727a388 100644
+--- a/src/test/debuginfo/tuple-style-enum.rs
++++ b/src/test/debuginfo/tuple-style-enum.rs
+@@ -2,7 +2,7 @@
+
+ // Require LLVM with DW_TAG_variant_part and a gdb and lldb that can
+ // read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+ // rust-lldb
+
+diff --git a/src/test/debuginfo/unique-enum.rs b/src/test/debuginfo/unique-enum.rs
+index da0d06213e..32bd93f1ed 100644
+--- a/src/test/debuginfo/unique-enum.rs
++++ b/src/test/debuginfo/unique-enum.rs
+@@ -2,7 +2,7 @@
+
+ // Require LLVM with DW_TAG_variant_part and a gdb and lldb that can
+ // read it.
+-// min-system-llvm-version: 7.0
++// min-system-llvm-version: 8.0
+ // min-gdb-version: 8.2
+ // rust-lldb
+
+--
+2.21.0
+
diff --git a/user/rust/0008-test-enum-debug-Correct-minimum-LLVM-version.patch b/user/rust/0008-test-enum-debug-Correct-minimum-LLVM-version.patch
deleted file mode 100644
index dddaf75bf..000000000
--- a/user/rust/0008-test-enum-debug-Correct-minimum-LLVM-version.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 8dbda1b85a15b04300f73eb30c1e2da196750cfb Mon Sep 17 00:00:00 2001
-From: Samuel Holland <samuel@sholland.org>
-Date: Fri, 22 Mar 2019 17:08:06 -0500
-Subject: [PATCH 08/14] test/enum-debug*: Correct minimum LLVM version
-
----
- src/test/codegen/enum-debug-clike.rs | 2 +-
- src/test/codegen/enum-debug-niche-2.rs | 2 +-
- src/test/codegen/enum-debug-niche.rs | 2 +-
- src/test/codegen/enum-debug-tagged.rs | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/test/codegen/enum-debug-clike.rs b/src/test/codegen/enum-debug-clike.rs
-index 98f07505f7..11e2fae596 100644
---- a/src/test/codegen/enum-debug-clike.rs
-+++ b/src/test/codegen/enum-debug-clike.rs
-@@ -4,7 +4,7 @@
-
- // ignore-tidy-linelength
- // ignore-windows
--// min-system-llvm-version 7.0
-+// min-system-llvm-version 8.0
-
- // compile-flags: -g -C no-prepopulate-passes
-
-diff --git a/src/test/codegen/enum-debug-niche-2.rs b/src/test/codegen/enum-debug-niche-2.rs
-index 369fa1fcfd..aa6cbf66b4 100644
---- a/src/test/codegen/enum-debug-niche-2.rs
-+++ b/src/test/codegen/enum-debug-niche-2.rs
-@@ -4,7 +4,7 @@
-
- // ignore-tidy-linelength
- // ignore-windows
--// min-system-llvm-version 7.0
-+// min-system-llvm-version 8.0
-
- // compile-flags: -g -C no-prepopulate-passes
-
-diff --git a/src/test/codegen/enum-debug-niche.rs b/src/test/codegen/enum-debug-niche.rs
-index 1273a785ba..93eebde7b8 100644
---- a/src/test/codegen/enum-debug-niche.rs
-+++ b/src/test/codegen/enum-debug-niche.rs
-@@ -4,7 +4,7 @@
-
- // ignore-tidy-linelength
- // ignore-windows
--// min-system-llvm-version 7.0
-+// min-system-llvm-version 8.0
-
- // compile-flags: -g -C no-prepopulate-passes
-
-diff --git a/src/test/codegen/enum-debug-tagged.rs b/src/test/codegen/enum-debug-tagged.rs
-index 5c37e40c27..84976ce97a 100644
---- a/src/test/codegen/enum-debug-tagged.rs
-+++ b/src/test/codegen/enum-debug-tagged.rs
-@@ -4,7 +4,7 @@
-
- // ignore-tidy-linelength
- // ignore-windows
--// min-system-llvm-version 7.0
-+// min-system-llvm-version 8.0
-
- // compile-flags: -g -C no-prepopulate-passes
-
---
-2.21.0
-
diff --git a/user/rust/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch b/user/rust/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
index da9d25537..121e3c818 100644
--- a/user/rust/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
+++ b/user/rust/0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
@@ -1,4 +1,4 @@
-From b7fdd2b4b192e1ac7e59fe009e7b7bba8943c8dc Mon Sep 17 00:00:00 2001
+From ecfd3927df50b811ef1dff61abbdeed15daf7cd2 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sat, 6 Oct 2018 04:01:48 +0000
Subject: [PATCH 09/14] test/use-extern-for-plugins: Don't assume multilib
@@ -8,12 +8,12 @@ Subject: [PATCH 09/14] test/use-extern-for-plugins: Don't assume multilib
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile b/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile
-index cc7bc176f4..36553f1e44 100644
+index 3976da3113..567a8d3157 100644
--- a/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile
+++ b/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile
-@@ -4,12 +4,7 @@ SKIP_OS := 'FreeBSD OpenBSD Bitrig SunOS'
-
- ifneq ($(UNAME),$(findstring $(UNAME),$(SKIP_OS)))
+@@ -5,12 +5,7 @@
+ # ignore-bitrig
+ # ignore-sunos
-HOST := $(shell $(RUSTC) -vV | grep 'host:' | sed 's/host: //')
-ifeq ($(findstring i686,$(HOST)),i686)
diff --git a/user/rust/0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch b/user/rust/0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
index ff49416e0..029544a30 100644
--- a/user/rust/0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
+++ b/user/rust/0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
@@ -1,4 +1,4 @@
-From 4ca0a1760317d3029bfcb0e6253252b926ef92ce Mon Sep 17 00:00:00 2001
+From 91e0c28a5642ef1eead598910e4a6bff071c9a4d Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Mon, 17 Sep 2018 01:32:20 +0000
Subject: [PATCH 10/14] test/sysroot-crates-are-unstable: Fix test when rpath
diff --git a/user/rust/0011-Ignore-broken-and-non-applicable-tests.patch b/user/rust/0011-Ignore-broken-and-non-applicable-tests.patch
index ebf711f77..59d6b713c 100644
--- a/user/rust/0011-Ignore-broken-and-non-applicable-tests.patch
+++ b/user/rust/0011-Ignore-broken-and-non-applicable-tests.patch
@@ -1,17 +1,24 @@
-From 63a413a24f98461476aac7ac7ead69c948874e7d Mon Sep 17 00:00:00 2001
+From 0495caf6d9c4745ba3cedbdbb4dd690571e1cec0 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Sun, 16 Sep 2018 16:38:48 +0000
Subject: [PATCH 11/14] Ignore broken and non-applicable tests
+c-link-to-rust-va-list-fn: unstable feature, broken on aarch64, #56475
+env-funky-keys: can't handle LD_PRELOAD (e.g. sandbox)
long-linker-command-lines: takes >10 minutes to run (but still passes)
+simd-intrinsic-generic-bitmask.rs: broken on BE, #59356
+simd-intrinsic-generic-select.rs: broken on BE, #59356
sparc-struct-abi: no sparc target
-sysroot-crates-are-unstable: can't run rustc without rpath
+sysroot-crates-are-unstable: can't run rustc without RPATH
---
src/test/codegen/sparc-struct-abi.rs | 1 +
- src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 1 -
- src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 +-
+ src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile | 2 ++
+ src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 2 ++
+ src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 ++
+ src/test/run-pass/env-funky-keys.rs | 1 +
+ src/test/run-pass/simd/simd-intrinsic-generic-bitmask.rs | 2 ++
src/test/run-pass/simd/simd-intrinsic-generic-select.rs | 2 ++
- 4 files changed, 4 insertions(+), 2 deletions(-)
+ 7 files changed, 12 insertions(+)
diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs
index 78e5b14a21..6f93e93286 100644
@@ -25,25 +32,60 @@ index 78e5b14a21..6f93e93286 100644
#![feature(no_core, lang_items)]
#![no_core]
+diff --git a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
+index f124ca2ab6..363b18f098 100644
+--- a/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
++++ b/src/test/run-make-fulldeps/c-link-to-rust-va-list-fn/Makefile
+@@ -1,3 +1,5 @@
++# ignore-aarch64
++
+ -include ../tools.mk
+
+ all:
diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-index 5876fbc94b..e9f5c33b77 100644
+index 5876fbc94b..5f167ece1a 100644
--- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
+++ b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile
-@@ -2,4 +2,3 @@
+@@ -1,3 +1,5 @@
++# ignore-test
++
+ -include ../tools.mk
all:
- $(RUSTC) foo.rs -g -O
-- RUSTC="$(RUSTC_ORIGINAL)" $(call RUN,foo)
diff --git a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-index 9e77070685..7784230b46 100644
+index 9e77070685..6d92ec5cec 100644
--- a/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
+++ b/src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile
-@@ -1,4 +1,4 @@
+@@ -1,3 +1,5 @@
++# ignore-test
++
-include ../tools.mk
all:
-- env '$(HOST_RPATH_ENV)' python2.7 test.py
-+ true
+diff --git a/src/test/run-pass/env-funky-keys.rs b/src/test/run-pass/env-funky-keys.rs
+index 79f32bd6c2..fc171687c9 100644
+--- a/src/test/run-pass/env-funky-keys.rs
++++ b/src/test/run-pass/env-funky-keys.rs
+@@ -1,5 +1,6 @@
+ // Ignore this test on Android, because it segfaults there.
+
++// ignore-test
+ // ignore-android
+ // ignore-windows
+ // ignore-cloudabi no execve
+diff --git a/src/test/run-pass/simd/simd-intrinsic-generic-bitmask.rs b/src/test/run-pass/simd/simd-intrinsic-generic-bitmask.rs
+index b28f742a92..3ee4ccce73 100644
+--- a/src/test/run-pass/simd/simd-intrinsic-generic-bitmask.rs
++++ b/src/test/run-pass/simd/simd-intrinsic-generic-bitmask.rs
+@@ -2,6 +2,8 @@
+ #![allow(non_camel_case_types)]
+
+ // ignore-emscripten
++// ignore-powerpc
++// ignore-powerpc64
+
+ // Test that the simd_bitmask intrinsic produces correct results.
+
diff --git a/src/test/run-pass/simd/simd-intrinsic-generic-select.rs b/src/test/run-pass/simd/simd-intrinsic-generic-select.rs
index f79b140494..39080c8c90 100644
--- a/src/test/run-pass/simd/simd-intrinsic-generic-select.rs
diff --git a/user/rust/0012-Link-stage-2-tools-dynamically-to-libstd.patch b/user/rust/0012-Link-stage-2-tools-dynamically-to-libstd.patch
index 8d37b335c..e4cac488c 100644
--- a/user/rust/0012-Link-stage-2-tools-dynamically-to-libstd.patch
+++ b/user/rust/0012-Link-stage-2-tools-dynamically-to-libstd.patch
@@ -1,4 +1,4 @@
-From 51b5ec642911295036d4ff19d4d6799037da3efc Mon Sep 17 00:00:00 2001
+From d7e94a443cd0876d384ccbc36a6eb21cfc3636d4 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Mon, 24 Sep 2018 23:42:23 +0000
Subject: [PATCH 12/14] Link stage 2 tools dynamically to libstd
@@ -8,10 +8,10 @@ Subject: [PATCH 12/14] Link stage 2 tools dynamically to libstd
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
-index 9f6db73e6f..69cc2219c1 100644
+index fc1a17d546..880c2d52ba 100644
--- a/src/bootstrap/tool.rs
+++ b/src/bootstrap/tool.rs
-@@ -208,7 +208,9 @@ pub fn prepare_tool_cargo(
+@@ -207,7 +207,9 @@ pub fn prepare_tool_cargo(
// We don't want to build tools dynamically as they'll be running across
// stages and such and it's just easier if they're not dynamically linked.
diff --git a/user/rust/0013-Move-debugger-scripts-to-usr-share-rust.patch b/user/rust/0013-Move-debugger-scripts-to-usr-share-rust.patch
index a401dc5ab..8f5b2fbc0 100644
--- a/user/rust/0013-Move-debugger-scripts-to-usr-share-rust.patch
+++ b/user/rust/0013-Move-debugger-scripts-to-usr-share-rust.patch
@@ -1,4 +1,4 @@
-From 17bb016bf9eefb42e1205b5f8d7b944147337f24 Mon Sep 17 00:00:00 2001
+From b3b713b954619af8768ad21bd73700291e9d7b58 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Mon, 17 Sep 2018 02:09:10 +0000
Subject: [PATCH 13/14] Move debugger scripts to /usr/share/rust
@@ -10,11 +10,11 @@ Subject: [PATCH 13/14] Move debugger scripts to /usr/share/rust
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
-index 0c6e213110..1858fade71 100644
+index 2dae3f9135..642e4bfba8 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
-@@ -583,7 +583,7 @@ impl Step for DebuggerScripts {
- fn run(self, builder: &Builder) {
+@@ -595,7 +595,7 @@ impl Step for DebuggerScripts {
+ fn run(self, builder: &Builder<'_>) {
let host = self.host;
let sysroot = self.sysroot;
- let dst = sysroot.join("lib/rustlib/etc");
diff --git a/user/rust/0014-Add-foxkit-target-specs.patch b/user/rust/0014-Add-foxkit-target-specs.patch
index ecbfe26b5..6640e90cf 100644
--- a/user/rust/0014-Add-foxkit-target-specs.patch
+++ b/user/rust/0014-Add-foxkit-target-specs.patch
@@ -1,17 +1,17 @@
-From 2ca1aeb3cb3e0d52917cec2a96101aba5c6e40ce Mon Sep 17 00:00:00 2001
+From 065384a949dbf3e24e9b412cef54cdf653c57625 Mon Sep 17 00:00:00 2001
From: Samuel Holland <samuel@sholland.org>
Date: Mon, 17 Sep 2018 02:29:06 +0000
Subject: [PATCH 14/14] Add foxkit target specs
---
- .../spec/aarch64_foxkit_linux_musl.rs | 21 +++++++++++++++++
- .../spec/armv7_foxkit_linux_musleabihf.rs | 21 +++++++++++++++++
- .../spec/i586_foxkit_linux_musl.rs | 23 +++++++++++++++++++
- src/librustc_target/spec/mod.rs | 7 ++++++
- .../spec/powerpc64_foxkit_linux_musl.rs | 21 +++++++++++++++++
- .../spec/powerpc_foxkit_linux_musl.rs | 23 +++++++++++++++++++
- .../spec/x86_64_foxkit_linux_musl.rs | 21 +++++++++++++++++
- 7 files changed, 137 insertions(+)
+ .../spec/aarch64_foxkit_linux_musl.rs | 11 +++++++++++
+ .../spec/armv7_foxkit_linux_musleabihf.rs | 11 +++++++++++
+ src/librustc_target/spec/i586_foxkit_linux_musl.rs | 13 +++++++++++++
+ src/librustc_target/spec/mod.rs | 7 +++++++
+ .../spec/powerpc64_foxkit_linux_musl.rs | 11 +++++++++++
+ .../spec/powerpc_foxkit_linux_musl.rs | 13 +++++++++++++
+ .../spec/x86_64_foxkit_linux_musl.rs | 11 +++++++++++
+ 7 files changed, 77 insertions(+)
create mode 100644 src/librustc_target/spec/aarch64_foxkit_linux_musl.rs
create mode 100644 src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs
create mode 100644 src/librustc_target/spec/i586_foxkit_linux_musl.rs
@@ -21,21 +21,11 @@ Subject: [PATCH 14/14] Add foxkit target specs
diff --git a/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs b/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs
new file mode 100644
-index 0000000000..18ad2c2f31
+index 0000000000..9ba8bc1deb
--- /dev/null
+++ b/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs
-@@ -0,0 +1,21 @@
-+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-+// file at the top-level directory of this distribution and at
-+// http://rust-lang.org/COPYRIGHT.
-+//
-+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-+// option. This file may not be copied, modified, or distributed
-+// except according to those terms.
-+
-+use spec::TargetResult;
+@@ -0,0 +1,11 @@
++use crate::spec::TargetResult;
+
+pub fn target() -> TargetResult {
+ let mut base = super::aarch64_unknown_linux_musl::target()?;
@@ -48,21 +38,11 @@ index 0000000000..18ad2c2f31
+}
diff --git a/src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs b/src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs
new file mode 100644
-index 0000000000..facfd5d363
+index 0000000000..5a88f77896
--- /dev/null
+++ b/src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs
-@@ -0,0 +1,21 @@
-+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-+// file at the top-level directory of this distribution and at
-+// http://rust-lang.org/COPYRIGHT.
-+//
-+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-+// option. This file may not be copied, modified, or distributed
-+// except according to those terms.
-+
-+use spec::TargetResult;
+@@ -0,0 +1,11 @@
++use crate::spec::TargetResult;
+
+pub fn target() -> TargetResult {
+ let mut base = super::armv7_unknown_linux_musleabihf::target()?;
@@ -75,21 +55,11 @@ index 0000000000..facfd5d363
+}
diff --git a/src/librustc_target/spec/i586_foxkit_linux_musl.rs b/src/librustc_target/spec/i586_foxkit_linux_musl.rs
new file mode 100644
-index 0000000000..e0284d96e6
+index 0000000000..f0c4ffbf58
--- /dev/null
+++ b/src/librustc_target/spec/i586_foxkit_linux_musl.rs
-@@ -0,0 +1,23 @@
-+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-+// file at the top-level directory of this distribution and at
-+// http://rust-lang.org/COPYRIGHT.
-+//
-+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-+// option. This file may not be copied, modified, or distributed
-+// except according to those terms.
-+
-+use spec::{LinkerFlavor, TargetResult};
+@@ -0,0 +1,13 @@
++use crate::spec::{LinkerFlavor, TargetResult};
+
+pub fn target() -> TargetResult {
+ let mut base = super::i586_unknown_linux_musl::target()?;
@@ -103,10 +73,10 @@ index 0000000000..e0284d96e6
+ Ok(base)
+}
diff --git a/src/librustc_target/spec/mod.rs b/src/librustc_target/spec/mod.rs
-index f42b0a1c3c..f83be3e4e3 100644
+index bef2afc7b6..ddd2fb21c7 100644
--- a/src/librustc_target/spec/mod.rs
+++ b/src/librustc_target/spec/mod.rs
-@@ -278,6 +278,13 @@ macro_rules! supported_targets {
+@@ -328,6 +328,13 @@ macro_rules! supported_targets {
}
supported_targets! {
@@ -122,21 +92,11 @@ index f42b0a1c3c..f83be3e4e3 100644
("i686-unknown-linux-gnu", i686_unknown_linux_gnu),
diff --git a/src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs b/src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs
new file mode 100644
-index 0000000000..b7202ee0fc
+index 0000000000..b105aa247e
--- /dev/null
+++ b/src/librustc_target/spec/powerpc64_foxkit_linux_musl.rs
-@@ -0,0 +1,21 @@
-+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-+// file at the top-level directory of this distribution and at
-+// http://rust-lang.org/COPYRIGHT.
-+//
-+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-+// option. This file may not be copied, modified, or distributed
-+// except according to those terms.
-+
-+use spec::TargetResult;
+@@ -0,0 +1,11 @@
++use crate::spec::TargetResult;
+
+pub fn target() -> TargetResult {
+ let mut base = super::powerpc64_unknown_linux_musl::target()?;
@@ -149,21 +109,11 @@ index 0000000000..b7202ee0fc
+}
diff --git a/src/librustc_target/spec/powerpc_foxkit_linux_musl.rs b/src/librustc_target/spec/powerpc_foxkit_linux_musl.rs
new file mode 100644
-index 0000000000..34246a7e28
+index 0000000000..a425f472aa
--- /dev/null
+++ b/src/librustc_target/spec/powerpc_foxkit_linux_musl.rs
-@@ -0,0 +1,23 @@
-+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-+// file at the top-level directory of this distribution and at
-+// http://rust-lang.org/COPYRIGHT.
-+//
-+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-+// option. This file may not be copied, modified, or distributed
-+// except according to those terms.
-+
-+use spec::{LinkerFlavor, TargetResult};
+@@ -0,0 +1,13 @@
++use crate::spec::{LinkerFlavor, TargetResult};
+
+pub fn target() -> TargetResult {
+ let mut base = super::powerpc_unknown_linux_musl::target()?;
@@ -178,21 +128,11 @@ index 0000000000..34246a7e28
+}
diff --git a/src/librustc_target/spec/x86_64_foxkit_linux_musl.rs b/src/librustc_target/spec/x86_64_foxkit_linux_musl.rs
new file mode 100644
-index 0000000000..801dd8d6f4
+index 0000000000..40adbd77b3
--- /dev/null
+++ b/src/librustc_target/spec/x86_64_foxkit_linux_musl.rs
-@@ -0,0 +1,21 @@
-+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
-+// file at the top-level directory of this distribution and at
-+// http://rust-lang.org/COPYRIGHT.
-+//
-+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-+// option. This file may not be copied, modified, or distributed
-+// except according to those terms.
-+
-+use spec::TargetResult;
+@@ -0,0 +1,11 @@
++use crate::spec::TargetResult;
+
+pub fn target() -> TargetResult {
+ let mut base = super::x86_64_unknown_linux_musl::target()?;
diff --git a/user/rust/0020-bootstrap-rustdoc.patch b/user/rust/0020-bootstrap-rustdoc.patch
new file mode 100644
index 000000000..983d3af8b
--- /dev/null
+++ b/user/rust/0020-bootstrap-rustdoc.patch
@@ -0,0 +1,194 @@
+From 03718ed67a7b8fd57fc27316ec57ac3bc0f13d06 Mon Sep 17 00:00:00 2001
+From: Mark Rousskov <mark.simulacrum@gmail.com>
+Date: Sun, 3 Mar 2019 09:50:56 -0700
+Subject: [PATCH] Permit getting stage 0 rustdoc
+
+This allows us to e.g. test compiletest, including doctests, in stage 0
+without building a fresh compiler and rustdoc.
+---
+ src/bootstrap/builder.rs | 15 +++++++--------
+ src/bootstrap/dist.rs | 2 +-
+ src/bootstrap/doc.rs | 8 ++++----
+ src/bootstrap/test.rs | 8 ++++----
+ src/bootstrap/tool.rs | 8 +++++---
+ 5 files changed, 21 insertions(+), 20 deletions(-)
+
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index 7e6c0a9f52aa..f8b7f25a7543 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -668,20 +668,19 @@ impl<'a> Builder<'a> {
+ .map(|entry| entry.path())
+ }
+
+- pub fn rustdoc(&self, host: Interned<String>) -> PathBuf {
+- self.ensure(tool::Rustdoc { host })
++ pub fn rustdoc(&self, compiler: Compiler) -> PathBuf {
++ self.ensure(tool::Rustdoc { compiler })
+ }
+
+- pub fn rustdoc_cmd(&self, host: Interned<String>) -> Command {
++ pub fn rustdoc_cmd(&self, compiler: Compiler) -> Command {
+ let mut cmd = Command::new(&self.out.join("bootstrap/debug/rustdoc"));
+- let compiler = self.compiler(self.top_stage, host);
+ cmd.env("RUSTC_STAGE", compiler.stage.to_string())
+ .env("RUSTC_SYSROOT", self.sysroot(compiler))
+ // Note that this is *not* the sysroot_libdir because rustdoc must be linked
+ // equivalently to rustc.
+ .env("RUSTDOC_LIBDIR", self.rustc_libdir(compiler))
+ .env("CFG_RELEASE_CHANNEL", &self.config.channel)
+- .env("RUSTDOC_REAL", self.rustdoc(host))
++ .env("RUSTDOC_REAL", self.rustdoc(compiler))
+ .env("RUSTDOC_CRATE_VERSION", self.rust_version())
+ .env("RUSTC_BOOTSTRAP", "1");
+
+@@ -689,7 +688,7 @@ impl<'a> Builder<'a> {
+ cmd.env_remove("MAKEFLAGS");
+ cmd.env_remove("MFLAGS");
+
+- if let Some(linker) = self.linker(host) {
++ if let Some(linker) = self.linker(compiler.host) {
+ cmd.env("RUSTC_TARGET_LINKER", linker);
+ }
+ cmd
+@@ -751,7 +750,7 @@ impl<'a> Builder<'a> {
+ // This is the intended out directory for compiler documentation.
+ my_out = self.compiler_doc_out(target);
+ }
+- let rustdoc = self.rustdoc(compiler.host);
++ let rustdoc = self.rustdoc(compiler);
+ self.clear_if_dirty(&my_out, &rustdoc);
+ } else if cmd != "test" {
+ match mode {
+@@ -897,7 +896,7 @@ impl<'a> Builder<'a> {
+ .env(
+ "RUSTDOC_REAL",
+ if cmd == "doc" || cmd == "rustdoc" || (cmd == "test" && want_rustdoc) {
+- self.rustdoc(compiler.host)
++ self.rustdoc(compiler)
+ } else {
+ PathBuf::from("/path/to/nowhere/rustdoc/not/required")
+ },
+diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
+index 2dae3f9135d8..3045cda125ee 100644
+--- a/src/bootstrap/dist.rs
++++ b/src/bootstrap/dist.rs
+@@ -479,7 +479,7 @@ impl Step for Rustc {
+ t!(fs::create_dir_all(image.join("bin")));
+ builder.cp_r(&src.join("bin"), &image.join("bin"));
+
+- builder.install(&builder.rustdoc(compiler.host), &image.join("bin"), 0o755);
++ builder.install(&builder.rustdoc(compiler), &image.join("bin"), 0o755);
+
+ // Copy runtime DLLs needed by the compiler
+ if libdir != "bin" {
+diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
+index 621e3a95473e..ae329286486d 100644
+--- a/src/bootstrap/doc.rs
++++ b/src/bootstrap/doc.rs
+@@ -335,7 +335,7 @@ fn invoke_rustdoc(
+ let footer = builder.src.join("src/doc/footer.inc");
+ let version_info = out.join("version_info.html");
+
+- let mut cmd = builder.rustdoc_cmd(compiler.host);
++ let mut cmd = builder.rustdoc_cmd(compiler);
+
+ let out = out.join("book");
+
+@@ -415,7 +415,7 @@ impl Step for Standalone {
+ }
+
+ let html = out.join(filename).with_extension("html");
+- let rustdoc = builder.rustdoc(compiler.host);
++ let rustdoc = builder.rustdoc(compiler);
+ if up_to_date(&path, &html) &&
+ up_to_date(&footer, &html) &&
+ up_to_date(&favicon, &html) &&
+@@ -425,7 +425,7 @@ impl Step for Standalone {
+ continue
+ }
+
+- let mut cmd = builder.rustdoc_cmd(compiler.host);
++ let mut cmd = builder.rustdoc_cmd(compiler);
+ cmd.arg("--html-after-content").arg(&footer)
+ .arg("--html-before-content").arg(&version_info)
+ .arg("--html-in-header").arg(&favicon)
+@@ -824,7 +824,7 @@ impl Step for Rustdoc {
+ builder.ensure(Rustc { stage, target });
+
+ // Build rustdoc.
+- builder.ensure(tool::Rustdoc { host: compiler.host });
++ builder.ensure(tool::Rustdoc { compiler: compiler });
+
+ // Symlink compiler docs to the output directory of rustdoc documentation.
+ let out_dir = builder.stage_out(compiler, Mode::ToolRustc)
+diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
+index 5abf9d699784..6b9960c355c5 100644
+--- a/src/bootstrap/test.rs
++++ b/src/bootstrap/test.rs
+@@ -177,7 +177,7 @@ impl Step for Cargotest {
+ cmd.arg(&builder.initial_cargo)
+ .arg(&out_dir)
+ .env("RUSTC", builder.rustc(compiler))
+- .env("RUSTDOC", builder.rustdoc(compiler.host)),
++ .env("RUSTDOC", builder.rustdoc(compiler)),
+ );
+ }
+ }
+@@ -560,7 +560,7 @@ impl Step for RustdocTheme {
+ builder.sysroot_libdir(self.compiler, self.compiler.host),
+ )
+ .env("CFG_RELEASE_CHANNEL", &builder.config.channel)
+- .env("RUSTDOC_REAL", builder.rustdoc(self.compiler.host))
++ .env("RUSTDOC_REAL", builder.rustdoc(self.compiler))
+ .env("RUSTDOC_CRATE_VERSION", builder.rust_version())
+ .env("RUSTC_BOOTSTRAP", "1");
+ if let Some(linker) = builder.linker(self.compiler.host) {
+@@ -995,7 +995,7 @@ impl Step for Compiletest {
+ || (mode == "ui" && is_rustdoc_ui)
+ {
+ cmd.arg("--rustdoc-path")
+- .arg(builder.rustdoc(compiler.host));
++ .arg(builder.rustdoc(compiler));
+ }
+
+ cmd.arg("--src-base")
+@@ -1451,7 +1451,7 @@ fn markdown_test(builder: &Builder<'_>, compiler: Compiler, markdown: &Path) ->
+ }
+
+ builder.info(&format!("doc tests for: {}", markdown.display()));
+- let mut cmd = builder.rustdoc_cmd(compiler.host);
++ let mut cmd = builder.rustdoc_cmd(compiler);
+ builder.add_rust_test_threads(&mut cmd);
+ cmd.arg("--test");
+ cmd.arg(markdown);
+diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs
+index 4f2aa0b795dc..5fb83caac06c 100644
+--- a/src/bootstrap/tool.rs
++++ b/src/bootstrap/tool.rs
+@@ -430,7 +430,9 @@ impl Step for RemoteTestServer {
+
+ #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
+ pub struct Rustdoc {
+- pub host: Interned<String>,
++ /// This should only ever be 0 or 2.
++ /// We sometimes want to reference the "bootstrap" rustdoc, which is why this option is here.
++ pub compiler: Compiler,
+ }
+
+ impl Step for Rustdoc {
+@@ -444,12 +446,12 @@ impl Step for Rustdoc {
+
+ fn make_run(run: RunConfig<'_>) {
+ run.builder.ensure(Rustdoc {
+- host: run.host,
++ compiler: run.builder.compiler(run.builder.top_stage, run.host),
+ });
+ }
+
+ fn run(self, builder: &Builder<'_>) -> PathBuf {
+- let target_compiler = builder.compiler(builder.top_stage, self.host);
++ let target_compiler = self.compiler;
+ if target_compiler.stage == 0 {
+ if !target_compiler.is_snapshot(builder) {
+ panic!("rustdoc in stage 0 must be snapshot rustdoc");
diff --git a/user/rust/0030-libc-linkage.patch b/user/rust/0030-libc-linkage.patch
index 754074355..686320961 100644
--- a/user/rust/0030-libc-linkage.patch
+++ b/user/rust/0030-libc-linkage.patch
@@ -1,23 +1,33 @@
---- a/vendor/libc/src/unix/mod.rs
-+++ b/vendor/libc/src/unix/mod.rs
-@@ -287,11 +287,7 @@ cfg_if! {
+--- rustc-1.34.2-src/vendor/libc/src/lib.rs
++++ rustc-1.34.2-src/vendor/libc/src/lib.rs
+@@ -153,6 +153,7 @@
+ #![cfg_attr(feature = "rustc-dep-of-std", feature(cfg_target_vendor))]
+ #![cfg_attr(feature = "rustc-dep-of-std", feature(link_cfg, repr_packed))]
+ #![cfg_attr(feature = "rustc-dep-of-std", feature(no_core))]
++#![cfg_attr(feature = "rustc-dep-of-std", feature(static_nobundle))]
+ #![cfg_attr(feature = "rustc-dep-of-std", no_core)]
+ #![cfg_attr(feature = "rustc-dep-of-std", allow(warnings))]
+ #![cfg_attr(not(any(feature = "use_std", feature = "rustc-dep-of-std")), no_std)]
+--- rustc-1.34.2-src/vendor/libc/src/unix/mod.rs
++++ rustc-1.34.2-src/vendor/libc/src/unix/mod.rs
+@@ -287,11 +287,11 @@ cfg_if! {
// cargo build, don't pull in anything extra as the libstd dep
// already pulls in all libs.
} else if #[cfg(target_env = "musl")] {
-- #[cfg_attr(feature = "rustc-dep-of-std",
++ #[link(name = "c")]
++ extern {}
+ #[cfg_attr(feature = "rustc-dep-of-std",
- link(name = "c", kind = "static",
-- cfg(target_feature = "crt-static")))]
++ link(name = "gcc", kind = "static-nobundle",
+ cfg(target_feature = "crt-static")))]
- #[cfg_attr(feature = "rustc-dep-of-std",
- link(name = "c", cfg(not(target_feature = "crt-static"))))]
-+ #[link(name = "c")]
extern {}
} else if #[cfg(target_os = "emscripten")] {
#[link(name = "c")]
-diff --git rustc-1.33.0-src/vendor/libc/.cargo-checksum.json.orig rustc-1.33.0-src/vendor/libc/.cargo-checksum.json
-index b580eeb..4f3a87d 100644
---- rustc-1.33.0-src/vendor/libc/.cargo-checksum.json.orig
-+++ rustc-1.33.0-src/vendor/libc/.cargo-checksum.json
+--- rustc-1.34.2-src/vendor/libc/.cargo-checksum.json
++++ rustc-1.34.2-src/vendor/libc/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"e1bbf88a55a1ba674f5192fe1585b57a51751ee6c5aa7edeb87df8027c3bb912","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"40ddea9181e5374cf535aae33ad4ace80bd9b1beea8f881ff8d2b777da9489b2","build.rs":"2d1cbe87e0478de12a15a230d7ef0997020ba845b5b7d221d74cd2ce3fe0e720","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"640375751825b8d4adf4fb089a53c4d883f265f96b07daf06f2dcf3acf6639c9","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"b4b96dcba47797a6160c07f29982dd15d48fd2813d7d1000484bd9adc4a89de1","src/fuchsia/aarch64.rs":"40dce617877e606e92353491e1913711b1ecfa510bb983156f4a8460f490419e","src/fuchsia/mod.rs":"784dee21605f00a41d7cae1fc3d782646a84515a687a4952700eae51cc3840f0","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"d456d34fc58c8d194f8f24201b4021860f61c5f125904bb8dcc954d1f813f6b7","src/macros.rs":"29d61c13523328c4742a7290dbb7d718ce198740824592e029199e9df5429b20","src/redox/mod.rs":"87cb35a988be84d45e79206f7cb5d098e8e7c5a1825cfcd0bd663453dedc3103","src/redox/net.rs":"f2e1922883f208cb46c00744da4a68feccfbec576c6981978ad404e46f818c8b","src/sgx.rs":"18d33a470d06c15b00be5a3bf45b6e51da6104ae7437f50c0eccbd3b79994389","src/switch.rs":"00365ed196519b260fc99a32f02d60b3fb1aaf0484654b19fec8c25bc1687420","src/unix/bsd/apple/b32.rs":"da60c99ee3d773f9c0767b93ccf18b67ad67576e2c58e2e86d05b23c23fd989a","src/unix/bsd/apple/b64.rs":"0cc15406c3a91abde65b28c7783ccab7801474ecc51c78dbd1d7332d4b834390","src/unix/bsd/apple/mod.rs":"b0e2d1f7fdb71d7a02bc5994c66a5ae660955227a0c0f808172a30b38fd40299","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"6c69319675328d4d16939c9c2aba3fb8ca9381a8b390d18d766949307090304b","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"6bbb3c3cf0753f32a2e61ac0f011a6c5e870a0814a6ed4eb9bb9dcdc58a9dca3","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"596def64669e2f27cffebca8e5c682ee7d576f84f8f99771c27e86ce8e818221","src/unix/bsd/mod.rs":"0c846b3a2c9390dfe090603f1ad643b107cc7e7605866c5399aa81dfea4e74bd","src/unix/bsd/netbsdlike/mod.rs":"9f55f35f8e4e26c7c63eaf67ddda0e40cc2abbabc2a68750809162e6f80144f1","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"f455848cd03cb80897776f2355dbd14bbb3aa88b1aa6aec22122ec47cdbd0f20","src/unix/bsd/netbsdlike/netbsd/arm.rs":"4c9eac982c385165f475ef3a80770fd634c6dde8fb400b3cb7e08c9bb7498af6","src/unix/bsd/netbsdlike/netbsd/mod.rs":"88617ada3bc740c5262926b9c45d7f51120d358522f051f0afdf7465edd13c29","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"183818c62dff72db6ee1d329d90ad8727628775ed5cd823c8485c6769003c91e","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"4db043327fb2615af2fb0f999d162310bea2294e7d050806e19a46b083561f16","src/unix/bsd/netbsdlike/netbsd/x86.rs":"979c4cbacbde37b9053f2c9df4b8f87d37b255436ef4a383e1e5f40ee21180d6","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"741353a1c6451efb0c7c7c486fd2cb54e3d36fd1c3dd280f6432d8858b0a5356","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"4d2ad2e885d83ad3134add61580f49a8e58cb03284ae328273a9e2e104a4d084","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"6e6f15e81597d85d83ca0eeb154e4f8b8e7f9cbb6a9cfa176601f78642ef94f9","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"6320b7bc7283dbc2a07cfb8b5a793c0153535601d050f33c1ff5e4a5cc57c2be","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"6adc0dcb1b358ef91bbeb5512e19ba6f40adc77b7d259cb11641a69426fc5ea2","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"97956c3a53aa07a2edf8865252f980dade0d34e930adca0e870e7344d7e2b0bb","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"b00fa310b6d835cb613a02101c7b1a72c636faec316586587cb63aebdcb9de8f","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"248c0b0abaa7d56a7dc3293e67a0ce70a4ef8c83638bda8aa222ad8bb0ef6801","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/mod.rs":"c5f3c6d74ac8e8ef83374b6115bab7c6e57297336a7635aa4c47462649b00dfb","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"eea5f1eb720184d9a00be966e4161fddb3733362fc349182e85b1599ba4e825f","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"19013f41ac8ccac034eb48777a4041d69342edb9ca25d4e0bb9c5938f62eef3e","src/unix/notbsd/emscripten.rs":"9ed47a0a5020c8f72d9496f87ef0da669c1ed2b85980013100c466f18cd8a4c5","src/unix/notbsd/linux/mips/mips32.rs":"a483ddfd10765b7d5090dc21686eee8842649cd21236828a42d634114885f5f9","src/unix/notbsd/linux/mips/mips64.rs":"9fff696e3943cf206b549d1ae13fa361828e9a8454e2d5730eeaa1c172ff370d","src/unix/notbsd/linux/mips/mod.rs":"d18a40011e9090a4a2a1f27e5bd96eb2503ac352f4809648e15841083d7f3a68","src/unix/notbsd/linux/mod.rs":"d84e95d36f9477fa1aa694bf18a919ba20e65aa71539c3f3dc06e8f92acee521","src/unix/notbsd/linux/musl/b32/arm.rs":"fdf170e03812072785ec531f1ae810d0c4feb9b29d0c316681b9f7affe1262c0","src/unix/notbsd/linux/musl/b32/mips.rs":"afa4981d93f29b3fb0083a73ce1323f7dce1392f90d5cf1966b1fae10d510033","src/unix/notbsd/linux/musl/b32/mod.rs":"540928f168f145c136f9dd729ffa12b9d1838d9fe664fc642365d17d7fae648f","src/unix/notbsd/linux/musl/b32/powerpc.rs":"16c615770a96f155540511f58b5a8070c9c7a43e12bdfed83996690e7558bcb5","src/unix/notbsd/linux/musl/b32/x86.rs":"3abf1610c68c37f407cdd0f93563c3542c024219e0e8c9888266a6ee014e0c87","src/unix/notbsd/linux/musl/b64/aarch64.rs":"d98643408c2837387988f78adc95c90ad21196a6f8f879e3d33d7e8ccf612640","src/unix/notbsd/linux/musl/b64/mod.rs":"d9285cd705e2e92552a08c9aa69b810e7e1bd0e9da6edf069c678af285579661","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"544d8a7f6d6d84143df8a4c3537c9a3a36bf3d338d7a1c15689b94492498d8d7","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"4e582af62a11e8a5235ccbeabe5b1003fc17705e606c1ed9b21b931a470681fc","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"26211878c6481861e11393625620edaa0700cac41f55f0118c0f0bd42c1b7520","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"1124ab5e974718b94fa40ae0f1772fb1c537910ef3e018b7c6c94a38b83dd742","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"fa8636fb93eab230ed53bdec0a06f5b81d6d982cc0800103563c8c1eefcdb2d9","src/unix/notbsd/linux/other/b64/powerpc64.rs":"a771d982ed8a9458e1f2f039f959b5075b22443159875ba5612eebba96661c24","src/unix/notbsd/linux/other/b64/sparc64.rs":"0caffe5924886f3aed187531dfe78189b3df40adb96782ec4b471647ff83e9b1","src/unix/notbsd/linux/other/b64/x32.rs":"06a26c5120ced30fc015c220799b67c4401be2f13fc6c7361bebd3d37ff4982d","src/unix/notbsd/linux/other/b64/x86_64.rs":"70d0cec088630502128c1c28ffef9dcc0fd9c0644f6a71b1325961d075625226","src/unix/notbsd/linux/other/mod.rs":"fe76beac87fc549b076078a0fa3e2ecd4c13b0e6e4fcb34a89e16c6584f5259b","src/unix/notbsd/linux/s390x.rs":"9e990574dfc22b6eb91bcc7c6f8297f9ad42f9183efb366a818be88180a3fac3","src/unix/notbsd/mod.rs":"a0fdecac118b70fb670f0fcccaa7f826440873448a96dd557fb1fe52cf391e89","src/unix/solaris/mod.rs":"7950a26f3eb0b7bc8e71f524cc2e05832b759fe2ce12a58e0c1957e0ec1286dc","src/unix/uclibc/mips/mips32.rs":"9739c5fb47f389a0394ef08ee30da97a3de0a1300020731a8cc0a033616011b2","src/unix/uclibc/mips/mips64.rs":"230583280bbc7b3c7fcdb61244f51fa1af5944ca127c7cf83c598fe2313713d0","src/unix/uclibc/mips/mod.rs":"2d76e6cfeb2b7f7c59231a6e099f1aed811a45659e62153aaf00c220b9488a9d","src/unix/uclibc/mod.rs":"521818507cef958376edfd8401c35db7ee1c51ee3cf106ad962002104a184cf5","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"419182836aedd426a5c9e6b8667058adf86ac8f43af73ce8d00c503f8ff8f414","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows/gnu.rs":"4d9033162cc6f7d245256c7b165c1ec18a741771fd9b99a55b421e8d14978599","src/windows/mod.rs":"7d74b12f71de86ee517a9cd93b1b38d0551646db0eaf526048abcbdd4bbeb250","src/windows/msvc.rs":"8f46cf66883c794175609a3b2bafaa094d0ba63eb6720ef1b84b175603f1074f"},"package":"023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"}
\ No newline at end of file
-+{"files":{"Cargo.toml":"e1bbf88a55a1ba674f5192fe1585b57a51751ee6c5aa7edeb87df8027c3bb912","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"40ddea9181e5374cf535aae33ad4ace80bd9b1beea8f881ff8d2b777da9489b2","build.rs":"2d1cbe87e0478de12a15a230d7ef0997020ba845b5b7d221d74cd2ce3fe0e720","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"640375751825b8d4adf4fb089a53c4d883f265f96b07daf06f2dcf3acf6639c9","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"b4b96dcba47797a6160c07f29982dd15d48fd2813d7d1000484bd9adc4a89de1","src/fuchsia/aarch64.rs":"40dce617877e606e92353491e1913711b1ecfa510bb983156f4a8460f490419e","src/fuchsia/mod.rs":"784dee21605f00a41d7cae1fc3d782646a84515a687a4952700eae51cc3840f0","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"d456d34fc58c8d194f8f24201b4021860f61c5f125904bb8dcc954d1f813f6b7","src/macros.rs":"29d61c13523328c4742a7290dbb7d718ce198740824592e029199e9df5429b20","src/redox/mod.rs":"87cb35a988be84d45e79206f7cb5d098e8e7c5a1825cfcd0bd663453dedc3103","src/redox/net.rs":"f2e1922883f208cb46c00744da4a68feccfbec576c6981978ad404e46f818c8b","src/sgx.rs":"18d33a470d06c15b00be5a3bf45b6e51da6104ae7437f50c0eccbd3b79994389","src/switch.rs":"00365ed196519b260fc99a32f02d60b3fb1aaf0484654b19fec8c25bc1687420","src/unix/bsd/apple/b32.rs":"da60c99ee3d773f9c0767b93ccf18b67ad67576e2c58e2e86d05b23c23fd989a","src/unix/bsd/apple/b64.rs":"0cc15406c3a91abde65b28c7783ccab7801474ecc51c78dbd1d7332d4b834390","src/unix/bsd/apple/mod.rs":"b0e2d1f7fdb71d7a02bc5994c66a5ae660955227a0c0f808172a30b38fd40299","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"6c69319675328d4d16939c9c2aba3fb8ca9381a8b390d18d766949307090304b","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"6bbb3c3cf0753f32a2e61ac0f011a6c5e870a0814a6ed4eb9bb9dcdc58a9dca3","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"596def64669e2f27cffebca8e5c682ee7d576f84f8f99771c27e86ce8e818221","src/unix/bsd/mod.rs":"0c846b3a2c9390dfe090603f1ad643b107cc7e7605866c5399aa81dfea4e74bd","src/unix/bsd/netbsdlike/mod.rs":"9f55f35f8e4e26c7c63eaf67ddda0e40cc2abbabc2a68750809162e6f80144f1","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"f455848cd03cb80897776f2355dbd14bbb3aa88b1aa6aec22122ec47cdbd0f20","src/unix/bsd/netbsdlike/netbsd/arm.rs":"4c9eac982c385165f475ef3a80770fd634c6dde8fb400b3cb7e08c9bb7498af6","src/unix/bsd/netbsdlike/netbsd/mod.rs":"88617ada3bc740c5262926b9c45d7f51120d358522f051f0afdf7465edd13c29","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"183818c62dff72db6ee1d329d90ad8727628775ed5cd823c8485c6769003c91e","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"4db043327fb2615af2fb0f999d162310bea2294e7d050806e19a46b083561f16","src/unix/bsd/netbsdlike/netbsd/x86.rs":"979c4cbacbde37b9053f2c9df4b8f87d37b255436ef4a383e1e5f40ee21180d6","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"741353a1c6451efb0c7c7c486fd2cb54e3d36fd1c3dd280f6432d8858b0a5356","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"4d2ad2e885d83ad3134add61580f49a8e58cb03284ae328273a9e2e104a4d084","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"6e6f15e81597d85d83ca0eeb154e4f8b8e7f9cbb6a9cfa176601f78642ef94f9","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"6320b7bc7283dbc2a07cfb8b5a793c0153535601d050f33c1ff5e4a5cc57c2be","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"6adc0dcb1b358ef91bbeb5512e19ba6f40adc77b7d259cb11641a69426fc5ea2","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"97956c3a53aa07a2edf8865252f980dade0d34e930adca0e870e7344d7e2b0bb","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"b00fa310b6d835cb613a02101c7b1a72c636faec316586587cb63aebdcb9de8f","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"248c0b0abaa7d56a7dc3293e67a0ce70a4ef8c83638bda8aa222ad8bb0ef6801","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/mod.rs":"3231196aa748186ad21063bb43c69b95c0d90ba32c5547c72f7c6ed343a100b7","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"eea5f1eb720184d9a00be966e4161fddb3733362fc349182e85b1599ba4e825f","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"19013f41ac8ccac034eb48777a4041d69342edb9ca25d4e0bb9c5938f62eef3e","src/unix/notbsd/emscripten.rs":"9ed47a0a5020c8f72d9496f87ef0da669c1ed2b85980013100c466f18cd8a4c5","src/unix/notbsd/linux/mips/mips32.rs":"a483ddfd10765b7d5090dc21686eee8842649cd21236828a42d634114885f5f9","src/unix/notbsd/linux/mips/mips64.rs":"9fff696e3943cf206b549d1ae13fa361828e9a8454e2d5730eeaa1c172ff370d","src/unix/notbsd/linux/mips/mod.rs":"d18a40011e9090a4a2a1f27e5bd96eb2503ac352f4809648e15841083d7f3a68","src/unix/notbsd/linux/mod.rs":"d84e95d36f9477fa1aa694bf18a919ba20e65aa71539c3f3dc06e8f92acee521","src/unix/notbsd/linux/musl/b32/arm.rs":"fdf170e03812072785ec531f1ae810d0c4feb9b29d0c316681b9f7affe1262c0","src/unix/notbsd/linux/musl/b32/mips.rs":"afa4981d93f29b3fb0083a73ce1323f7dce1392f90d5cf1966b1fae10d510033","src/unix/notbsd/linux/musl/b32/mod.rs":"540928f168f145c136f9dd729ffa12b9d1838d9fe664fc642365d17d7fae648f","src/unix/notbsd/linux/musl/b32/powerpc.rs":"16c615770a96f155540511f58b5a8070c9c7a43e12bdfed83996690e7558bcb5","src/unix/notbsd/linux/musl/b32/x86.rs":"3abf1610c68c37f407cdd0f93563c3542c024219e0e8c9888266a6ee014e0c87","src/unix/notbsd/linux/musl/b64/aarch64.rs":"d98643408c2837387988f78adc95c90ad21196a6f8f879e3d33d7e8ccf612640","src/unix/notbsd/linux/musl/b64/mod.rs":"d9285cd705e2e92552a08c9aa69b810e7e1bd0e9da6edf069c678af285579661","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"544d8a7f6d6d84143df8a4c3537c9a3a36bf3d338d7a1c15689b94492498d8d7","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"4e582af62a11e8a5235ccbeabe5b1003fc17705e606c1ed9b21b931a470681fc","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"26211878c6481861e11393625620edaa0700cac41f55f0118c0f0bd42c1b7520","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"1124ab5e974718b94fa40ae0f1772fb1c537910ef3e018b7c6c94a38b83dd742","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"fa8636fb93eab230ed53bdec0a06f5b81d6d982cc0800103563c8c1eefcdb2d9","src/unix/notbsd/linux/other/b64/powerpc64.rs":"a771d982ed8a9458e1f2f039f959b5075b22443159875ba5612eebba96661c24","src/unix/notbsd/linux/other/b64/sparc64.rs":"0caffe5924886f3aed187531dfe78189b3df40adb96782ec4b471647ff83e9b1","src/unix/notbsd/linux/other/b64/x32.rs":"06a26c5120ced30fc015c220799b67c4401be2f13fc6c7361bebd3d37ff4982d","src/unix/notbsd/linux/other/b64/x86_64.rs":"70d0cec088630502128c1c28ffef9dcc0fd9c0644f6a71b1325961d075625226","src/unix/notbsd/linux/other/mod.rs":"fe76beac87fc549b076078a0fa3e2ecd4c13b0e6e4fcb34a89e16c6584f5259b","src/unix/notbsd/linux/s390x.rs":"9e990574dfc22b6eb91bcc7c6f8297f9ad42f9183efb366a818be88180a3fac3","src/unix/notbsd/mod.rs":"a0fdecac118b70fb670f0fcccaa7f826440873448a96dd557fb1fe52cf391e89","src/unix/solaris/mod.rs":"7950a26f3eb0b7bc8e71f524cc2e05832b759fe2ce12a58e0c1957e0ec1286dc","src/unix/uclibc/mips/mips32.rs":"9739c5fb47f389a0394ef08ee30da97a3de0a1300020731a8cc0a033616011b2","src/unix/uclibc/mips/mips64.rs":"230583280bbc7b3c7fcdb61244f51fa1af5944ca127c7cf83c598fe2313713d0","src/unix/uclibc/mips/mod.rs":"2d76e6cfeb2b7f7c59231a6e099f1aed811a45659e62153aaf00c220b9488a9d","src/unix/uclibc/mod.rs":"521818507cef958376edfd8401c35db7ee1c51ee3cf106ad962002104a184cf5","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"419182836aedd426a5c9e6b8667058adf86ac8f43af73ce8d00c503f8ff8f414","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows/gnu.rs":"4d9033162cc6f7d245256c7b165c1ec18a741771fd9b99a55b421e8d14978599","src/windows/mod.rs":"7d74b12f71de86ee517a9cd93b1b38d0551646db0eaf526048abcbdd4bbeb250","src/windows/msvc.rs":"8f46cf66883c794175609a3b2bafaa094d0ba63eb6720ef1b84b175603f1074f"},"package":"023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"}
++{"files":{"Cargo.toml":"e1bbf88a55a1ba674f5192fe1585b57a51751ee6c5aa7edeb87df8027c3bb912","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"40ddea9181e5374cf535aae33ad4ace80bd9b1beea8f881ff8d2b777da9489b2","build.rs":"2d1cbe87e0478de12a15a230d7ef0997020ba845b5b7d221d74cd2ce3fe0e720","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"640375751825b8d4adf4fb089a53c4d883f265f96b07daf06f2dcf3acf6639c9","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"b4b96dcba47797a6160c07f29982dd15d48fd2813d7d1000484bd9adc4a89de1","src/fuchsia/aarch64.rs":"40dce617877e606e92353491e1913711b1ecfa510bb983156f4a8460f490419e","src/fuchsia/mod.rs":"784dee21605f00a41d7cae1fc3d782646a84515a687a4952700eae51cc3840f0","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"69850cc2630e101768e05f78b35a0ee29875c519eb4817d5bd2c1d542fae8c1d","src/macros.rs":"29d61c13523328c4742a7290dbb7d718ce198740824592e029199e9df5429b20","src/redox/mod.rs":"87cb35a988be84d45e79206f7cb5d098e8e7c5a1825cfcd0bd663453dedc3103","src/redox/net.rs":"f2e1922883f208cb46c00744da4a68feccfbec576c6981978ad404e46f818c8b","src/sgx.rs":"18d33a470d06c15b00be5a3bf45b6e51da6104ae7437f50c0eccbd3b79994389","src/switch.rs":"00365ed196519b260fc99a32f02d60b3fb1aaf0484654b19fec8c25bc1687420","src/unix/bsd/apple/b32.rs":"da60c99ee3d773f9c0767b93ccf18b67ad67576e2c58e2e86d05b23c23fd989a","src/unix/bsd/apple/b64.rs":"0cc15406c3a91abde65b28c7783ccab7801474ecc51c78dbd1d7332d4b834390","src/unix/bsd/apple/mod.rs":"b0e2d1f7fdb71d7a02bc5994c66a5ae660955227a0c0f808172a30b38fd40299","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"6c69319675328d4d16939c9c2aba3fb8ca9381a8b390d18d766949307090304b","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"6bbb3c3cf0753f32a2e61ac0f011a6c5e870a0814a6ed4eb9bb9dcdc58a9dca3","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"596def64669e2f27cffebca8e5c682ee7d576f84f8f99771c27e86ce8e818221","src/unix/bsd/mod.rs":"0c846b3a2c9390dfe090603f1ad643b107cc7e7605866c5399aa81dfea4e74bd","src/unix/bsd/netbsdlike/mod.rs":"9f55f35f8e4e26c7c63eaf67ddda0e40cc2abbabc2a68750809162e6f80144f1","src/unix/bsd/netbsdlike/netbsd/aarch64.rs":"f455848cd03cb80897776f2355dbd14bbb3aa88b1aa6aec22122ec47cdbd0f20","src/unix/bsd/netbsdlike/netbsd/arm.rs":"4c9eac982c385165f475ef3a80770fd634c6dde8fb400b3cb7e08c9bb7498af6","src/unix/bsd/netbsdlike/netbsd/mod.rs":"88617ada3bc740c5262926b9c45d7f51120d358522f051f0afdf7465edd13c29","src/unix/bsd/netbsdlike/netbsd/powerpc.rs":"183818c62dff72db6ee1d329d90ad8727628775ed5cd823c8485c6769003c91e","src/unix/bsd/netbsdlike/netbsd/sparc64.rs":"4db043327fb2615af2fb0f999d162310bea2294e7d050806e19a46b083561f16","src/unix/bsd/netbsdlike/netbsd/x86.rs":"979c4cbacbde37b9053f2c9df4b8f87d37b255436ef4a383e1e5f40ee21180d6","src/unix/bsd/netbsdlike/netbsd/x86_64.rs":"741353a1c6451efb0c7c7c486fd2cb54e3d36fd1c3dd280f6432d8858b0a5356","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"4d2ad2e885d83ad3134add61580f49a8e58cb03284ae328273a9e2e104a4d084","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"6e6f15e81597d85d83ca0eeb154e4f8b8e7f9cbb6a9cfa176601f78642ef94f9","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"6320b7bc7283dbc2a07cfb8b5a793c0153535601d050f33c1ff5e4a5cc57c2be","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"6adc0dcb1b358ef91bbeb5512e19ba6f40adc77b7d259cb11641a69426fc5ea2","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"97956c3a53aa07a2edf8865252f980dade0d34e930adca0e870e7344d7e2b0bb","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"b00fa310b6d835cb613a02101c7b1a72c636faec316586587cb63aebdcb9de8f","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"248c0b0abaa7d56a7dc3293e67a0ce70a4ef8c83638bda8aa222ad8bb0ef6801","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/mod.rs":"3c5aad2e7ac5e8781158cd140ed07afb1e0ad5eb7fc4b7b0a7bf7f5d8d2ebe32","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"eea5f1eb720184d9a00be966e4161fddb3733362fc349182e85b1599ba4e825f","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"19013f41ac8ccac034eb48777a4041d69342edb9ca25d4e0bb9c5938f62eef3e","src/unix/notbsd/emscripten.rs":"9ed47a0a5020c8f72d9496f87ef0da669c1ed2b85980013100c466f18cd8a4c5","src/unix/notbsd/linux/mips/mips32.rs":"a483ddfd10765b7d5090dc21686eee8842649cd21236828a42d634114885f5f9","src/unix/notbsd/linux/mips/mips64.rs":"9fff696e3943cf206b549d1ae13fa361828e9a8454e2d5730eeaa1c172ff370d","src/unix/notbsd/linux/mips/mod.rs":"d18a40011e9090a4a2a1f27e5bd96eb2503ac352f4809648e15841083d7f3a68","src/unix/notbsd/linux/mod.rs":"d84e95d36f9477fa1aa694bf18a919ba20e65aa71539c3f3dc06e8f92acee521","src/unix/notbsd/linux/musl/b32/arm.rs":"fdf170e03812072785ec531f1ae810d0c4feb9b29d0c316681b9f7affe1262c0","src/unix/notbsd/linux/musl/b32/mips.rs":"afa4981d93f29b3fb0083a73ce1323f7dce1392f90d5cf1966b1fae10d510033","src/unix/notbsd/linux/musl/b32/mod.rs":"540928f168f145c136f9dd729ffa12b9d1838d9fe664fc642365d17d7fae648f","src/unix/notbsd/linux/musl/b32/powerpc.rs":"16c615770a96f155540511f58b5a8070c9c7a43e12bdfed83996690e7558bcb5","src/unix/notbsd/linux/musl/b32/x86.rs":"3abf1610c68c37f407cdd0f93563c3542c024219e0e8c9888266a6ee014e0c87","src/unix/notbsd/linux/musl/b64/aarch64.rs":"d98643408c2837387988f78adc95c90ad21196a6f8f879e3d33d7e8ccf612640","src/unix/notbsd/linux/musl/b64/mod.rs":"d9285cd705e2e92552a08c9aa69b810e7e1bd0e9da6edf069c678af285579661","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"544d8a7f6d6d84143df8a4c3537c9a3a36bf3d338d7a1c15689b94492498d8d7","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"4e582af62a11e8a5235ccbeabe5b1003fc17705e606c1ed9b21b931a470681fc","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"26211878c6481861e11393625620edaa0700cac41f55f0118c0f0bd42c1b7520","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"1124ab5e974718b94fa40ae0f1772fb1c537910ef3e018b7c6c94a38b83dd742","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"fa8636fb93eab230ed53bdec0a06f5b81d6d982cc0800103563c8c1eefcdb2d9","src/unix/notbsd/linux/other/b64/powerpc64.rs":"a771d982ed8a9458e1f2f039f959b5075b22443159875ba5612eebba96661c24","src/unix/notbsd/linux/other/b64/sparc64.rs":"0caffe5924886f3aed187531dfe78189b3df40adb96782ec4b471647ff83e9b1","src/unix/notbsd/linux/other/b64/x32.rs":"06a26c5120ced30fc015c220799b67c4401be2f13fc6c7361bebd3d37ff4982d","src/unix/notbsd/linux/other/b64/x86_64.rs":"70d0cec088630502128c1c28ffef9dcc0fd9c0644f6a71b1325961d075625226","src/unix/notbsd/linux/other/mod.rs":"fe76beac87fc549b076078a0fa3e2ecd4c13b0e6e4fcb34a89e16c6584f5259b","src/unix/notbsd/linux/s390x.rs":"9e990574dfc22b6eb91bcc7c6f8297f9ad42f9183efb366a818be88180a3fac3","src/unix/notbsd/mod.rs":"a0fdecac118b70fb670f0fcccaa7f826440873448a96dd557fb1fe52cf391e89","src/unix/solaris/mod.rs":"7950a26f3eb0b7bc8e71f524cc2e05832b759fe2ce12a58e0c1957e0ec1286dc","src/unix/uclibc/mips/mips32.rs":"9739c5fb47f389a0394ef08ee30da97a3de0a1300020731a8cc0a033616011b2","src/unix/uclibc/mips/mips64.rs":"230583280bbc7b3c7fcdb61244f51fa1af5944ca127c7cf83c598fe2313713d0","src/unix/uclibc/mips/mod.rs":"2d76e6cfeb2b7f7c59231a6e099f1aed811a45659e62153aaf00c220b9488a9d","src/unix/uclibc/mod.rs":"521818507cef958376edfd8401c35db7ee1c51ee3cf106ad962002104a184cf5","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"419182836aedd426a5c9e6b8667058adf86ac8f43af73ce8d00c503f8ff8f414","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows/gnu.rs":"4d9033162cc6f7d245256c7b165c1ec18a741771fd9b99a55b421e8d14978599","src/windows/mod.rs":"7d74b12f71de86ee517a9cd93b1b38d0551646db0eaf526048abcbdd4bbeb250","src/windows/msvc.rs":"8f46cf66883c794175609a3b2bafaa094d0ba63eb6720ef1b84b175603f1074f"},"package":"023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"}
diff --git a/user/rust/0031-typenum-pmmx.patch b/user/rust/0031-typenum-pmmx.patch
new file mode 100644
index 000000000..6b3c5df57
--- /dev/null
+++ b/user/rust/0031-typenum-pmmx.patch
@@ -0,0 +1,33 @@
+From 0d5196feadafa77c727f517d747ffcf3fd0e8ba9 Mon Sep 17 00:00:00 2001
+From: Michael Hudson-Doyle <michael.hudson@canonical.com>
+Date: Wed, 13 Mar 2019 15:55:30 +1300
+Subject: [PATCH] round result of (highest as f64).log(2.0)
+
+Even though (1024f64).log(2.0) has an exact, representable, value, with
+rustc 1.32 on i386 it comes out as +9.999999999999999985 with
+optimization enabled. And the rustc doesn't like having two defintions
+for U1024 etc.
+
+---
+ build/main.rs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git rustc-1.35.0-src/vendor/typenum/build/main.rs rustc-1.35.0-src/vendor/typenum/build/main.rs
+index 16b0ffe2f..b7939f993 100644
+--- rustc-1.35.0-src/vendor/typenum/build/main.rs
++++ rustc-1.35.0-src/vendor/typenum/build/main.rs
+@@ -81,7 +81,7 @@ pub fn no_std() {}
+ fn main() {
+ let highest: u64 = 1024;
+
+- let first2: u32 = (highest as f64).log(2.0) as u32 + 1;
++ let first2: u32 = (highest as f64).log(2.0).round() as u32 + 1;
+ let first10: u32 = (highest as f64).log(10.0) as u32 + 1;
+ let uints = (0..(highest + 1))
+ .chain((first2..64).map(|i| 2u64.pow(i)))
+--- rustc-1.35.0-src/vendor/typenum/.cargo-checksum.json
++++ rustc-1.35.0-src/vendor/typenum/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CHANGELOG.md":"caf37574d41c38570e892c4fed38cbc2fd22794ec512949c1f0faad1d866fced","Cargo.toml":"58822547c70a09449e6a069e6c197423a9e471d993ebf4ea20101e042781edf7","LICENSE":"a825bd853ab71619a4923d7b4311221427848070ff44d990da39b0b274c1683f","README.md":"7a19a1fb2f219fbc270535e0fee2caa96968b976cd74d33d12e2f2ef436d0895","build/main.rs":"44d33ee79a76a90a769096547ba4c7a5d3822afffeed025dfbcc5bb755227d52","build/op.rs":"a393b6818384a50688db8cb923891f86ccce39a9dccbf7c684efb9bef83b4acf","build/tests.rs":"a04fd3185ea8b19c36cb939178e5fedf16b4b36c2df0a2e79593339d998bd1ce","src/array.rs":"7243dbe44f3818c852c67bd0c3af14d57473fb9c3efda2c0d98251b3fe8b4d57","src/bit.rs":"023f9f6768331ac17de72b6248c6a9d6a7b856842f56067c9c1e04b729ed9e04","src/int.rs":"de4c49717a7a40572e579fad2380f29698c5571844ff1462e368531072dba55e","src/lib.rs":"2a58ff8553851eb6b9d7fa70315d688431dd0573f8491e53cfe799a092347b96","src/marker_traits.rs":"abf73f3930b5129d01aaa64c51275c4ca4ce0ef8961f7a9e744ee731d6308200","src/operator_aliases.rs":"43eb6a29dc0387ec329df5d9af0b4479a1301b3a9b2304c3b7b7d8c03e01ff5d","src/private.rs":"48c572aa27bd444062eadb4bd3f5ca38c1e6efb66bc074f38555499b33f0dcaf","src/type_operators.rs":"df9ef3ae2a69d56258db41f8166342a65f6e4085581709140719d1b7e3916bb9","src/uint.rs":"df4fdad3110a7e08fdc21e49f7e82fd525d6a78fcf904a766729aa47c0200727","tests/test.rs":"1e559fadf0af1a38d7049caef26e3a162c58ea5e024aa637299376d776986549"},"package":"612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"}
+\ No newline at end of file
++{"files":{"CHANGELOG.md":"caf37574d41c38570e892c4fed38cbc2fd22794ec512949c1f0faad1d866fced","Cargo.toml":"58822547c70a09449e6a069e6c197423a9e471d993ebf4ea20101e042781edf7","LICENSE":"a825bd853ab71619a4923d7b4311221427848070ff44d990da39b0b274c1683f","README.md":"7a19a1fb2f219fbc270535e0fee2caa96968b976cd74d33d12e2f2ef436d0895","build/main.rs":"38a90c85068bb6bba1d21e9d5976e693b9b868ed0c16b26986332d2ca1c01047","build/op.rs":"a393b6818384a50688db8cb923891f86ccce39a9dccbf7c684efb9bef83b4acf","build/tests.rs":"a04fd3185ea8b19c36cb939178e5fedf16b4b36c2df0a2e79593339d998bd1ce","src/array.rs":"7243dbe44f3818c852c67bd0c3af14d57473fb9c3efda2c0d98251b3fe8b4d57","src/bit.rs":"023f9f6768331ac17de72b6248c6a9d6a7b856842f56067c9c1e04b729ed9e04","src/int.rs":"de4c49717a7a40572e579fad2380f29698c5571844ff1462e368531072dba55e","src/lib.rs":"2a58ff8553851eb6b9d7fa70315d688431dd0573f8491e53cfe799a092347b96","src/marker_traits.rs":"abf73f3930b5129d01aaa64c51275c4ca4ce0ef8961f7a9e744ee731d6308200","src/operator_aliases.rs":"43eb6a29dc0387ec329df5d9af0b4479a1301b3a9b2304c3b7b7d8c03e01ff5d","src/private.rs":"48c572aa27bd444062eadb4bd3f5ca38c1e6efb66bc074f38555499b33f0dcaf","src/type_operators.rs":"df9ef3ae2a69d56258db41f8166342a65f6e4085581709140719d1b7e3916bb9","src/uint.rs":"df4fdad3110a7e08fdc21e49f7e82fd525d6a78fcf904a766729aa47c0200727","tests/test.rs":"1e559fadf0af1a38d7049caef26e3a162c58ea5e024aa637299376d776986549"},"package":"612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"}
diff --git a/user/rust/0040-rls-atomics.patch b/user/rust/0040-rls-atomics.patch
index 4dd813faa..8e441001b 100644
--- a/user/rust/0040-rls-atomics.patch
+++ b/user/rust/0040-rls-atomics.patch
@@ -1,7 +1,5 @@
-diff --git a/src/tools/rls/src/cmd.rs b/src/tools/rls/src/cmd.rs
-index 64035aa..d9129d8 100644
---- a/src/tools/rls/src/cmd.rs
-+++ b/src/tools/rls/src/cmd.rs
+--- a/src/tools/rls/rls/src/cmd.rs
++++ b/src/tools/rls/rls/src/cmd.rs
@@ -17,7 +17,7 @@ use crate::config::Config;
use crate::server::{self, LsService, Notification, Request, RequestId};
use rls_analysis::{AnalysisHost, Target};
@@ -9,9 +7,9 @@ index 64035aa..d9129d8 100644
-use std::sync::atomic::{AtomicU64, Ordering};
+use std::sync::atomic::{AtomicU32, Ordering};
- use languageserver_types::{
+ use lsp_types::{
ClientCapabilities, CodeActionContext, CodeActionParams, CompletionItem,
-@@ -424,8 +424,8 @@ fn url(file_name: &str) -> Url {
+@@ -323,8 +323,8 @@ fn url(file_name: &str) -> Url {
}
fn next_id() -> RequestId {
@@ -22,10 +20,8 @@ index 64035aa..d9129d8 100644
}
// Custom reader and output for the RLS server.
-diff --git a/src/tools/rls/src/server/io.rs b/src/tools/rls/src/server/io.rs
-index 7b93d4a..f3c5361 100644
---- a/src/tools/rls/src/server/io.rs
-+++ b/src/tools/rls/src/server/io.rs
+--- a/src/tools/rls/rls/src/server/io.rs
++++ b/src/tools/rls/rls/src/server/io.rs
@@ -17,7 +17,7 @@ use crate::lsp_data::{LSPNotification, LSPRequest};
use std::fmt;
@@ -35,7 +31,7 @@ index 7b93d4a..f3c5361 100644
use std::sync::Arc;
use jsonrpc_core::{self as jsonrpc, response, version, Id};
-@@ -190,14 +190,14 @@ pub trait Output: Sync + Send + Clone + 'static {
+@@ -182,13 +182,13 @@ pub trait Output: Sync + Send + Clone + 'static {
/// An output that sends notifications and responses on `stdout`.
#[derive(Clone)]
pub(super) struct StdioOutput {
@@ -45,14 +41,13 @@ index 7b93d4a..f3c5361 100644
impl StdioOutput {
/// Construct a new `stdout` output.
- crate fn new() -> StdioOutput {
- StdioOutput {
-- next_id: Arc::new(AtomicU64::new(1)),
-+ next_id: Arc::new(AtomicU32::new(1).into()),
- }
+ pub(crate) fn new() -> StdioOutput {
+- StdioOutput { next_id: Arc::new(AtomicU64::new(1)) }
++ StdioOutput { next_id: Arc::new(AtomicU32::new(1).into()) }
}
}
-@@ -215,7 +215,7 @@ impl Output for StdioOutput {
+
+@@ -205,7 +205,7 @@ impl Output for StdioOutput {
}
fn provide_id(&self) -> RequestId {
diff --git a/user/rust/0050-LLVM-8.0-compatibility.patch b/user/rust/0050-LLVM-8.0-compatibility.patch
deleted file mode 100644
index a8bffb2b9..000000000
--- a/user/rust/0050-LLVM-8.0-compatibility.patch
+++ /dev/null
@@ -1,310 +0,0 @@
-From 78ff5598497c95a696ca669f88a93d127aa24c8d Mon Sep 17 00:00:00 2001
-From: Josh Stone <jistone@redhat.com>
-Date: Wed, 16 Jan 2019 09:59:03 -0800
-Subject: [PATCH 08/15] LLVM 8.0 compatibility
-
-Backported from commit df0466d upstream.
----
- src/librustc_codegen_llvm/debuginfo/mod.rs | 15 ++--
- src/librustc_codegen_llvm/llvm/ffi.rs | 22 +++--
- src/rustllvm/PassWrapper.cpp | 7 +-
- src/rustllvm/RustWrapper.cpp | 93 ++++++++++++++++++++--
- src/test/codegen/enum-debug-clike.rs | 5 +-
- 5 files changed, 123 insertions(+), 19 deletions(-)
-
-diff --git a/src/librustc_codegen_llvm/debuginfo/mod.rs b/src/librustc_codegen_llvm/debuginfo/mod.rs
-index 2eab626ae8..7aca63caa4 100644
---- a/src/librustc_codegen_llvm/debuginfo/mod.rs
-+++ b/src/librustc_codegen_llvm/debuginfo/mod.rs
-@@ -12,7 +12,7 @@ use self::source_loc::InternalDebugLocation::{self, UnknownLocation};
-
- use llvm;
- use llvm::debuginfo::{DIFile, DIType, DIScope, DIBuilder, DISubprogram, DIArray, DIFlags,
-- DILexicalBlock};
-+ DISPFlags, DILexicalBlock};
- use rustc::hir::CodegenFnAttrFlags;
- use rustc::hir::def_id::{DefId, CrateNum};
- use rustc::ty::subst::{Substs, UnpackedKind};
-@@ -283,7 +283,6 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
- let linkage_name = mangled_name_of_instance(self, instance);
-
- let scope_line = span_start(self, span).line;
-- let is_local_to_unit = is_node_local_to_unit(self, def_id);
-
- let function_name = CString::new(name).unwrap();
- let linkage_name = SmallCStr::new(&linkage_name.as_str());
-@@ -301,6 +300,14 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
- flags |= DIFlags::FlagNoReturn;
- }
-
-+ let mut spflags = DISPFlags::SPFlagDefinition;
-+ if is_node_local_to_unit(self, def_id) {
-+ spflags |= DISPFlags::SPFlagLocalToUnit;
-+ }
-+ if self.sess().opts.optimize != config::OptLevel::No {
-+ spflags |= DISPFlags::SPFlagOptimized;
-+ }
-+
- let fn_metadata = unsafe {
- llvm::LLVMRustDIBuilderCreateFunction(
- DIB(self),
-@@ -310,11 +317,9 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
- file_metadata,
- loc.line as c_uint,
- function_type_metadata,
-- is_local_to_unit,
-- true,
- scope_line as c_uint,
- flags,
-- self.sess().opts.optimize != config::OptLevel::No,
-+ spflags,
- llfn,
- template_parameters,
- None)
-diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/src/librustc_codegen_llvm/llvm/ffi.rs
-index 11e34f600c..853c1ff004 100644
---- a/src/librustc_codegen_llvm/llvm/ffi.rs
-+++ b/src/librustc_codegen_llvm/llvm/ffi.rs
-@@ -2,7 +2,7 @@ use super::debuginfo::{
- DIBuilder, DIDescriptor, DIFile, DILexicalBlock, DISubprogram, DIType,
- DIBasicType, DIDerivedType, DICompositeType, DIScope, DIVariable,
- DIGlobalVariableExpression, DIArray, DISubrange, DITemplateTypeParameter, DIEnumerator,
-- DINameSpace, DIFlags,
-+ DINameSpace, DIFlags, DISPFlags,
- };
-
- use libc::{c_uint, c_int, size_t, c_char};
-@@ -591,6 +591,20 @@ pub mod debuginfo {
- const FlagMainSubprogram = (1 << 21);
- }
- }
-+
-+ // These values **must** match with LLVMRustDISPFlags!!
-+ bitflags! {
-+ #[repr(C)]
-+ #[derive(Default)]
-+ pub struct DISPFlags: ::libc::uint32_t {
-+ const SPFlagZero = 0;
-+ const SPFlagVirtual = 1;
-+ const SPFlagPureVirtual = 2;
-+ const SPFlagLocalToUnit = (1 << 2);
-+ const SPFlagDefinition = (1 << 3);
-+ const SPFlagOptimized = (1 << 4);
-+ }
-+ }
- }
-
- extern { pub type ModuleBuffer; }
-@@ -1387,11 +1401,9 @@ extern "C" {
- File: &'a DIFile,
- LineNo: c_uint,
- Ty: &'a DIType,
-- isLocalToUnit: bool,
-- isDefinition: bool,
- ScopeLine: c_uint,
- Flags: DIFlags,
-- isOptimized: bool,
-+ SPFlags: DISPFlags,
- Fn: &'a Value,
- TParam: &'a DIArray,
- Decl: Option<&'a DIDescriptor>)
-@@ -1529,7 +1541,7 @@ extern "C" {
- AlignInBits: u32,
- Elements: &'a DIArray,
- ClassType: &'a DIType,
-- IsFixed: bool)
-+ IsScoped: bool)
- -> &'a DIType;
-
- pub fn LLVMRustDIBuilderCreateUnionType(Builder: &DIBuilder<'a>,
-diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp
-index df7a81643b..18d277be21 100644
---- a/src/rustllvm/PassWrapper.cpp
-+++ b/src/rustllvm/PassWrapper.cpp
-@@ -789,7 +789,7 @@ struct LLVMRustThinLTOData {
- StringMap<GVSummaryMapTy> ModuleToDefinedGVSummaries;
-
- #if LLVM_VERSION_GE(7, 0)
-- LLVMRustThinLTOData() : Index(/* isPerformingAnalysis = */ false) {}
-+ LLVMRustThinLTOData() : Index(/* HaveGVs = */ false) {}
- #endif
- };
-
-@@ -865,7 +865,12 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules,
- auto deadIsPrevailing = [&](GlobalValue::GUID G) {
- return PrevailingType::Unknown;
- };
-+#if LLVM_VERSION_GE(8, 0)
-+ computeDeadSymbolsWithConstProp(Ret->Index, Ret->GUIDPreservedSymbols,
-+ deadIsPrevailing, /* ImportEnabled = */ true);
-+#else
- computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols, deadIsPrevailing);
-+#endif
- #else
- computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols);
- #endif
-diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
-index 9d3e6f93b0..7905e9f0f2 100644
---- a/src/rustllvm/RustWrapper.cpp
-+++ b/src/rustllvm/RustWrapper.cpp
-@@ -294,7 +294,7 @@ extern "C" void LLVMRustSetHasUnsafeAlgebra(LLVMValueRef V) {
- extern "C" LLVMValueRef
- LLVMRustBuildAtomicLoad(LLVMBuilderRef B, LLVMValueRef Source, const char *Name,
- LLVMAtomicOrdering Order) {
-- LoadInst *LI = new LoadInst(unwrap(Source), 0);
-+ LoadInst *LI = new LoadInst(unwrap(Source));
- LI->setAtomic(fromRust(Order));
- return wrap(unwrap(B)->Insert(LI, Name));
- }
-@@ -511,6 +511,71 @@ static DINode::DIFlags fromRust(LLVMRustDIFlags Flags) {
- return Result;
- }
-
-+// These values **must** match debuginfo::DISPFlags! They also *happen*
-+// to match LLVM, but that isn't required as we do giant sets of
-+// matching below. The value shouldn't be directly passed to LLVM.
-+enum class LLVMRustDISPFlags : uint32_t {
-+ SPFlagZero = 0,
-+ SPFlagVirtual = 1,
-+ SPFlagPureVirtual = 2,
-+ SPFlagLocalToUnit = (1 << 2),
-+ SPFlagDefinition = (1 << 3),
-+ SPFlagOptimized = (1 << 4),
-+ // Do not add values that are not supported by the minimum LLVM
-+ // version we support! see llvm/include/llvm/IR/DebugInfoFlags.def
-+ // (In LLVM < 8, createFunction supported these as separate bool arguments.)
-+};
-+
-+inline LLVMRustDISPFlags operator&(LLVMRustDISPFlags A, LLVMRustDISPFlags B) {
-+ return static_cast<LLVMRustDISPFlags>(static_cast<uint32_t>(A) &
-+ static_cast<uint32_t>(B));
-+}
-+
-+inline LLVMRustDISPFlags operator|(LLVMRustDISPFlags A, LLVMRustDISPFlags B) {
-+ return static_cast<LLVMRustDISPFlags>(static_cast<uint32_t>(A) |
-+ static_cast<uint32_t>(B));
-+}
-+
-+inline LLVMRustDISPFlags &operator|=(LLVMRustDISPFlags &A, LLVMRustDISPFlags B) {
-+ return A = A | B;
-+}
-+
-+inline bool isSet(LLVMRustDISPFlags F) { return F != LLVMRustDISPFlags::SPFlagZero; }
-+
-+inline LLVMRustDISPFlags virtuality(LLVMRustDISPFlags F) {
-+ return static_cast<LLVMRustDISPFlags>(static_cast<uint32_t>(F) & 0x3);
-+}
-+
-+#if LLVM_VERSION_GE(8, 0)
-+static DISubprogram::DISPFlags fromRust(LLVMRustDISPFlags SPFlags) {
-+ DISubprogram::DISPFlags Result = DISubprogram::DISPFlags::SPFlagZero;
-+
-+ switch (virtuality(SPFlags)) {
-+ case LLVMRustDISPFlags::SPFlagVirtual:
-+ Result |= DISubprogram::DISPFlags::SPFlagVirtual;
-+ break;
-+ case LLVMRustDISPFlags::SPFlagPureVirtual:
-+ Result |= DISubprogram::DISPFlags::SPFlagPureVirtual;
-+ break;
-+ default:
-+ // The rest are handled below
-+ break;
-+ }
-+
-+ if (isSet(SPFlags & LLVMRustDISPFlags::SPFlagLocalToUnit)) {
-+ Result |= DISubprogram::DISPFlags::SPFlagLocalToUnit;
-+ }
-+ if (isSet(SPFlags & LLVMRustDISPFlags::SPFlagDefinition)) {
-+ Result |= DISubprogram::DISPFlags::SPFlagDefinition;
-+ }
-+ if (isSet(SPFlags & LLVMRustDISPFlags::SPFlagOptimized)) {
-+ Result |= DISubprogram::DISPFlags::SPFlagOptimized;
-+ }
-+
-+ return Result;
-+}
-+#endif
-+
- extern "C" uint32_t LLVMRustDebugMetadataVersion() {
- return DEBUG_METADATA_VERSION;
- }
-@@ -575,16 +640,26 @@ LLVMRustDIBuilderCreateSubroutineType(LLVMRustDIBuilderRef Builder,
- extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
- LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
- const char *LinkageName, LLVMMetadataRef File, unsigned LineNo,
-- LLVMMetadataRef Ty, bool IsLocalToUnit, bool IsDefinition,
-- unsigned ScopeLine, LLVMRustDIFlags Flags, bool IsOptimized,
-- LLVMValueRef Fn, LLVMMetadataRef TParam, LLVMMetadataRef Decl) {
-+ LLVMMetadataRef Ty, unsigned ScopeLine, LLVMRustDIFlags Flags,
-+ LLVMRustDISPFlags SPFlags, LLVMValueRef Fn, LLVMMetadataRef TParam,
-+ LLVMMetadataRef Decl) {
- DITemplateParameterArray TParams =
- DITemplateParameterArray(unwrap<MDTuple>(TParam));
-+#if LLVM_VERSION_GE(8, 0)
-+ DISubprogram *Sub = Builder->createFunction(
-+ unwrapDI<DIScope>(Scope), Name, LinkageName, unwrapDI<DIFile>(File),
-+ LineNo, unwrapDI<DISubroutineType>(Ty), ScopeLine, fromRust(Flags),
-+ fromRust(SPFlags), TParams, unwrapDIPtr<DISubprogram>(Decl));
-+#else
-+ bool IsLocalToUnit = isSet(SPFlags & LLVMRustDISPFlags::SPFlagLocalToUnit);
-+ bool IsDefinition = isSet(SPFlags & LLVMRustDISPFlags::SPFlagDefinition);
-+ bool IsOptimized = isSet(SPFlags & LLVMRustDISPFlags::SPFlagOptimized);
- DISubprogram *Sub = Builder->createFunction(
- unwrapDI<DIScope>(Scope), Name, LinkageName, unwrapDI<DIFile>(File),
- LineNo, unwrapDI<DISubroutineType>(Ty), IsLocalToUnit, IsDefinition,
- ScopeLine, fromRust(Flags), IsOptimized, TParams,
- unwrapDIPtr<DISubprogram>(Decl));
-+#endif
- unwrap<Function>(Fn)->setSubprogram(Sub);
- return wrap(Sub);
- }
-@@ -773,14 +848,14 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(
- LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
- LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
- uint32_t AlignInBits, LLVMMetadataRef Elements,
-- LLVMMetadataRef ClassTy, bool IsFixed) {
-+ LLVMMetadataRef ClassTy, bool IsScoped) {
- #if LLVM_VERSION_GE(7, 0)
- return wrap(Builder->createEnumerationType(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
- SizeInBits, AlignInBits, DINodeArray(unwrapDI<MDTuple>(Elements)),
-- unwrapDI<DIType>(ClassTy), "", IsFixed));
-+ unwrapDI<DIType>(ClassTy), "", IsScoped));
- #else
-- // Ignore IsFixed on older LLVM.
-+ // Ignore IsScoped on older LLVM.
- return wrap(Builder->createEnumerationType(
- unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
- SizeInBits, AlignInBits, DINodeArray(unwrapDI<MDTuple>(Elements)),
-@@ -920,7 +995,11 @@ extern "C" void LLVMRustUnpackOptimizationDiagnostic(
- if (loc.isValid()) {
- *Line = loc.getLine();
- *Column = loc.getColumn();
-+#if LLVM_VERSION_GE(8, 0)
-+ FilenameOS << loc.getAbsolutePath();
-+#else
- FilenameOS << loc.getFilename();
-+#endif
- }
-
- RawRustStringOstream MessageOS(MessageOut);
-diff --git a/src/test/codegen/enum-debug-clike.rs b/src/test/codegen/enum-debug-clike.rs
-index 98f07505f7..62cfef5a84 100644
---- a/src/test/codegen/enum-debug-clike.rs
-+++ b/src/test/codegen/enum-debug-clike.rs
-@@ -8,8 +8,11 @@
-
- // compile-flags: -g -C no-prepopulate-passes
-
-+// DIFlagFixedEnum was deprecated in 8.0, renamed to DIFlagEnumClass.
-+// We match either for compatibility.
-+
- // CHECK-LABEL: @main
--// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_enumeration_type,{{.*}}name: "E",{{.*}}flags: DIFlagFixedEnum,{{.*}}
-+// CHECK: {{.*}}DICompositeType{{.*}}tag: DW_TAG_enumeration_type,{{.*}}name: "E",{{.*}}flags: {{(DIFlagEnumClass|DIFlagFixedEnum)}},{{.*}}
- // CHECK: {{.*}}DIEnumerator{{.*}}name: "A",{{.*}}value: {{[0-9].*}}
- // CHECK: {{.*}}DIEnumerator{{.*}}name: "B",{{.*}}value: {{[0-9].*}}
- // CHECK: {{.*}}DIEnumerator{{.*}}name: "C",{{.*}}value: {{[0-9].*}}
---
-2.19.2
-
diff --git a/user/rust/APKBUILD b/user/rust/APKBUILD
index e855f770f..2cb95de28 100644
--- a/user/rust/APKBUILD
+++ b/user/rust/APKBUILD
@@ -3,9 +3,9 @@
# Contributor: Jeizsm <jeizsm@gmail.com>
# Maintainer: Samuel Holland <samuel@sholland.org>
pkgname=rust
-pkgver=1.33.0
-_bootcargover=0.33.0
-_bootver=1.32.0
+pkgver=1.34.2
+_bootcargover=0.34.0
+_bootver=1.33.0
_llvmver=8
pkgrel=0
pkgdesc="The Rust Programming Language"
@@ -51,16 +51,17 @@ source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz
0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
- 0008-test-enum-debug-Correct-minimum-LLVM-version.patch
+ 0008-Correct-minimum-system-LLVM-version-in-tests.patch
0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
0011-Ignore-broken-and-non-applicable-tests.patch
0012-Link-stage-2-tools-dynamically-to-libstd.patch
0013-Move-debugger-scripts-to-usr-share-rust.patch
0014-Add-foxkit-target-specs.patch
+ 0020-bootstrap-rustdoc.patch
0030-libc-linkage.patch
+ 0031-typenum-pmmx.patch
0040-rls-atomics.patch
- 0050-LLVM-8.0-compatibility.patch
"
builddir="$srcdir/rustc-$pkgver-src"
_rlibdir="/usr/lib/rustlib/$CTARGET/lib"
@@ -139,8 +140,6 @@ check() {
src/test/pretty \
src/test/run-fail \
src/test/run-fail/pretty \
- src/test/run-fail-fulldeps \
- src/test/run-fail-fulldeps/pretty \
src/test/run-make \
src/test/run-make-fulldeps \
src/test/run-pass \
@@ -189,6 +188,7 @@ gdb() {
install_if="$pkgname=$pkgver-r$pkgrel gdb"
_mv "$pkgdir"/usr/bin/rust-gdb "$subpkgdir"/usr/bin
+ _mv "$pkgdir"/usr/bin/rust-gdbgui "$subpkgdir"/usr/bin
_mv "$pkgdir"/usr/share/rust/gdb_*.py "$subpkgdir"/usr/share/rust || true
}
@@ -290,24 +290,24 @@ _mv() {
mkdir -p "$dest"
mv "$@"
}
-sha512sums="3291e4e19f75f44c81e6fcf4c01edc7c9d326eca43722381231abcf2e99f4314059ba59a29b79f5511ad9421c358c45e8fe18584d6954d17fe2aabad0f9d9147 rustc-1.33.0-src.tar.xz
-24caa7730dd41f61b97bb909d499f928cebab948e814b786e7d3836e92188ef27da48147532e063b3cec424e41a4374581274f21dc79bb95cf310f92c8609579 cargo-0.33.0-powerpc64-foxkit-linux-musl.tar.xz
-c6d237d6daaae1e8a342691917bdc76fa6a59f5bd99a1df38baebf6d5c1ddc6f8460ac6e1db8168120accb9c5f90f652ea013b4d865c486c72e90244be753ebd rust-std-1.32.0-powerpc64-foxkit-linux-musl.tar.xz
-8ff3bca961e146593f17e1581d20eaeae99768a4fac65258cf5ef80ef69b427a4980fd345b69b831028ca3e882d52d2ebd42a2eccab2c812da09e2bc28960ffe rustc-1.32.0-powerpc64-foxkit-linux-musl.tar.xz
-a5e03a091b224b9cd3cd6d8a0b1ac70389f374c95ff09f55b01e739b3a98a8551d2208b2750137ebaacbb8628d1bb54a96aaeb938c961e4eb33a071594bce1dc 0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
-bf387aad3d117e30621bd1914c3a713a710db0639413d57802c3a9bba49bf422dedf5e03b4a3073ec1efbd571cbcd10b6a0b3f98f2b019555581db5599b84f44 0002-Fix-LLVM-build.patch
-b931204afaf3ac4c73f41c29586b0cebdb06867bf401717a473c2367ebf25be1a42827f7ccccea50c15006c744cb73fc7ea9627816d0a2b53421546a4e478436 0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
-da362880f89a2df8223ed255d44803e9d7d8115666946fe3a4fe4a78030cd8ee40d6aabc1ceaab110e62e9a67af7631729348f71f2d514458ef0a60e6decff3b 0004-Require-static-native-libraries-when-linking-static-.patch
-1bdc441cb068697c7f6984e16bdde28bdd17b7a2517c33b666851d55f1d987a76e4d7f034b7221538c663c0a33603d8ac1f60ffb167a4a5d01677a7b214ab21d 0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
-03580acc8391a7b32fb2a7880c6a924838803e8ce4771e465f24b7a09263b9b0ca7ae4fd84770c262cf25734d49ab0f838d57104b181224b901e26f25dc9d2e9 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
-8e06768d0723aca0dd292942381255061b83505da89bc45c8c8c280dcaf3184e1b05b3744559fc3ed576f9a726bd593d892a71e8fd81bfebee62bb86d62f5531 0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
-52138d4cc238ee44eafabfe281e3378298d510c9ffd9f123a5934f33b7e68b6fa262605c044bfce5943b18983d0145bdf33b9c168e030fee892247ef7ce4ec19 0008-test-enum-debug-Correct-minimum-LLVM-version.patch
-34be92c7ce327f488b7a933e7232890615b3d07c08a09028d712c01aa53f89025b47aaaccdc5c2e1d52948eb967b40ea2c576b29b0102feadc7153d6d9984f79 0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
-47b025edccb7e2d7c42353c3a8665714a3b5661a7d832a9bd71bf9bff75ffe7c6e90a9d55b765dadec54ce29c2539fa894801487718ac1053bd4528b413a487d 0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
-c32c5d807ec23f5e88f47f83220a117ff3f048cec4731e50d0cae082c971ea03993a6e4f95225046a0b06b406608ee97fb85671ad8f86e5da4970bba210388d6 0011-Ignore-broken-and-non-applicable-tests.patch
-6b089c21b3b756d5d8b3198f4a914d8a2f90216ce25d491f7caeb0a637d0f729e9e5184dfa3e07b50570df5791576d1aa4bf2a1f33183c67bc2ba6ba36c0752e 0012-Link-stage-2-tools-dynamically-to-libstd.patch
-d9568a3e21b60831b193c4a9554756d0be77d0c63d06d6c3ff1c7fd35822aaa3b2e2cf8acd29fe07eb698ebf48673245e052a6ddfa4d39bb687eea8c4c236e50 0013-Move-debugger-scripts-to-usr-share-rust.patch
-f1269241ccddf4594752b97e6856dad98ca987d2491b1bd95f6123352eec52f3acb3f17dae1c2a42be55e25db4a7e0d6bb1fb2b468cc139ad14559e0753a4c87 0014-Add-foxkit-target-specs.patch
-7197503a3bf1cdd6cb5ff3350add2682cc64f7d33f7a4b270c53321401e439de5c24ddb2f7c5a76bb3488c8b766237f674fedaa9202c480f53595d7837214f0f 0030-libc-linkage.patch
-41ab9d6f361ee2fba267c9836c1a382dc86101d1bfb59cd942be8e8fc526ad65d845c9395cba7f760808d345d107f32e75af9057d67c450b8fbdd8a73636fb2e 0040-rls-atomics.patch
-ba39acb52fb65eb203ad08735b5d1c9150e49f9d0abd5e87a849d40c22e5847043521154cbb529fb3cc39005b309cafda5422fbd5a3598dac519db4456f6c571 0050-LLVM-8.0-compatibility.patch"
+sha512sums="f1bd2b226d90aae8a4657e6117b9a8451d4ce8129f79cc0fce0da7613a3b7800e690bc0ede8fec20a2f5f32c13fa8e22ac97d3838e0d36936793535a75d9c381 rustc-1.34.2-src.tar.xz
+74e83fec744c8d11b4a6136b3fb5a17f7464b40488da03052646ac7ac4aa505a69c9f557c8f25ae0d7dce38d62ef759fc7f6bb77e7cb36e7e7d8baf893b55d1b cargo-0.34.0-powerpc64-foxkit-linux-musl.tar.xz
+a05f52932883ac7bd5637540ede6435c481d9f53921767b890589e5e562753afc0636a44847a2fc61939f3c89923d7e2361ec5d3d8b406c494c9be547a51b278 rust-std-1.33.0-powerpc64-foxkit-linux-musl.tar.xz
+8654ac1c53e3220ed7dd350e57e2df563cf0849196c1cd63be61cd31666c5ac91b146740690b6b47451e34041bfd9109e9c0faec29ee7c7579503da3469979cd rustc-1.33.0-powerpc64-foxkit-linux-musl.tar.xz
+7d7bc8050be0eed5f5d99e13d0e20e28d49f4a04ce6b3ab8092498bb88e130d1331b09cf6a5c783b41c54b6a8003df91fd06788c02d5ae6a1f4d31e7ee40f1ca 0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
+afb07e4cd986e83ad96e80b8d961b39a203d62275d21466014331953ae1ff48112138d3393a32e21da77b469f4cf91a91da770112588820585e8ba784efce2ab 0002-Fix-LLVM-build.patch
+3346ae2b1c3918f95a9eda766ff7aa94afed4cc6219997d0ca2d2c711c81a6639f682bdc4be17b033dbebe2a95ccce58ce4975946d0eee8a66acef2634747f77 0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
+2ccb3991bde11a6b84363bdb838fb2c6b0bbffa7464e415abdd9a1786ef8fcbd6bc8da53cb5a3fc2a886ed0b91e661beb38fdc866aeed42f5fba2f8bb3c2f16f 0004-Require-static-native-libraries-when-linking-static-.patch
+752d06412050839eeabd7cd39b818636474e927cce6de130527af9bf3b1015f89bf05a09e43cb26ed8aaf8f51219fdaf4d7d434e1c6fd567b9314d8c4e791700 0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
+b588abcdf8adc220dc2f4d0719db67e24625ed7f67fd6de7249cc7ebea532b226a77309c8b9b7bc6678e3934056f0db75157b21185f8687113fc0b932af9c654 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
+c3ae8541c150506ea8321da4333e1ac070e64757065718b59aeb0b56f0d8633a1b82c7bde939809a38c2bd23ee504b0015a4b3be836f3602714d2317999c627b 0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
+4158215ba30307bebed8df251b593a1558b854951e43ada373f9c3a05c247aa9c2842da4e67c4ec715ea0533ea58843a563a932d61e150a16870856c66bb7a43 0008-Correct-minimum-system-LLVM-version-in-tests.patch
+3d28550681e1e6a81fa132d34a0200f3d1802e3165c68b9dd0dd8e13f81d347c7c5a100b4ad7f539d456e3dab601f6983266047c8f7a1fe42d8c058151ff8ddd 0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
+0190a8b85ecf710c645f4bf8f6ae96cbafbcce26f6254596bde8a1ae2031ed4fdf5f36330464571a1131f8e174f856de0f3c16cc5b11d454219433e120bdb752 0010-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
+7a8a371edae0b3af198d0b85a6fb13e4b68f55e756d3b2d8a60b9e244b377861116dfb9af1110e7669d4e338fa7e1ba608881708ee616336f4b4937c9424f827 0011-Ignore-broken-and-non-applicable-tests.patch
+7c5ff39d875eee3f68d6c6c83af930962041139b4e4c3a6bc2bab754063b5ee5439dfb5d2777e902e70535c7863a8406d149e7330e9eb27ebe0d4d5eee2479a6 0012-Link-stage-2-tools-dynamically-to-libstd.patch
+69ed8b4ba346fbd283abb06b7979a0c5b3597650ac68169d81a218e3e79e2dd872f5ed969fcf233aa989daf3af09197584cc9035d43b1fb3982a805235d88ac3 0013-Move-debugger-scripts-to-usr-share-rust.patch
+dd988e59b8be1bbb297e4484fd98a0c6cbd61fa86fd3956c9dd55d5e21a59f790422744b534f95683b217ed30c32186701117d47e59af7417d51074fd3dac81c 0014-Add-foxkit-target-specs.patch
+15a20249250aacc9792b7edc0bdcc9b49f25231b4e28070991c9af821b1a78debe2d4c27a1c60976abd137fa25ed010e0796b107ba162d190a48791adedab3bc 0020-bootstrap-rustdoc.patch
+95b5f807cf5f0d47b6d329b34685a329dfb7f3b394aa4acc4147ecd3cd6b62299558df6526d661e1dfade76e147a4e9b00d2d9340268b89fdaabedf42c27e6d0 0030-libc-linkage.patch
+e3ef894dfd77270f3ab34c5b694d96f43e91f2d01ccdf7a3685ee6d930a279dda378251422d432c25a30dc15a2e44356353e2c0cf952e8339ec8f82942fb6cbf 0040-rls-atomics.patch"