diff --git a/recipes/cargo/cargo.inc b/recipes/cargo/cargo.inc index da66aec..d1ec42f 100644 --- a/recipes/cargo/cargo.inc +++ b/recipes/cargo/cargo.inc @@ -23,7 +23,10 @@ PV .= "+git${SRCPV}" S = "${WORKDIR}/git" B = "${S}" -# PACKAGECONFIG is set in .bb files +PACKAGECONFIG ??= "" + +# Note: this does not appear to work very well due to our use of bitbake triples +# & rust's use of cooked triples PACKAGECONFIG[rust-snapshot] = "--local-rust-root=${B}/rustc" do_configure () { diff --git a/recipes/cargo/cargo_git.bb b/recipes/cargo/cargo_git.bb index 9833488..1ea2218 100644 --- a/recipes/cargo/cargo_git.bb +++ b/recipes/cargo/cargo_git.bb @@ -1,5 +1,5 @@ -SRCREV_cargo = "e6abfbb959b363248ee03c731a67d2897dd061ce" -PACKAGECONFIG ??= "rust-snapshot" +# 2015-2-12 +SRCREV_cargo = "0b84923203dce67ff8cf051728b6908c9c2e303c" require cargo.inc @@ -12,11 +12,11 @@ SRC_URI += " \ file://ssh2-rs/0001-Unconditionally-depend-on-openssl-sys.patch;patchdir=../ssh2-rs \ " -# 0.1.4 -#SRCREV_curl-rust = "6f4d66ed0bc5e71a0ea86a37f038f7c9f73dc3ae" -# 0.1.3 -SRCREV_curl-rust = "4517ee606c65bbe03e4ad4f661725eb80e667a69" -SRCREV_ssh2-rs = "509a8459e466ffa4705a0c686b80ac80b499f5d5" +# 0.1.14 +SRCREV_curl-rust = "9181ea8f4ea2c7eb60224b5ebf464751165e2881" + +# libssh2-sys 0.1.5 +2015-2-10 +SRCREV_ssh2-rs = "8baa8ccb39cd1a43362d2a1ee87d8c3b91496cd7" SRCREV_FORMAT = "cargo_curl-rust_ssh2-rs" EXTRA_OECARGO_PATHS = "\ ${WORKDIR}/curl-rust \ diff --git a/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch b/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch index 1e58afe..70b4e1f 100644 --- a/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch +++ b/recipes/rust/files/0001-libstd-io-process-Command-fully-quote-and-escape-the.patch @@ -1,7 +1,7 @@ -From b850685d1411a03164401db202b9e85ac42d3b26 Mon Sep 17 00:00:00 2001 +From 3355850b0f387355e83bbdcdbbab7850c898d711 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Wed, 26 Nov 2014 10:00:32 -0500 -Subject: [PATCH 01/10] libstd/io/process/Command: fully quote and escape the +Subject: [PATCH 01/11] libstd/io/process/Command: fully quote and escape the command and all args This makes the command (which may have trailing or leading white space @@ -11,54 +11,64 @@ It also makes any usage of a literal ' (single quote) in arguments or the command name unambiguous by escaping them in the same style as posix shell. --- - src/libstd/io/process.rs | 28 ++++++++++++++++++++++++++-- - 1 file changed, 26 insertions(+), 2 deletions(-) + src/libstd/old_io/process.rs | 31 ++++++++++++++++++++++++++++--- + 1 file changed, 28 insertions(+), 3 deletions(-) -diff --git a/src/libstd/io/process.rs b/src/libstd/io/process.rs -index 93aa627..3319408 100644 ---- a/src/libstd/io/process.rs -+++ b/src/libstd/io/process.rs -@@ -384,14 +384,38 @@ impl Command { +diff --git a/src/libstd/old_io/process.rs b/src/libstd/old_io/process.rs +index 195d33c..db0dd91 100644 +--- a/src/libstd/old_io/process.rs ++++ b/src/libstd/old_io/process.rs +@@ -31,6 +31,7 @@ use sys::fs::FileDesc; + use sys::process::Process as ProcessImp; + use sys; + use thread::Thread; ++use string::CowString; + + #[cfg(windows)] use hash; + #[cfg(windows)] use str; +@@ -394,15 +395,39 @@ impl Command { } } +struct SingleQuotedStr<'a> { -+ s: &'a str ++ s: CowString<'a> +} + +impl<'b> SingleQuotedStr<'b> { -+ fn new<'a>(i: &'a str) -> SingleQuotedStr<'a> { ++ fn new<'a>(i: CowString<'a>) -> SingleQuotedStr<'a> { + SingleQuotedStr { s: i } + } +} + -+impl<'a> fmt::Show for SingleQuotedStr<'a> { ++impl<'a> fmt::Debug for SingleQuotedStr<'a> { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let mut elems = self.s.split('\''); + let fst = elems.next().unwrap_or(""); -+ try!(write!(f, "'{}", fst)); ++ try!(write!(f, "'{:?}", fst)); + for elem in elems { -+ try!(write!(f, "'\\''{}", elem)); ++ try!(write!(f, "'\\''{:?}", elem)); + } + write!(f, "'") + } +} + - impl fmt::Show for Command { + #[stable(feature = "rust1", since = "1.0.0")] + impl fmt::Debug for Command { /// Format the program and arguments of a Command for display. Any /// non-utf8 data is lossily converted using the utf8 replacement /// character. fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { -- try!(write!(f, "{}", String::from_utf8_lossy(self.program.as_bytes_no_nul()))); -+ try!(write!(f, "{}", SingleQuotedStr::new(String::from_utf8_lossy( -+ self.program.as_bytes_no_nul()).as_slice()))); - for arg in self.args.iter() { -- try!(write!(f, " '{}'", String::from_utf8_lossy(arg.as_bytes_no_nul()))); -+ try!(write!(f, " {}", SingleQuotedStr::new(String::from_utf8_lossy( -+ arg.as_bytes_no_nul()).as_slice()))); +- try!(write!(f, "{:?}", self.program)); +- for arg in &self.args { +- try!(write!(f, " '{:?}'", arg)); ++ try!(write!(f, "{:?}", SingleQuotedStr::new(String::from_utf8_lossy( ++ self.program.as_bytes())))); ++ for arg in self.args.iter() { ++ try!(write!(f, " {:?}", SingleQuotedStr::new(String::from_utf8_lossy( ++ arg.as_bytes())))); } Ok(()) } -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch b/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch new file mode 100644 index 0000000..70b2f4a --- /dev/null +++ b/recipes/rust/files/0002-std-io-process-add-Debug-tests.patch @@ -0,0 +1,33 @@ +From b1761599f03139070a3354ec2b6f2f25db27bac8 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Mon, 1 Dec 2014 15:50:13 -0500 +Subject: [PATCH 02/11] std/io/process: add Debug tests + +--- + src/libstd/old_io/process.rs | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/libstd/old_io/process.rs b/src/libstd/old_io/process.rs +index db0dd91..d715848 100644 +--- a/src/libstd/old_io/process.rs ++++ b/src/libstd/old_io/process.rs +@@ -1254,4 +1254,16 @@ mod tests { + let val = env.get(&EnvKey(CString::from_slice(b"PATH"))); + assert!(val.unwrap() == &CString::from_slice(b"bar")); + } ++ ++ fn check_debug(c: D, v: &str) { ++ assert_eq!(format!("{:?}", c), v) ++ } ++ ++ #[test] ++ fn debug() { ++ check_debug(Command::new("gcc ").arg("-Ifoo'bar"), "'gcc ' '-Ifoo'\\''bar'"); ++ check_debug(Command::new("c99"), "'c99'"); ++ check_debug(Command::new("c99 "), "'c99 '"); ++ check_debug(Command::new("Can't buy me love"), "'Can'\\''t buy me love'"); ++ } + } +-- +2.3.0 + diff --git a/recipes/rust/files/0002-std-io-process-add-Show-tests.patch b/recipes/rust/files/0002-std-io-process-add-Show-tests.patch deleted file mode 100644 index 833e2ce..0000000 --- a/recipes/rust/files/0002-std-io-process-add-Show-tests.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5ec27dbc4ad64d837e15ff30c4489e8bdd045ed9 Mon Sep 17 00:00:00 2001 -From: Cody P Schafer -Date: Mon, 1 Dec 2014 15:50:13 -0500 -Subject: [PATCH 02/10] std/io/process: add Show tests - ---- - src/libstd/io/process.rs | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/libstd/io/process.rs b/src/libstd/io/process.rs -index 3319408..3f8c7ff 100644 ---- a/src/libstd/io/process.rs -+++ b/src/libstd/io/process.rs -@@ -1237,4 +1237,16 @@ mod tests { - let val = env.get(&EnvKey("PATH".to_c_str())); - assert!(val.unwrap() == &"bar".to_c_str()); - } -+ -+ fn check_show(c: Command, v: &str) { -+ assert_eq!(format!("{}", c), v) -+ } -+ -+ #[test] -+ fn show() { -+ check_show(Command::new("gcc ").arg("-Ifoo'bar"), "'gcc ' '-Ifoo'\\''bar'"); -+ check_show(Command::new("c99"), "'c99'"); -+ check_show(Command::new("c99 "), "'c99 '"); -+ check_show(Command::new("Can't buy me love"), "'Can'\\''t buy me love'"); -+ } - } --- -2.2.1 - diff --git a/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch b/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch index 2defb39..fe0311e 100644 --- a/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch +++ b/recipes/rust/files/0003-platform.mk-avoid-choking-on-i586.patch @@ -1,14 +1,14 @@ -From a3192892b91d1df606f4b237b1cc08118d66658c Mon Sep 17 00:00:00 2001 +From d17171eeca05291a8652fd61c7ae4463013bd39f Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Sat, 15 Nov 2014 20:12:48 -0500 -Subject: [PATCH 03/10] platform.mk: avoid choking on i586 +Subject: [PATCH 03/11] platform.mk: avoid choking on i586 --- mk/platform.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mk/platform.mk b/mk/platform.mk -index 7ca2473..cc69851 100644 +index 78c1057..d28562c 100644 --- a/mk/platform.mk +++ b/mk/platform.mk @@ -14,7 +14,9 @@ @@ -23,5 +23,5 @@ index 7ca2473..cc69851 100644 $(foreach t,$(CFG_TARGET),$(eval $(call DEF_HOST_VAR,$(t)))) $(foreach t,$(CFG_TARGET),$(info cfg: host for $(t) is $(HOST_$(t)))) -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch b/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch index 164a324..ef036f4 100644 --- a/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch +++ b/recipes/rust/files/0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch @@ -1,7 +1,7 @@ -From 269155039002d97223d0053f6436c47da07c3d4e Mon Sep 17 00:00:00 2001 +From 497fb616163eabd5ed8a08ec0fc22ed75091c38d Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 17 Nov 2014 16:14:15 -0500 -Subject: [PATCH 04/10] mk/rt/compiler_rt: pass LDFLAGS from +Subject: [PATCH 04/11] mk/rt/compiler_rt: pass LDFLAGS from CFG_GCCISH_LINK_FLAGS --- @@ -9,10 +9,10 @@ Subject: [PATCH 04/10] mk/rt/compiler_rt: pass LDFLAGS from 1 file changed, 1 insertion(+) diff --git a/mk/rt.mk b/mk/rt.mk -index 6a7be26..65b6ae1 100644 +index a8bbeb4..a8ac839 100644 --- a/mk/rt.mk +++ b/mk/rt.mk -@@ -230,6 +230,7 @@ $$(COMPRT_LIB_$(1)): $$(COMPRT_DEPS) $$(MKFILE_DEPS) +@@ -232,6 +232,7 @@ $$(COMPRT_LIB_$(1)): $$(COMPRT_DEPS) $$(MKFILE_DEPS) AR="$$(AR_$(1))" \ RANLIB="$$(AR_$(1)) s" \ CFLAGS="$$(CFG_GCCISH_CFLAGS_$(1))" \ @@ -21,5 +21,5 @@ index 6a7be26..65b6ae1 100644 triple-builtins $$(Q)cp $$(COMPRT_BUILD_DIR_$(1))/triple/builtins/libcompiler_rt.a $$(COMPRT_LIB_$(1)) -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch b/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch index 645c7c6..445d564 100644 --- a/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch +++ b/recipes/rust/files/0005-Target-add-default-target.json-path-libdir-rust-targ.patch @@ -1,71 +1,93 @@ -From 9220aae4ace6ade2c22c42a4d141d6938512242a Mon Sep 17 00:00:00 2001 +From 8430a9b57867be21a070182c305329fba1dcb85b Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Tue, 18 Nov 2014 01:40:21 -0500 -Subject: [PATCH 05/10] Target: add default target.json path: +Subject: [PATCH 05/11] Target: add default target.json path: $libdir/rust/targets --- - src/librustc/session/config.rs | 4 ++-- - src/librustc/session/mod.rs | 6 +++++- - src/librustc_back/target/mod.rs | 6 +++--- - 3 files changed, 10 insertions(+), 6 deletions(-) + src/librustc/session/config.rs | 6 +++--- + src/librustc/session/mod.rs | 8 ++++++-- + src/librustc_back/target/mod.rs | 9 ++++++--- + 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs -index 5f3fbf8..99ffb6e 100644 +index cd664b7..51537bd 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs -@@ -635,8 +635,8 @@ pub fn build_configuration(sess: &Session) -> ast::CrateConfig { +@@ -633,12 +633,12 @@ pub fn build_configuration(sess: &Session) -> ast::CrateConfig { v } -pub fn build_target_config(opts: &Options, sp: &SpanHandler) -> Config { -- let target = match Target::search(opts.target_triple[]) { -+pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &SpanHandler) -> Config { -+ let target = match Target::search(sysroot, opts.target_triple[]) { +- let target = match Target::search(&opts.target_triple[]) { ++pub fn build_target_config(sysroot: &std::old_io::Path, opts: &Options, sp: &SpanHandler) -> Config { ++ let target = match Target::search(sysroot, &opts.target_triple[]) { Ok(t) => t, Err(e) => { - sp.handler().fatal((format!("Error loading target specification: {}", e))[]); + sp.handler().fatal(&format!("Error loading target specification: {}", e)); +- } ++ } + }; + + let (int_type, uint_type) = match &target.target_pointer_width[] { diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs -index 35c325b..402effb 100644 +index bd44dbe..cb7b709 100644 --- a/src/librustc/session/mod.rs +++ b/src/librustc/session/mod.rs -@@ -242,7 +242,11 @@ pub fn build_session_(sopts: config::Options, +@@ -328,14 +328,18 @@ pub fn build_session_(sopts: config::Options, local_crate_source_file: Option, span_diagnostic: diagnostic::SpanHandler) -> Session { -- let target_cfg = config::build_target_config(&sopts, &span_diagnostic); +- let host = match Target::search(config::host_triple()) { + let sysroot = match sopts.maybe_sysroot { + Some(ref x) => Path::new(x), + None => filesearch::get_or_default_sysroot() + }; ++ let host = match Target::search(&sysroot, config::host_triple()) { + Ok(t) => t, + Err(e) => { + span_diagnostic.handler() + .fatal(&format!("Error loading host specification: {}", e)); + } + }; +- let target_cfg = config::build_target_config(&sopts, &span_diagnostic); + let target_cfg = config::build_target_config(&sysroot, &sopts, &span_diagnostic); let p_s = parse::new_parse_sess_special_handler(span_diagnostic); let default_sysroot = match sopts.maybe_sysroot { Some(_) => None, diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs -index 99a25be..612f456 100644 +index afb5c94..c27afcb 100644 --- a/src/librustc_back/target/mod.rs +++ b/src/librustc_back/target/mod.rs -@@ -291,7 +291,7 @@ impl Target { +@@ -302,12 +302,13 @@ impl Target { /// /// The error string could come from any of the APIs called, including filesystem access and /// JSON decoding. - pub fn search(target: &str) -> Result { + pub fn search(sysroot: &Path, target: &str) -> Result { - use std::os; - use std::io::File; - use std::path::Path; -@@ -365,8 +365,8 @@ impl Target { + use std::env; + use std::ffi::OsString; + use std::old_io::File; + use std::old_path::Path; + use serialize::json; ++ use std::iter::IntoIterator; - let target_path = os::getenv("RUST_TARGET_PATH").unwrap_or(String::new()); + fn load_file(path: &Path) -> Result { + let mut f = try!(File::open(path).map_err(|e| format!("{:?}", e))); +@@ -387,9 +388,11 @@ impl Target { + let target_path = env::var("RUST_TARGET_PATH") + .unwrap_or(OsString::from_str("")); -- let paths = os::split_paths(target_path[]); - // FIXME 16351: add a sane default search path? -+ let mut paths = os::split_paths(target_path[]); -+ paths.push(sysroot.join_many(&[env!("CFG_LIBDIR_RELATIVE"), "rust", "targets"])); ++ let paths = env::split_paths(&target_path) ++ .chain(Some(sysroot.join_many(&[env!("CFG_LIBDIR_RELATIVE"), "rustlib"])).into_iter()); - for dir in paths.iter() { +- for dir in env::split_paths(&target_path) { ++ ++ for dir in paths { let p = dir.join(path.clone()); + if p.is_file() { + return load_file(&p); -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch b/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch index 47fe165..e4df6c7 100644 --- a/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch +++ b/recipes/rust/files/0006-mk-for-stage0-use-RUSTFLAGS-to-override-target-libs-.patch @@ -1,7 +1,7 @@ -From b127eaf1de5c38a98aadc3fe9fcac952c850504e Mon Sep 17 00:00:00 2001 +From baca81cff977cb7a2a9291b06ca45e2ab6305da5 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Tue, 18 Nov 2014 14:52:56 -0500 -Subject: [PATCH 06/10] mk: for stage0, use RUSTFLAGS to override target libs +Subject: [PATCH 06/11] mk: for stage0, use RUSTFLAGS to override target libs dir Setting HLIB specially for stage0 (and even more specially for windows) @@ -13,10 +13,10 @@ stage0-rustc at the appropriate location. 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/mk/main.mk b/mk/main.mk -index 4aed1ce..867d919 100644 +index a6b201a..ab75a47 100644 --- a/mk/main.mk +++ b/mk/main.mk -@@ -335,21 +335,22 @@ define SREQ +@@ -357,21 +357,22 @@ define SREQ # Destinations of artifacts for the host compiler HROOT$(1)_H_$(3) = $(3)/stage$(1) HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin @@ -47,7 +47,7 @@ index 4aed1ce..867d919 100644 # Preqrequisites for using the stageN compiler ifeq ($(1),0) HSREQ$(1)_H_$(3) = $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) -@@ -461,6 +462,7 @@ STAGE$(1)_T_$(2)_H_$(3) := \ +@@ -483,6 +484,7 @@ STAGE$(1)_T_$(2)_H_$(3) := \ $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ --cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \ $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \ @@ -55,7 +55,7 @@ index 4aed1ce..867d919 100644 $$(RUSTC_FLAGS_$(2)) PERF_STAGE$(1)_T_$(2)_H_$(3) := \ -@@ -469,6 +471,7 @@ PERF_STAGE$(1)_T_$(2)_H_$(3) := \ +@@ -491,6 +493,7 @@ PERF_STAGE$(1)_T_$(2)_H_$(3) := \ $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \ --cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \ $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \ @@ -64,5 +64,5 @@ index 4aed1ce..867d919 100644 endef -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch b/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch index 343818d..03e63b9 100644 --- a/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch +++ b/recipes/rust/files/0007-mk-add-missing-CFG_LIBDIR_RELATIVE.patch @@ -1,14 +1,14 @@ -From 544d3997edacfd414664c14cc628d573023af28e Mon Sep 17 00:00:00 2001 +From 67e86a885f0361f7e69476d017337df56cfa6fc7 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Tue, 18 Nov 2014 13:48:14 -0500 -Subject: [PATCH 07/10] mk: add missing CFG_LIBDIR_RELATIVE +Subject: [PATCH 07/11] mk: add missing CFG_LIBDIR_RELATIVE --- mk/grammar.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mk/grammar.mk b/mk/grammar.mk -index a9f4590..d254941 100644 +index d9c66e2..585206d 100644 --- a/mk/grammar.mk +++ b/mk/grammar.mk @@ -11,8 +11,8 @@ @@ -20,8 +20,8 @@ index a9f4590..d254941 100644 +L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib +LD = $(CFG_BUILD)/stage2/$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib/ RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD)) - - # Run the reference lexer against libsyntax and compare the tokens and spans. + ifeq ($(CFG_OSTYPE),apple-darwin) + FLEX_LDFLAGS=-ll -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch b/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch index 1dcfd99..5c9a3ee 100644 --- a/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch +++ b/recipes/rust/files/0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch @@ -1,7 +1,7 @@ -From 9dc70d95f890865b8f3f87edba9a9441b8ad3755 Mon Sep 17 00:00:00 2001 +From c8c79e972cdc2529acbdf5403feda71666f30e60 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 24 Nov 2014 13:10:15 -0500 -Subject: [PATCH 08/10] configure: support --bindir, and extend libdir to +Subject: [PATCH 08/11] configure: support --bindir, and extend libdir to non-blessed dirs Adds --bindir, and: @@ -13,17 +13,18 @@ relative to sysroot, and allows libdir to end in an arbitrary directory Note that this assumes absolute paths start with '/', which may break windows platforms --- - configure | 51 +++++++++++++++++------- + configure | 49 ++++++++++++++++------- mk/host.mk | 6 ++- mk/main.mk | 11 ++++++ mk/perf.mk | 4 +- mk/prepare.mk | 4 +- src/librustc/metadata/filesearch.rs | 78 ++++++++++++++----------------------- + src/librustc/session/config.rs | 2 +- src/librustc_trans/back/link.rs | 3 +- - 7 files changed, 87 insertions(+), 70 deletions(-) + 8 files changed, 87 insertions(+), 70 deletions(-) diff --git a/configure b/configure -index f14009b..8659809 100755 +index a80dafc..e0efaf2 100755 --- a/configure +++ b/configure @@ -309,6 +309,31 @@ envopt() { @@ -58,7 +59,7 @@ index f14009b..8659809 100755 to_llvm_triple() { case $1 in i686-w64-mingw32) echo i686-pc-windows-gnu ;; -@@ -549,31 +574,28 @@ CFG_TARGET=$(to_llvm_triple $CFG_TARGET) +@@ -561,23 +586,15 @@ CFG_TARGET=$(to_llvm_triple $CFG_TARGET) if [ "$CFG_OSTYPE" = "pc-windows-gnu" ] then CFG_LIBDIR_RELATIVE=bin @@ -75,7 +76,9 @@ index f14009b..8659809 100755 - *) - err "libdir must begin with the prefix. Use --prefix to set it accordingly.";; -esac -- ++CFG_BINDIR_RELATIVE=bin ++valopt bindir "${CFG_PREFIX}/${CFG_BINDIR_RELATIVE}" "install binaries" + -CFG_LIBDIR_RELATIVE=`echo ${CFG_LIBDIR} | cut -c$((${#CFG_PREFIX}+${CAT_INC}))-` - -if [ "$CFG_OSTYPE" = "pc-windows-gnu" ] && [ "$CFG_LIBDIR_RELATIVE" != "bin" ]; then @@ -84,12 +87,8 @@ index f14009b..8659809 100755 + err "Windows builds currently require that LIBDIR == BINDIR (we have libdir{$CFG_LIBDIR_RELATIVE} != bindir{$CFG_BINDIR_RELATIVE} )" fi -+CFG_BINDIR_RELATIVE=bin -+valopt bindir "${CFG_PREFIX}/${CFG_BINDIR_RELATIVE}" "install binaries" -+ if [ $HELP -eq 1 ] - then - echo +@@ -586,6 +603,11 @@ then exit 0 fi @@ -101,7 +100,7 @@ index f14009b..8659809 100755 # Validate Options step_msg "validating $CFG_SELF args" validate_opt -@@ -1331,6 +1353,7 @@ putvar CFG_PREFIX +@@ -1342,6 +1364,7 @@ putvar CFG_PREFIX putvar CFG_HOST putvar CFG_TARGET putvar CFG_LIBDIR_RELATIVE @@ -129,10 +128,10 @@ index 59a0095..b8e8345 100644 endef diff --git a/mk/main.mk b/mk/main.mk -index 867d919..cfbc1b0 100644 +index ab75a47..6659dc9 100644 --- a/mk/main.mk +++ b/mk/main.mk -@@ -318,7 +318,9 @@ export CFG_BUILD +@@ -326,7 +326,9 @@ export CFG_RELEASE_CHANNEL export CFG_LLVM_ROOT export CFG_PREFIX export CFG_LIBDIR @@ -140,9 +139,9 @@ index 867d919..cfbc1b0 100644 export CFG_LIBDIR_RELATIVE +export CFG_BINDIR_RELATIVE export CFG_DISABLE_INJECT_STD_VERSION - - ###################################################################### -@@ -334,7 +336,16 @@ define SREQ + ifdef CFG_DISABLE_UNSTABLE_FEATURES + CFG_INFO := $(info cfg: disabling unstable features (CFG_DISABLE_UNSTABLE_FEATURES)) +@@ -356,7 +358,16 @@ define SREQ # Destinations of artifacts for the host compiler HROOT$(1)_H_$(3) = $(3)/stage$(1) @@ -180,10 +179,10 @@ index 16cbaab..f8a354c 100644 endif diff --git a/mk/prepare.mk b/mk/prepare.mk -index d404d3d..afc6d81 100644 +index f1c4aa6..37c0a1a 100644 --- a/mk/prepare.mk +++ b/mk/prepare.mk -@@ -147,10 +147,10 @@ endef +@@ -168,10 +168,10 @@ INSTALL_DEBUGGER_SCRIPT_COMMANDS=$(if $(findstring windows,$(1)),\ define DEF_PREPARE prepare-base-$(1): PREPARE_SOURCE_DIR=$$(PREPARE_HOST)/stage$$(PREPARE_STAGE) @@ -197,20 +196,20 @@ index d404d3d..afc6d81 100644 prepare-base-$(1): PREPARE_DEST_MAN_DIR=$$(PREPARE_DEST_DIR)/share/man/man1 prepare-base-$(1): prepare-everything-$(1) diff --git a/src/librustc/metadata/filesearch.rs b/src/librustc/metadata/filesearch.rs -index 0b859ab..f92fca6 100644 +index 1b2d82e..0405d67 100644 --- a/src/librustc/metadata/filesearch.rs +++ b/src/librustc/metadata/filesearch.rs -@@ -72,8 +72,7 @@ impl<'a> FileSearch<'a> { +@@ -67,8 +67,7 @@ impl<'a> FileSearch<'a> { if !found { let rustpath = rust_path(); - for path in rustpath.iter() { + for path in &rustpath { - let tlib_path = make_rustpkg_lib_path( - self.sysroot, path, self.triple); + let tlib_path = make_rustpkg_lib_path(path, self.triple); debug!("is {} in visited_dirs? {}", tlib_path.display(), visited_dirs.contains(&tlib_path.as_vec().to_vec())); -@@ -155,7 +154,7 @@ impl<'a> FileSearch<'a> { +@@ -154,7 +153,7 @@ impl<'a> FileSearch<'a> { // Returns a list of directories where target-specific tool binaries are located. pub fn get_tools_search_paths(&self) -> Vec { let mut p = Path::new(self.sysroot); @@ -219,7 +218,7 @@ index 0b859ab..f92fca6 100644 p.push(rustlibdir()); p.push(self.triple); p.push("bin"); -@@ -163,8 +162,8 @@ impl<'a> FileSearch<'a> { +@@ -162,8 +161,8 @@ impl<'a> FileSearch<'a> { } } @@ -230,7 +229,7 @@ index 0b859ab..f92fca6 100644 assert!(p.is_relative()); p.push(rustlibdir()); p.push(target_triple); -@@ -174,17 +173,24 @@ pub fn relative_target_lib_path(sysroot: &Path, target_triple: &str) -> Path { +@@ -173,17 +172,24 @@ pub fn relative_target_lib_path(sysroot: &Path, target_triple: &str) -> Path { fn make_target_lib_path(sysroot: &Path, target_triple: &str) -> Path { @@ -259,10 +258,10 @@ index 0b859ab..f92fca6 100644 pub fn get_or_default_sysroot() -> Path { // Follow symlinks. If the resolved path is relative, make it absolute. fn canonicalize(path: Option) -> Option { -@@ -196,7 +202,17 @@ pub fn get_or_default_sysroot() -> Path { +@@ -195,7 +201,17 @@ pub fn get_or_default_sysroot() -> Path { } - match canonicalize(os::self_exe_name()) { + match canonicalize(env::current_exe().ok()) { - Some(mut p) => { p.pop(); p.pop(); p } + Some(mut p) => { + // Remove the exe name @@ -278,7 +277,7 @@ index 0b859ab..f92fca6 100644 None => panic!("can't determine value for sysroot") } } -@@ -254,45 +270,9 @@ pub fn rust_path() -> Vec { +@@ -252,45 +268,9 @@ pub fn rust_path() -> Vec { env_rust_path } @@ -303,12 +302,12 @@ index 0b859ab..f92fca6 100644 - } - } - -- #[cfg(target_word_size = "64")] +- #[cfg(target_pointer_width = "64")] - fn primary_libdir_name() -> String { - "lib64".to_string() - } - -- #[cfg(target_word_size = "32")] +- #[cfg(target_pointer_width = "32")] - fn primary_libdir_name() -> String { - "lib32".to_string() - } @@ -327,17 +326,30 @@ index 0b859ab..f92fca6 100644 } // The name of rustc's own place to organize libraries. +diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs +index 51537bd..54d995c 100644 +--- a/src/librustc/session/config.rs ++++ b/src/librustc/session/config.rs +@@ -633,7 +633,7 @@ pub fn build_configuration(sess: &Session) -> ast::CrateConfig { + v + } + +-pub fn build_target_config(sysroot: &std::old_io::Path, opts: &Options, sp: &SpanHandler) -> Config { ++pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &SpanHandler) -> Config { + let target = match Target::search(sysroot, &opts.target_triple[]) { + Ok(t) => t, + Err(e) => { diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs -index ec61d3a..7928699 100644 +index 9f26e91..7f50224 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs -@@ -1000,11 +1000,10 @@ fn link_args(cmd: &mut Command, +@@ -1004,11 +1004,10 @@ fn link_args(cmd: &mut Command, // where extern libraries might live, based on the // addl_lib_search_paths if sess.opts.cg.rpath { - let sysroot = sess.sysroot(); - let target_triple = sess.opts.target_triple[]; - let get_install_prefix_lib_path = |:| { + let target_triple = &sess.opts.target_triple[]; + let get_install_prefix_lib_path = || { let install_prefix = option_env!("CFG_PREFIX").expect("CFG_PREFIX"); - let tlib = filesearch::relative_target_lib_path(sysroot, target_triple); + let tlib = filesearch::relative_target_lib_path(target_triple); @@ -345,5 +357,5 @@ index ec61d3a..7928699 100644 path.push(&tlib); -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0009-Parallelize-submake-invocations.patch b/recipes/rust/files/0009-Parallelize-submake-invocations.patch index 8bf1ac7..939e0dd 100644 --- a/recipes/rust/files/0009-Parallelize-submake-invocations.patch +++ b/recipes/rust/files/0009-Parallelize-submake-invocations.patch @@ -1,7 +1,7 @@ -From 1bfe46dd62c1a72b20be921eba8fcd57c56974ef Mon Sep 17 00:00:00 2001 +From f8ec11a7e7420d740b41179976c44163f4a6c5f4 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Mon, 24 Nov 2014 13:54:42 -0500 -Subject: [PATCH 09/10] Parallelize submake invocations +Subject: [PATCH 09/11] Parallelize submake invocations --- mk/clean.mk | 2 +- @@ -12,10 +12,10 @@ Subject: [PATCH 09/10] Parallelize submake invocations 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/mk/clean.mk b/mk/clean.mk -index aadc55b..f671745 100644 +index 5b90d41..2a7ba6d 100644 --- a/mk/clean.mk +++ b/mk/clean.mk -@@ -121,7 +121,7 @@ $(foreach host, $(CFG_HOST), \ +@@ -122,7 +122,7 @@ $(foreach host, $(CFG_HOST), \ define DEF_CLEAN_LLVM_HOST ifeq ($(CFG_LLVM_ROOT),) clean-llvm$(1): @@ -25,7 +25,7 @@ index aadc55b..f671745 100644 clean-llvm$(1): ; diff --git a/mk/install.mk b/mk/install.mk -index 632df3c..954d494 100644 +index 60c0a6b..a3a44ed 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -17,9 +17,9 @@ endif @@ -38,9 +38,9 @@ index 632df3c..954d494 100644 - $(Q)$(MAKE) prepare_install + $(Q)$(P)$(MAKE) prepare_install endif - $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" - # Remove tmp files because it's a decent amount of disk space -@@ -30,9 +30,9 @@ prepare_install: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir + ifeq ($(CFG_DISABLE_DOCS),) + $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" "$(MAYBE_DISABLE_VERIFY)" +@@ -33,9 +33,9 @@ prepare_install: dist-tar-bins | tmp/empty_dir uninstall: ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER))) # Build the dist as the original user @@ -50,8 +50,8 @@ index 632df3c..954d494 100644 - $(Q)$(MAKE) prepare_uninstall + $(Q)$(P)$(MAKE) prepare_uninstall endif - $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" - # Remove tmp files because it's a decent amount of disk space + ifeq ($(CFG_DISABLE_DOCS),) + $(Q)cd tmp/empty_dir && sh ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh --uninstall --prefix="$(DESTDIR)$(CFG_PREFIX)" --libdir="$(DESTDIR)$(CFG_LIBDIR)" --mandir="$(DESTDIR)$(CFG_MANDIR)" diff --git a/mk/llvm.mk b/mk/llvm.mk index ba2e073..3998806 100644 --- a/mk/llvm.mk @@ -75,10 +75,10 @@ index ba2e073..3998806 100644 touch $$@ diff --git a/mk/rt.mk b/mk/rt.mk -index 65b6ae1..a064ee1 100644 +index a8ac839..d609cd2 100644 --- a/mk/rt.mk +++ b/mk/rt.mk -@@ -181,7 +181,7 @@ $$(JEMALLOC_LOCAL_$(1)): $$(JEMALLOC_DEPS) $$(MKFILE_DEPS) +@@ -183,7 +183,7 @@ $$(JEMALLOC_LOCAL_$(1)): $$(JEMALLOC_DEPS) $$(MKFILE_DEPS) RANLIB="$$(AR_$(1)) s" \ CPPFLAGS="-I $(S)src/rt/" \ EXTRA_CFLAGS="-g1 -ffunction-sections -fdata-sections" @@ -87,7 +87,7 @@ index 65b6ae1..a064ee1 100644 ifeq ($$(CFG_DISABLE_JEMALLOC),) RUSTFLAGS_alloc := --cfg jemalloc -@@ -223,7 +223,7 @@ COMPRT_BUILD_DIR_$(1) := $$(RT_OUTPUT_DIR_$(1))/compiler-rt +@@ -225,7 +225,7 @@ COMPRT_BUILD_DIR_$(1) := $$(RT_OUTPUT_DIR_$(1))/compiler-rt $$(COMPRT_LIB_$(1)): $$(COMPRT_DEPS) $$(MKFILE_DEPS) @$$(call E, make: compiler-rt) @@ -96,7 +96,7 @@ index 65b6ae1..a064ee1 100644 ProjSrcRoot="$(S)src/compiler-rt" \ ProjObjRoot="$$(abspath $$(COMPRT_BUILD_DIR_$(1)))" \ CC="$$(CC_$(1))" \ -@@ -301,7 +301,7 @@ $$(BACKTRACE_BUILD_DIR_$(1))/Makefile: $$(BACKTRACE_DEPS) $$(MKFILE_DEPS) +@@ -303,7 +303,7 @@ $$(BACKTRACE_BUILD_DIR_$(1))/Makefile: $$(BACKTRACE_DEPS) $$(MKFILE_DEPS) $$(BACKTRACE_LIB_$(1)): $$(BACKTRACE_BUILD_DIR_$(1))/Makefile $$(MKFILE_DEPS) @$$(call E, make: libbacktrace) @@ -118,5 +118,5 @@ index 3bbc8f4..4300b02 100644 S := $(CFG_SRC_DIR) -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch b/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch index 6dc082a..743a8c0 100644 --- a/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch +++ b/recipes/rust/files/0010-std-thread_local-workaround-for-NULL-__dso_handle.patch @@ -1,17 +1,17 @@ -From 30483be2c93f9ebd8f1322c2fd4ff4c765e10f59 Mon Sep 17 00:00:00 2001 +From 5372227d27491a4b468867bd235c83859ff64475 Mon Sep 17 00:00:00 2001 From: Cody P Schafer Date: Wed, 3 Dec 2014 19:15:19 -0500 -Subject: [PATCH 10/10] std/thread_local: workaround for NULL __dso_handle +Subject: [PATCH 10/11] std/thread_local: workaround for NULL __dso_handle --- src/libstd/thread_local/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libstd/thread_local/mod.rs b/src/libstd/thread_local/mod.rs -index 242dceb..45ce980 100644 +index 9de5fd1..273f45c 100644 --- a/src/libstd/thread_local/mod.rs +++ b/src/libstd/thread_local/mod.rs -@@ -323,7 +323,7 @@ mod imp { +@@ -393,7 +393,7 @@ mod imp { #[linkage = "extern_weak"] static __cxa_thread_atexit_impl: *const (); } @@ -21,5 +21,5 @@ index 242dceb..45ce980 100644 arg: *mut u8, dso_handle: *mut u8) -> libc::c_int; -- -2.2.1 +2.3.0 diff --git a/recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch b/recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch new file mode 100644 index 0000000..e30ab7c --- /dev/null +++ b/recipes/rust/files/0011-librustc_back-target-rename-json-field-from-target-w.patch @@ -0,0 +1,96 @@ +From 937d33a68d367bd67060b8a57082324ef7589878 Mon Sep 17 00:00:00 2001 +From: Cody P Schafer +Date: Thu, 12 Feb 2015 10:29:21 -0500 +Subject: [PATCH 11/11] librustc_back/target: rename json field from + target-word-size to target-pointer-width to match rust struct field + +Completes #20421 (which renamed the struct field but not the json field) + +If you're using the json target specificating interface, this is +potentially a: +[breaking-change] +--- + src/librustc/session/config.rs | 2 +- + src/librustc_back/target/mod.rs | 4 ++-- + src/test/run-make/target-specs/my-awesome-platform.json | 2 +- + src/test/run-make/target-specs/my-incomplete-platform.json | 2 +- + src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json | 2 +- + 5 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs +index 54d995c..b6d901c 100644 +--- a/src/librustc/session/config.rs ++++ b/src/librustc/session/config.rs +@@ -645,7 +645,7 @@ pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &SpanHandler) -> + "32" => (ast::TyI32, ast::TyU32), + "64" => (ast::TyI64, ast::TyU64), + w => sp.handler().fatal(&format!("target specification was invalid: unrecognized \ +- target-word-size {}", w)[]) ++ target-pointer-width {}", w)[]) + }; + + Config { +diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs +index c27afcb..0fad037 100644 +--- a/src/librustc_back/target/mod.rs ++++ b/src/librustc_back/target/mod.rs +@@ -40,7 +40,7 @@ + //! this module defines the format the JSON file should take, though each + //! underscore in the field names should be replaced with a hyphen (`-`) in the + //! JSON file. Some fields are required in every target specification, such as +-//! `data-layout`, `llvm-target`, `target-endian`, `target-word-size`, and ++//! `data-layout`, `llvm-target`, `target-endian`, `target-pointer-width`, and + //! `arch`. In general, options passed to rustc with `-C` override the target's + //! settings, though `target-feature` and `link-args` will *add* to the list + //! specified by the target, rather than replace. +@@ -241,7 +241,7 @@ impl Target { + data_layout: get_req_field("data-layout"), + llvm_target: get_req_field("llvm-target"), + target_endian: get_req_field("target-endian"), +- target_pointer_width: get_req_field("target-word-size"), ++ target_pointer_width: get_req_field("target-pointer-width"), + arch: get_req_field("arch"), + target_os: get_req_field("os"), + options: Default::default(), +diff --git a/src/test/run-make/target-specs/my-awesome-platform.json b/src/test/run-make/target-specs/my-awesome-platform.json +index f5f622b..d7cf713 100644 +--- a/src/test/run-make/target-specs/my-awesome-platform.json ++++ b/src/test/run-make/target-specs/my-awesome-platform.json +@@ -2,7 +2,7 @@ + "data-layout": "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32", + "llvm-target": "i686-unknown-linux-gnu", + "target-endian": "little", +- "target-word-size": "32", ++ "target-pointer-width": "32", + "arch": "x86", + "os": "linux", + "morestack": false +diff --git a/src/test/run-make/target-specs/my-incomplete-platform.json b/src/test/run-make/target-specs/my-incomplete-platform.json +index 5005a9f..053f2dd 100644 +--- a/src/test/run-make/target-specs/my-incomplete-platform.json ++++ b/src/test/run-make/target-specs/my-incomplete-platform.json +@@ -1,7 +1,7 @@ + { + "data-layout": "e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32", + "target-endian": "little", +- "target-word-size": "32", ++ "target-pointer-width": "32", + "arch": "x86", + "os": "foo", + "morestack": false +diff --git a/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json b/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json +index 5e0f0f4..688bbe4 100644 +--- a/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json ++++ b/src/test/run-make/target-specs/x86_64-unknown-linux-gnu.json +@@ -3,7 +3,7 @@ + "data-layout": "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128", + "llvm-target": "x86_64-unknown-linux-gnu", + "target-endian": "little", +- "target-word-size": "64", ++ "target-pointer-width": "64", + "arch": "x86_64", + "os": "linux", + "morestack": false +-- +2.3.0 + diff --git a/recipes/rust/files/rust-0.13.0-no-ldconfig.patch b/recipes/rust/files/rust-0.13.0-no-ldconfig.patch deleted file mode 100644 index 5bee1a9..0000000 --- a/recipes/rust/files/rust-0.13.0-no-ldconfig.patch +++ /dev/null @@ -1,25 +0,0 @@ -Remove ldconfig(1) execution to prevent the installation script from accessing -outside of a sandbox. - -diff --git a/src/rust-installer/install-template.sh b/src/rust-installer/install-template.sh -index 545de67..242d6f4 100644 ---- a/src/rust-installer/install-template.sh -+++ b/src/rust-installer/install-template.sh -@@ -508,17 +508,6 @@ done < "${CFG_SRC_DIR}/lib/${TEMPLATE_REL_MANIFEST_DIR}/manifest.in" - - msg - --# Run ldconfig to make dynamic libraries available to the linker --if [ "$CFG_OSTYPE" = "unknown-linux-gnu" ] -- then -- ldconfig -- if [ $? -ne 0 ] -- then -- warn "failed to run ldconfig." -- warn "this may happen when not installing as root and may be fine" -- fi --fi -- - # Sanity check: can we run the installed binaries? - # - # As with the verification above, make sure the right LD_LIBRARY_PATH-equivalent diff --git a/recipes/rust/rust_0.12.0+git.bb b/recipes/rust/rust_git.bb similarity index 74% rename from recipes/rust/rust_0.12.0+git.bb rename to recipes/rust/rust_git.bb index 1e573c9..7094abf 100644 --- a/recipes/rust/rust_0.12.0+git.bb +++ b/recipes/rust/rust_git.bb @@ -1,11 +1,10 @@ -SRCREV = "71123902e17ad339649f33423995eac78da40e3c" -# pre-ascii reform -#SRCREV = "0201334439393bed205c1148bed425b80aab8c22" +# 2014-02-10 +SRCREV = "88d8ba5ab3b1d22288b021708c3d87464e43b880" require rust-git.inc SRC_URI_append = "\ file://0001-libstd-io-process-Command-fully-quote-and-escape-the.patch \ - file://0002-std-io-process-add-Show-tests.patch \ + file://0002-std-io-process-add-Debug-tests.patch \ file://0003-platform.mk-avoid-choking-on-i586.patch \ file://0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.patch \ file://0005-Target-add-default-target.json-path-libdir-rust-targ.patch \ @@ -14,6 +13,5 @@ SRC_URI_append = "\ file://0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch \ file://0009-Parallelize-submake-invocations.patch \ file://0010-std-thread_local-workaround-for-NULL-__dso_handle.patch \ -\ - file://rust-0.13.0-no-ldconfig.patch \ + file://0011-librustc_back-target-rename-json-field-from-target-w.patch \ "