diff --git a/extra/rust/build b/extra/rust/build index 3397c621..f02d3b3e 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-08-15 + cache_dir=build/cache/2019-09-26 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 e60ce06e..6570ccd3 100644 --- a/extra/rust/checksums +++ b/extra/rust/checksums @@ -1,5 +1,5 @@ -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 +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 diff --git a/extra/rust/patches/musl-libressl.patch b/extra/rust/patches/musl-libressl.patch index dd356185..ed1f2404 100644 --- a/extra/rust/patches/musl-libressl.patch +++ b/extra/rust/patches/musl-libressl.patch @@ -1,75 +1,29 @@ diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs -index 4cd793ada..562cf3e05 100644 +index 6ea32edfb..9d6d10f7f 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs -@@ -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. +@@ -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. - if target.contains("musl") { -- 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. ++ if target.contains("noop") { + for &obj in &["crt1.o", "crti.o", "crtn.o"] { + builder.copy( + &builder.musl_root(target).unwrap().join("lib").join(obj), diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs -index 4e3930c8d..3b1095480 100644 +index bffe748f3..40f9f597f 100644 --- a/src/bootstrap/sanity.rs +++ b/src/bootstrap/sanity.rs -@@ -187,34 +187,6 @@ pub fn check(build: &mut Build) { - } +@@ -188,7 +188,7 @@ pub fn check(build: &mut Build) { } -- // Make sure musl-root is valid + // Make sure musl-root is valid - if target.contains("musl") { -- // 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 ++ 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 { 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 @@ -84,56 +38,46 @@ index e294e6398..17fecb3b2 100644 base.crt_static_respected = true; diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs -index da31a49dd..dd0b89227 100644 +index f24d957d6..4632212fd 100644 --- a/src/libunwind/build.rs +++ b/src/libunwind/build.rs -@@ -13,9 +13,7 @@ fn main() { - #[cfg(all(not(bootstrap), feature = "llvm-libunwind"))] +@@ -10,7 +10,7 @@ fn main() { + // Build the unwinding from libunwind C/C++ source code. llvm_libunwind::compile(); } else if target.contains("linux") { - if target.contains("musl") { -- // 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") { ++ if target.contains("noop") { + // linking for musl is handled in lib.rs + llvm_libunwind::compile(); + } else if !target.contains("android") { diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs -index 8d9164471..9a6411c60 100644 +index 8d9164471..3adaaf43d 100644 --- a/src/libunwind/lib.rs +++ b/src/libunwind/lib.rs -@@ -20,11 +20,6 @@ cfg_if::cfg_if! { +@@ -20,7 +20,7 @@ cfg_if::cfg_if! { } } -#[cfg(target_env = "musl")] --#[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"))] ++#[cfg(target_env = "noop")] + #[link(name = "unwind", kind = "static", 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 8295dfc02..c1740ff5d 100644 +index 721d24116..26bf271cd 100644 --- a/vendor/libc/src/unix/mod.rs +++ b/vendor/libc/src/unix/mod.rs -@@ -296,13 +296,6 @@ cfg_if! { +@@ -296,7 +296,7 @@ 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")] { -- #[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 {} ++ } else if #[cfg(target_env = "noop")] { + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", kind = "static", + cfg(target_feature = "crt-static")))] diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs -index 02b93b90a..ff66ca180 100644 +index 02b93b90a..27deca5fe 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 f2f15a83..a1e63232 100644 --- a/extra/rust/sources +++ b/extra/rust/sources @@ -1,5 +1,5 @@ -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 +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 patches/musl-libressl.patch diff --git a/extra/rust/version b/extra/rust/version index 99afb349..07fabd51 100644 --- a/extra/rust/version +++ b/extra/rust/version @@ -1 +1 @@ -1.38.0 1 +1.39.0 1