diff options
author | Marat Safin <jeizsm@gmail.com> | 2017-10-23 16:30:50 +0300 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-10-24 19:15:53 +0200 |
commit | 864cff760f4be1e178c0f5f6a6385482ec6daa5c (patch) | |
tree | 4e7a9c710c3fa06e73a4f09ca73807df3d11dab9 /community/rust | |
parent | eed3f1e42bad7f8a63369246f2a366a6471ec06f (diff) | |
download | aports-864cff760f4be1e178c0f5f6a6385482ec6daa5c.tar.bz2 aports-864cff760f4be1e178c0f5f6a6385482ec6daa5c.tar.xz |
community/rust: upgrade to 1.19
Build fails when src/jemalloc is deleted, but it's really not used in
binaries built by rustc, so it should be okay.
Diffstat (limited to 'community/rust')
-rw-r--r-- | community/rust/APKBUILD | 16 | ||||
-rw-r--r-- | community/rust/alpine-allow-crt-static.patch | 41 | ||||
-rw-r--r-- | community/rust/fix-build.patch | 92 | ||||
-rw-r--r-- | community/rust/musl-support-dynamic-linking.patch | 59 |
4 files changed, 20 insertions, 188 deletions
diff --git a/community/rust/APKBUILD b/community/rust/APKBUILD index 62f9462f9c..0f4a237580 100644 --- a/community/rust/APKBUILD +++ b/community/rust/APKBUILD @@ -3,10 +3,10 @@ # Contributor: Jeizsm <jeizsm@gmail.com> # Maintainer: Jakub Jirutka <jakub@jirutka.cz> pkgname=rust -pkgver=1.18.0 +pkgver=1.19.0 _llvmver=3.9 -_bootver=1.17.0 -pkgrel=1 +_bootver=1.18.0 +pkgrel=0 pkgdesc="The Rust Programming Language (compiler)" url="http://www.rust-lang.org" arch="x86_64" @@ -34,11 +34,9 @@ source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.gz static-pie.patch need-rpath.patch minimize-rpath.patch - alpine-allow-crt-static.patch alpine-move-py-scripts-to-share.patch alpine-change-rpath-to-rustlib.patch alpine-target.patch - fix-build.patch check-rustc " builddir="$srcdir/rustc-$pkgver-src" @@ -54,7 +52,7 @@ prepare() { cd "$builddir" # Remove bundled dependencies. - rm -Rf src/llvm/ src/jemalloc/ + rm -Rf src/llvm/ # Make sure to use the system LLVM. printf '[target.%s]\nllvm_config = "/usr/lib/llvm%s/bin/llvm-config"\n' \ @@ -170,17 +168,15 @@ _mv() { mv $@ } -sha512sums="eff0460b647dfb3490e28d4dec4f9781d31a942f22de75d9bd1ba31591597226b6862ec5132e8b4fcdbcf6e6ffa085ca5dda7ff8260cd82388fc13e8d3b4a2eb rustc-1.18.0-src.tar.gz -b5db9ed04eac26c6fc62cde3f19d29837a5feea68e79165c23b5b5cade2e1d193f2399d27f7622b230996da9565f78825be154574f1cd59189ded8a03a766cfb musl-support-dynamic-linking.patch +sha512sums="080a8625fc15bc4fc17ab910bdcc0d9a88ce8922f1a3eb241d0f956b5799e4db6df45ebabb5497295c198be08686e5a94dff65569582fc6a5ecb9200cfee5c24 rustc-1.19.0-src.tar.gz +e797d4a21ffe5087e6a7c4d22302f0fbd8fdc2074195d7a0d22a8c52a1abe3269e14a3b865f26e13a4f70362922dd0dc5279d8a3d70617199705cc452181d889 musl-support-dynamic-linking.patch d4d39514eca638852307f470250fd12a21781e1e7944377744b7d50290d3a2ab3776fbdfccb7a9221f5da00ca694ac3a5b8c05f72c5e1a0c8711b684b16b1084 musl-fix-static-linking.patch 9ebfb10abb50d74ff08d257d85257ce70ac3ce834aa95a8901808497b14acf3ea898fb197de64d13554eb5feedabe9fd04fec2cc6a7bea9b1335684bfcdcd88b musl-fix-linux_musl_base.patch dc6432293bd060d5e3a73f25870867654fae61995dcd919e244a2dc686b6107556deed8c59ca6002182bfeff5ebc1ca2b89c4028ab0fbfb79e65defe47c9b4b0 llvm-with-ffi.patch 5aaf6715b27b8b786740a55b91216d47985fbef3ccb0ef7e6a81696a2823671f8306143f7ecf77e66af91ef1500072524b9b4c7569508922ad5268df6080fda1 static-pie.patch ff633f2a46c683ad698d1c09c98c06ce9ee9b8d55fa5593cdd485b439ebca3273794d29b5ff32b887be8666f52913a23af6e133c782bd0c4e2c88e306dd3a494 need-rpath.patch d352614e7c774e181decae210140e789de7fc090327ff371981ad28a11ce51c8c01b27c1101a24bb84d75ed2f706f67868f7dbc52196d4ccdf4ebd2d6d6b6b5e minimize-rpath.patch -b00997c65d1a451fafae8b547893c5cbf03f028d2d70f6971aa670f34c2d6fc82728c740ac4a9909fc1999925ff300e4525cfec745cb9c9521e564eb166872a2 alpine-allow-crt-static.patch 498f4649163974afc4f042c43cd0c15d36784031514201a2962061f288a9336c2bc9749f8d2308b8ce3656f8097b5fc5bef505f61e2a6ed422ef4153f5339d77 alpine-move-py-scripts-to-share.patch 8d6206f8c50856724cf7b4c1854ec82547f040358a1c7d44abeacc27a5c205a963b1fec51e58ec06c68d85bd2f68a9e6e27ebe457f39e8dd043de17758f5063f alpine-change-rpath-to-rustlib.patch e9935f88f959d37da9e696f2722569bc6da6ed17eddc8d496af4a2ee9a561d8e40bd7644089ee26114bb920e04ff05def18d70a6f2347545500d1a23ee96eefa alpine-target.patch -5c1bcd78d2579e1aeacd4f20d849f75127111fb2f06124531af370c7afdcf9ae78d9e3952911197c02099cdedfeb2335699f98568123bdd83c7acc1ddbae7f54 fix-build.patch 79549055dea81379c890b495c82456ab497a9179ec6702c59e11d0748bc668f47fc3d6a69c27a0545bb87c01318631dffc69260bf2d4badc75f53cbf7fad7528 check-rustc" diff --git a/community/rust/alpine-allow-crt-static.patch b/community/rust/alpine-allow-crt-static.patch deleted file mode 100644 index 5e81671f60..0000000000 --- a/community/rust/alpine-allow-crt-static.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Jakub Jirutka <jakub@jirutka.cz> -Date: Sat, 08 Aug 2016 14:49:00 +0200 -Subject: [PATCH] Allow to use -C target-feature=+crt-static on stable rustc - -Rust links system libraries statically on musl by default, but we want to -link dynamically. At the same time we want to allow users to optionally -use static linking. - -rustc already provides codegen option to change linking, but currently it's -allowed only for nightly builds. This patch just removes this check and so -allows to use it even on stable build. - -Build staticaly linked binary with rustc or cargo: - - $ rustc -C target-feature=+crt-static hello_world.rs - $ RUSTFLAGS="-C target-feature=+crt-static" cargo build - ---- a/src/librustc/session/mod.rs -+++ b/src/librustc/session/mod.rs -@@ -401,9 +401,9 @@ - // If we switched from the default then that's only allowed on nightly, so - // gate that here. - if (found_positive || found_negative) && (!is_nightly || !unstable_options) { -- self.fatal("specifying the `crt-static` target feature is only allowed \ -- on the nightly channel with `-Z unstable-options` passed \ -- as well"); -+ //self.fatal("specifying the `crt-static` target feature is only allowed \ -+ // on the nightly channel with `-Z unstable-options` passed \ -+ // as well"); - } - - return crt_static; ---- a/src/test/compile-fail/crt-static-gated.rs -+++ b/src/test/compile-fail/crt-static-gated.rs -@@ -10,5 +10,6 @@ - - // compile-flags:-C target-feature=+crt-static - // error-pattern: specifying the `crt-static` target feature is only allowed -+// ignore-test we just want this feature and no one will stop us! - - fn main() {} diff --git a/community/rust/fix-build.patch b/community/rust/fix-build.patch deleted file mode 100644 index 0a8482d731..0000000000 --- a/community/rust/fix-build.patch +++ /dev/null @@ -1,92 +0,0 @@ -diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs -index 56cbb4cecf2a..dc9dac736278 100644 ---- a/src/bootstrap/flags.rs -+++ b/src/bootstrap/flags.rs -@@ -242,11 +242,18 @@ Arguments: - let cwd = t!(env::current_dir()); - let paths = matches.free[1..].iter().map(|p| cwd.join(p)).collect::<Vec<_>>(); - -+ let cfg_file = matches.opt_str("config").map(PathBuf::from).or_else(|| { -+ if fs::metadata("config.toml").is_ok() { -+ Some(PathBuf::from("config.toml")) -+ } else { -+ None -+ } -+ }); - - // All subcommands can have an optional "Available paths" section - if matches.opt_present("verbose") { - let flags = Flags::parse(&["build".to_string()]); -- let mut config = Config::default(); -+ let mut config = Config::parse(&flags.build, cfg_file.clone()); - config.build = flags.build.clone(); - let mut build = Build::new(flags, config); - metadata::build(&mut build); -@@ -307,14 +314,6 @@ Arguments: - }; - - -- let cfg_file = matches.opt_str("config").map(PathBuf::from).or_else(|| { -- if fs::metadata("config.toml").is_ok() { -- Some(PathBuf::from("config.toml")) -- } else { -- None -- } -- }); -- - let mut stage = matches.opt_str("stage").map(|j| j.parse().unwrap()); - - if matches.opt_present("incremental") { -diff --git a/src/bootstrap/bin/main.rs b/src/bootstrap/bin/main.rs -index 5ca5ce1648f2..5ef18b89841f 100644 ---- a/src/bootstrap/bin/main.rs -+++ b/src/bootstrap/bin/main.rs -@@ -26,12 +26,6 @@ use bootstrap::{Flags, Config, Build}; - fn main() { - let args = env::args().skip(1).collect::<Vec<_>>(); - let flags = Flags::parse(&args); -- let mut config = Config::parse(&flags.build, flags.config.clone()); -- -- // compat with `./configure` while we're still using that -- if std::fs::metadata("config.mk").is_ok() { -- config.update_with_config_mk(); -- } -- -+ let config = Config::parse(&flags.build, flags.config.clone()); - Build::new(flags, config).build(); - } -diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs -index fd8aa320fb3d..902cd0997a8e 100644 ---- a/src/bootstrap/config.rs -+++ b/src/bootstrap/config.rs -@@ -15,7 +15,7 @@ - - use std::collections::HashMap; - use std::env; --use std::fs::File; -+use std::fs::{self, File}; - use std::io::prelude::*; - use std::path::PathBuf; - use std::process; -@@ -410,6 +410,12 @@ impl Config { - set(&mut config.rust_dist_src, t.src_tarball); - } - -+ -+ // compat with `./configure` while we're still using that -+ if fs::metadata("config.mk").is_ok() { -+ config.update_with_config_mk(); -+ } -+ - return config - } - -@@ -418,7 +424,7 @@ impl Config { - /// While we still have `./configure` this implements the ability to decode - /// that configuration into this. This isn't exactly a full-blown makefile - /// parser, but hey it gets the job done! -- pub fn update_with_config_mk(&mut self) { -+ fn update_with_config_mk(&mut self) { - let mut config = String::new(); - File::open("config.mk").unwrap().read_to_string(&mut config).unwrap(); - for line in config.lines() { diff --git a/community/rust/musl-support-dynamic-linking.patch b/community/rust/musl-support-dynamic-linking.patch index efbbd7f0b0..c6441272bb 100644 --- a/community/rust/musl-support-dynamic-linking.patch +++ b/community/rust/musl-support-dynamic-linking.patch @@ -16,18 +16,16 @@ diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs index 90fd31ecbd..28520a2c60 100644 --- a/src/bootstrap/bin/rustc.rs +++ b/src/bootstrap/bin/rustc.rs -@@ -205,6 +205,17 @@ fn main() { +@@ -205,6 +205,15 @@ fn main() { } } } + + if let Ok(s) = env::var("RUST_CRT_STATIC") { + if s == "true" { -+ cmd.arg("-Z").arg("unstable-options"); + cmd.arg("-C").arg("target-feature=+crt-static"); + } + if s == "false" { -+ cmd.arg("-Z").arg("unstable-options"); + cmd.arg("-C").arg("target-feature=-crt-static"); + } + } @@ -38,14 +36,21 @@ diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index 7c35151a6d..c83b6cc24c 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs -@@ -94,14 +94,17 @@ pub fn std_link(build: &Build, - t!(fs::create_dir_all(&libdir)); - add_to_sysroot(&out_dir, &libdir); +@@ -94,21 +94,24 @@ pub fn std_link(build: &Build, + let libdir = build.sysroot_libdir(target_compiler, target); + add_to_sysroot(&libdir, &libstd_stamp(build, compiler, target)); - if target.contains("musl") && !target.contains("mips") { + if target.contains("musl") { copy_musl_third_party_objects(build, target, &libdir); } + + if build.config.sanitizers && compiler.stage != 0 && target == "x86_64-apple-darwin" { + // The sanitizers are only built in stage1 or above, so the dylibs will + // be missing in stage0 and causes panic. See the `std()` function above + // for reason why the sanitizers are not built in stage0. + copy_apple_sanitizer_dylibs(&build.native_dir(target), "osx", &libdir); + } } /// Copies the crt(1,i,n).o startup objects @@ -144,22 +149,12 @@ diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs index 36a887e062..1075e4f0cf 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs -@@ -34,6 +34,7 @@ use syntax::parse::ParseSess; - use syntax::symbol::Symbol; - use syntax::{ast, codemap}; - use syntax::feature_gate::AttributeType; -+use syntax::feature_gate::UnstableFeatures; - use syntax_pos::{Span, MultiSpan}; - - use rustc_back::PanicStrategy; -@@ -380,6 +381,34 @@ impl Session { +@@ -380,6 +381,24 @@ impl Session { self.opts.debugging_opts.enable_nonzeroing_move_hints } + pub fn crt_static(&self) -> bool { + let requested_features = self.opts.cg.target_feature.split(','); -+ let unstable_options = self.opts.debugging_opts.unstable_options; -+ let is_nightly = UnstableFeatures::from_environment().is_nightly_build(); + let found_negative = requested_features.clone().any(|r| r == "-crt-static"); + let found_positive = requested_features.clone().any(|r| r == "+crt-static"); + @@ -173,14 +168,6 @@ index 36a887e062..1075e4f0cf 100644 + found_positive + }; + -+ // If we switched from the default then that's only allowed on nightly, so -+ // gate that here. -+ if (found_positive || found_negative) && (!is_nightly || !unstable_options) { -+ self.fatal("specifying the `crt-static` target feature is only allowed \ -+ on the nightly channel with `-Z unstable-options` passed \ -+ as well"); -+ } -+ + return crt_static; + } + @@ -235,21 +222,11 @@ diff --git a/src/librustc_driver/target_features.rs b/src/librustc_driver/target index 124e7aafcc..492ceecaf1 100644 --- a/src/librustc_driver/target_features.rs +++ b/src/librustc_driver/target_features.rs -@@ -12,7 +12,6 @@ use syntax::ast; - use llvm::LLVMRustHasFeature; - use rustc::session::Session; - use rustc_trans::back::write::create_target_machine; --use syntax::feature_gate::UnstableFeatures; - use syntax::symbol::Symbol; - use libc::c_char; - -@@ -49,31 +48,7 @@ pub fn add_configuration(cfg: &mut ast::CrateConfig, sess: &Session) { - } +@@ -25,21 +25,7 @@ pub fn add_configuration(cfg: &mut ast::CrateConfig, sess: &Session) { + cfg.insert((tf, Some(feat))); } - let requested_features = sess.opts.cg.target_feature.split(','); -- let unstable_options = sess.opts.debugging_opts.unstable_options; -- let is_nightly = UnstableFeatures::from_environment().is_nightly_build(); - let found_negative = requested_features.clone().any(|r| r == "-crt-static"); - let found_positive = requested_features.clone().any(|r| r == "+crt-static"); - @@ -263,14 +240,6 @@ index 124e7aafcc..492ceecaf1 100644 - found_positive - }; - -- // If we switched from the default then that's only allowed on nightly, so -- // gate that here. -- if (found_positive || found_negative) && (!is_nightly || !unstable_options) { -- sess.fatal("specifying the `crt-static` target feature is only allowed \ -- on the nightly channel with `-Z unstable-options` passed \ -- as well"); -- } -- - if crt_static { + if sess.crt_static() { cfg.insert((tf, Some(Symbol::intern("crt-static")))); |