From 7b6bcca76ece24a6e7548c67d38f1a6d21932899 Mon Sep 17 00:00:00 2001 From: Dylan Araps Date: Thu, 7 Nov 2019 20:22:16 +0000 Subject: [PATCH] rust: revert to 1.38.0. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1594827 --- extra/rust/build | 6 +- extra/rust/checksums | 10 +- extra/rust/patches/musl-libressl.patch | 126 ++++++++++++++++++------- extra/rust/sources | 8 +- extra/rust/version | 2 +- 5 files changed, 104 insertions(+), 48 deletions(-) diff --git a/extra/rust/build b/extra/rust/build index f02d3b3e..3397c621 100755 --- a/extra/rust/build +++ b/extra/rust/build @@ -5,11 +5,11 @@ # connection requirement per build further enabling checksums # and signature verification by KISS. { - cache_dir=build/cache/2019-09-26 + cache_dir=build/cache/2019-08-15 mkdir -p "$cache_dir" - for tarball in *.tar.gz\?no-extract; do - mv -f "$tarball" "$cache_dir/${tarball%%\?no-extract}" + for tarball in *.tar.gz\#no-extract; do + mv -f "$tarball" "$cache_dir/${tarball%%\#no-extract}" done } diff --git a/extra/rust/checksums b/extra/rust/checksums index 6570ccd3..e60ce06e 100644 --- a/extra/rust/checksums +++ b/extra/rust/checksums @@ -1,5 +1,5 @@ -b4a1f6b6a93931f270691aba4fc85eee032fecda973e6b9c774cd06857609357 rustc-1.39.0-src.tar.gz -56b87fdca1f41b634285593cae42fdbd5fe9632ef502336679362b283ed53c22 rust-std-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract -bb0166cbb1d31bcb09d79224e7ac43a80d9448b7199b5392a3852b3ec71840aa rustc-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract -bbf58bf638c5c4cf86caaa1bfe2835b3856d4ef46447c9942d5e59cc7654c5e4 cargo-0.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract -122b5d9b83778882bdd64d40fea98982f7d1db510e09fc64a4ece5add4fd99a2 musl-libressl.patch +644263ca7c7106f8ee8fcde6bb16910d246b30668a74be20b8c7e0e9f4a52d80 rustc-1.38.0-src.tar.gz +fa1d98bf18fb49ff58a70d51ff7924e4d1975f7812dc5217ea31652bf8b7bca4 rust-std-1.37.0-x86_64-unknown-linux-musl.tar.gz#no-extract +1981b67c0cbcaf37f40ee9576d6d1b9a554019e571fc4c49ee9457cf011e0f75 rustc-1.37.0-x86_64-unknown-linux-musl.tar.gz#no-extract +cbc10b662b36be72f94803bf3a977051648ccef29d914fede1fa7fff04c784b4 cargo-0.38.0-x86_64-unknown-linux-musl.tar.gz#no-extract +bdc6fa240226860d613c03d19180b810c389d5fa3a21dfc574e01c1c838b201a musl-libressl.patch diff --git a/extra/rust/patches/musl-libressl.patch b/extra/rust/patches/musl-libressl.patch index ed1f2404..dd356185 100644 --- a/extra/rust/patches/musl-libressl.patch +++ b/extra/rust/patches/musl-libressl.patch @@ -1,29 +1,75 @@ diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs -index 6ea32edfb..9d6d10f7f 100644 +index 4cd793ada..562cf3e05 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs -@@ -122,7 +122,7 @@ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: - // with a glibc-targeting toolchain, given we have the appropriate startup - // files. As those shipped with glibc won't work, copy the ones provided by - // musl so we have them on linux-gnu hosts. +@@ -115,28 +115,6 @@ impl Step for Std { + fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: Interned) { + let libdir = builder.sysroot_libdir(*compiler, target); + +- // Copies the crt(1,i,n).o startup objects +- // +- // Since musl supports fully static linking, we can cross link for it even +- // with a glibc-targeting toolchain, given we have the appropriate startup +- // files. As those shipped with glibc won't work, copy the ones provided by +- // musl so we have them on linux-gnu hosts. - if target.contains("musl") { -+ if target.contains("noop") { - for &obj in &["crt1.o", "crti.o", "crtn.o"] { - builder.copy( - &builder.musl_root(target).unwrap().join("lib").join(obj), +- for &obj in &["crt1.o", "crti.o", "crtn.o"] { +- builder.copy( +- &builder.musl_root(target).unwrap().join("lib").join(obj), +- &libdir.join(obj), +- ); +- } +- } else if target.ends_with("-wasi") { +- for &obj in &["crt1.o"] { +- builder.copy( +- &builder.wasi_root(target).unwrap().join("lib/wasm32-wasi").join(obj), +- &libdir.join(obj), +- ); +- } +- } +- + // 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. diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs -index bffe748f3..40f9f597f 100644 +index 4e3930c8d..3b1095480 100644 --- a/src/bootstrap/sanity.rs +++ b/src/bootstrap/sanity.rs -@@ -188,7 +188,7 @@ pub fn check(build: &mut Build) { +@@ -187,34 +187,6 @@ pub fn check(build: &mut Build) { + } } - // Make sure musl-root is valid +- // Make sure musl-root is valid - if target.contains("musl") { -+ if target.contains("noop") { - // If this is a native target (host is also musl) and no musl-root is given, - // fall back to the system toolchain in /usr before giving up - if build.musl_root(*target).is_none() && build.config.build == *target { +- // If this is a native target (host is also musl) and no musl-root is given, +- // fall back to the system toolchain in /usr before giving up +- if build.musl_root(*target).is_none() && build.config.build == *target { +- let target = build.config.target_config.entry(target.clone()) +- .or_default(); +- target.musl_root = Some("/usr".into()); +- } +- match build.musl_root(*target) { +- Some(root) => { +- if fs::metadata(root.join("lib/libc.a")).is_err() { +- panic!("couldn't find libc.a in musl dir: {}", +- root.join("lib").display()); +- } +- if fs::metadata(root.join("lib/libunwind.a")).is_err() { +- panic!("couldn't find libunwind.a in musl dir: {}", +- root.join("lib").display()); +- } +- } +- None => { +- panic!("when targeting MUSL either the rust.musl-root \ +- option or the target.$TARGET.musl-root option must \ +- be specified in config.toml") +- } +- } +- } +- + if target.contains("msvc") { + // There are three builds of cmake on windows: MSVC, MinGW, and + // Cygwin. The Cygwin build does not have generators for Visual diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/spec/linux_musl_base.rs index e294e6398..17fecb3b2 100644 --- a/src/librustc_target/spec/linux_musl_base.rs @@ -38,46 +84,56 @@ index e294e6398..17fecb3b2 100644 base.crt_static_respected = true; diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs -index f24d957d6..4632212fd 100644 +index da31a49dd..dd0b89227 100644 --- a/src/libunwind/build.rs +++ b/src/libunwind/build.rs -@@ -10,7 +10,7 @@ fn main() { - // Build the unwinding from libunwind C/C++ source code. +@@ -13,9 +13,7 @@ fn main() { + #[cfg(all(not(bootstrap), feature = "llvm-libunwind"))] llvm_libunwind::compile(); } else if target.contains("linux") { - if target.contains("musl") { -+ if target.contains("noop") { - // linking for musl is handled in lib.rs - llvm_libunwind::compile(); - } else if !target.contains("android") { +- // musl is handled in lib.rs +- } else if !target.contains("android") { ++ if !target.contains("android") { + println!("cargo:rustc-link-lib=gcc_s"); + } + } else if target.contains("freebsd") { diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs -index 8d9164471..3adaaf43d 100644 +index 8d9164471..9a6411c60 100644 --- a/src/libunwind/lib.rs +++ b/src/libunwind/lib.rs -@@ -20,7 +20,7 @@ cfg_if::cfg_if! { +@@ -20,11 +20,6 @@ cfg_if::cfg_if! { } } -#[cfg(target_env = "musl")] -+#[cfg(target_env = "noop")] - #[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))] +-#[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))] +-#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] +-extern {} +- + #[cfg(target_os = "redox")] + #[link(name = "gcc_eh", kind = "static-nobundle", cfg(target_feature = "crt-static"))] #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] - extern {} diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs -index 721d24116..26bf271cd 100644 +index 8295dfc02..c1740ff5d 100644 --- a/vendor/libc/src/unix/mod.rs +++ b/vendor/libc/src/unix/mod.rs -@@ -296,7 +296,7 @@ cfg_if! { +@@ -296,13 +296,6 @@ cfg_if! { } else if #[cfg(feature = "std")] { // cargo build, don't pull in anything extra as the libstd dep // already pulls in all libs. - } else if #[cfg(target_env = "musl")] { -+ } else if #[cfg(target_env = "noop")] { - #[cfg_attr(feature = "rustc-dep-of-std", - link(name = "c", kind = "static", - cfg(target_feature = "crt-static")))] +- #[cfg_attr(feature = "rustc-dep-of-std", +- link(name = "c", kind = "static", +- cfg(target_feature = "crt-static")))] +- #[cfg_attr(feature = "rustc-dep-of-std", +- link(name = "c", cfg(not(target_feature = "crt-static"))))] +- extern {} + } else if #[cfg(target_os = "emscripten")] { + #[link(name = "c")] + extern {} diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs -index 02b93b90a..27deca5fe 100644 +index 02b93b90a..ff66ca180 100644 --- a/vendor/openssl-sys/build/main.rs +++ b/vendor/openssl-sys/build/main.rs @@ -183,27 +183,30 @@ See rust-openssl README for more information: diff --git a/extra/rust/sources b/extra/rust/sources index a1e63232..f2f15a83 100644 --- a/extra/rust/sources +++ b/extra/rust/sources @@ -1,5 +1,5 @@ -https://static.rust-lang.org/dist/rustc-1.39.0-src.tar.gz -https://static.rust-lang.org/dist/2019-09-26/rust-std-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract -https://static.rust-lang.org/dist/2019-09-26/rustc-1.38.0-x86_64-unknown-linux-musl.tar.gz?no-extract -https://static.rust-lang.org/dist/2019-09-26/cargo-0.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract +https://static.rust-lang.org/dist/rustc-1.38.0-src.tar.gz +https://static.rust-lang.org/dist/2019-08-15/rust-std-1.37.0-x86_64-unknown-linux-musl.tar.gz#no-extract +https://static.rust-lang.org/dist/2019-08-15/rustc-1.37.0-x86_64-unknown-linux-musl.tar.gz#no-extract +https://static.rust-lang.org/dist/2019-08-15/cargo-0.38.0-x86_64-unknown-linux-musl.tar.gz#no-extract patches/musl-libressl.patch diff --git a/extra/rust/version b/extra/rust/version index 07fabd51..99afb349 100644 --- a/extra/rust/version +++ b/extra/rust/version @@ -1 +1 @@ -1.39.0 1 +1.38.0 1