Merge /home/cody/C/meta-rust

This commit is contained in:
Cody P Schafer
2015-02-12 14:16:39 -05:00
16 changed files with 316 additions and 200 deletions
+4 -1
View File
@@ -23,7 +23,10 @@ PV .= "+git${SRCPV}"
S = "${WORKDIR}/git" S = "${WORKDIR}/git"
B = "${S}" 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" PACKAGECONFIG[rust-snapshot] = "--local-rust-root=${B}/rustc"
do_configure () { do_configure () {
+7 -7
View File
@@ -1,5 +1,5 @@
SRCREV_cargo = "e6abfbb959b363248ee03c731a67d2897dd061ce" # 2015-2-12
PACKAGECONFIG ??= "rust-snapshot" SRCREV_cargo = "0b84923203dce67ff8cf051728b6908c9c2e303c"
require cargo.inc require cargo.inc
@@ -12,11 +12,11 @@ SRC_URI += " \
file://ssh2-rs/0001-Unconditionally-depend-on-openssl-sys.patch;patchdir=../ssh2-rs \ file://ssh2-rs/0001-Unconditionally-depend-on-openssl-sys.patch;patchdir=../ssh2-rs \
" "
# 0.1.4 # 0.1.14
#SRCREV_curl-rust = "6f4d66ed0bc5e71a0ea86a37f038f7c9f73dc3ae" SRCREV_curl-rust = "9181ea8f4ea2c7eb60224b5ebf464751165e2881"
# 0.1.3
SRCREV_curl-rust = "4517ee606c65bbe03e4ad4f661725eb80e667a69" # libssh2-sys 0.1.5 +2015-2-10
SRCREV_ssh2-rs = "509a8459e466ffa4705a0c686b80ac80b499f5d5" SRCREV_ssh2-rs = "8baa8ccb39cd1a43362d2a1ee87d8c3b91496cd7"
SRCREV_FORMAT = "cargo_curl-rust_ssh2-rs" SRCREV_FORMAT = "cargo_curl-rust_ssh2-rs"
EXTRA_OECARGO_PATHS = "\ EXTRA_OECARGO_PATHS = "\
${WORKDIR}/curl-rust \ ${WORKDIR}/curl-rust \
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Wed, 26 Nov 2014 10:00:32 -0500 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 command and all args
This makes the command (which may have trailing or leading white space 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 the command name unambiguous by escaping them in the same style as posix
shell. shell.
--- ---
src/libstd/io/process.rs | 28 ++++++++++++++++++++++++++-- src/libstd/old_io/process.rs | 31 ++++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 2 deletions(-) 1 file changed, 28 insertions(+), 3 deletions(-)
diff --git a/src/libstd/io/process.rs b/src/libstd/io/process.rs diff --git a/src/libstd/old_io/process.rs b/src/libstd/old_io/process.rs
index 93aa627..3319408 100644 index 195d33c..db0dd91 100644
--- a/src/libstd/io/process.rs --- a/src/libstd/old_io/process.rs
+++ b/src/libstd/io/process.rs +++ b/src/libstd/old_io/process.rs
@@ -384,14 +384,38 @@ impl Command { @@ -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> { +struct SingleQuotedStr<'a> {
+ s: &'a str + s: CowString<'a>
+} +}
+ +
+impl<'b> SingleQuotedStr<'b> { +impl<'b> SingleQuotedStr<'b> {
+ fn new<'a>(i: &'a str) -> SingleQuotedStr<'a> { + fn new<'a>(i: CowString<'a>) -> SingleQuotedStr<'a> {
+ SingleQuotedStr { s: i } + 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 { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ let mut elems = self.s.split('\''); + let mut elems = self.s.split('\'');
+ let fst = elems.next().unwrap_or(""); + let fst = elems.next().unwrap_or("");
+ try!(write!(f, "'{}", fst)); + try!(write!(f, "'{:?}", fst));
+ for elem in elems { + for elem in elems {
+ try!(write!(f, "'\\''{}", elem)); + try!(write!(f, "'\\''{:?}", elem));
+ } + }
+ write!(f, "'") + 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 /// Format the program and arguments of a Command for display. Any
/// non-utf8 data is lossily converted using the utf8 replacement /// non-utf8 data is lossily converted using the utf8 replacement
/// character. /// character.
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 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, "{:?}", self.program));
+ try!(write!(f, "{}", SingleQuotedStr::new(String::from_utf8_lossy( - for arg in &self.args {
+ self.program.as_bytes_no_nul()).as_slice()))); - try!(write!(f, " '{:?}'", arg));
for arg in self.args.iter() { + try!(write!(f, "{:?}", SingleQuotedStr::new(String::from_utf8_lossy(
- try!(write!(f, " '{}'", String::from_utf8_lossy(arg.as_bytes_no_nul()))); + self.program.as_bytes()))));
+ try!(write!(f, " {}", SingleQuotedStr::new(String::from_utf8_lossy( + for arg in self.args.iter() {
+ arg.as_bytes_no_nul()).as_slice()))); + try!(write!(f, " {:?}", SingleQuotedStr::new(String::from_utf8_lossy(
+ arg.as_bytes()))));
} }
Ok(()) Ok(())
} }
-- --
2.2.1 2.3.0
@@ -0,0 +1,33 @@
From b1761599f03139070a3354ec2b6f2f25db27bac8 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
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<D : fmt::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
@@ -1,33 +0,0 @@
From 5ec27dbc4ad64d837e15ff30c4489e8bdd045ed9 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
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
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Sat, 15 Nov 2014 20:12:48 -0500 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 +++- mk/platform.mk | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-) 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/mk/platform.mk b/mk/platform.mk diff --git a/mk/platform.mk b/mk/platform.mk
index 7ca2473..cc69851 100644 index 78c1057..d28562c 100644
--- a/mk/platform.mk --- a/mk/platform.mk
+++ b/mk/platform.mk +++ b/mk/platform.mk
@@ -14,7 +14,9 @@ @@ -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),$(eval $(call DEF_HOST_VAR,$(t))))
$(foreach t,$(CFG_TARGET),$(info cfg: host for $(t) is $(HOST_$(t)))) $(foreach t,$(CFG_TARGET),$(info cfg: host for $(t) is $(HOST_$(t))))
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Mon, 17 Nov 2014 16:14:15 -0500 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 CFG_GCCISH_LINK_FLAGS
--- ---
@@ -9,10 +9,10 @@ Subject: [PATCH 04/10] mk/rt/compiler_rt: pass LDFLAGS from
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
diff --git a/mk/rt.mk b/mk/rt.mk diff --git a/mk/rt.mk b/mk/rt.mk
index 6a7be26..65b6ae1 100644 index a8bbeb4..a8ac839 100644
--- a/mk/rt.mk --- a/mk/rt.mk
+++ b/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))" \ AR="$$(AR_$(1))" \
RANLIB="$$(AR_$(1)) s" \ RANLIB="$$(AR_$(1)) s" \
CFLAGS="$$(CFG_GCCISH_CFLAGS_$(1))" \ CFLAGS="$$(CFG_GCCISH_CFLAGS_$(1))" \
@@ -21,5 +21,5 @@ index 6a7be26..65b6ae1 100644
triple-builtins triple-builtins
$$(Q)cp $$(COMPRT_BUILD_DIR_$(1))/triple/builtins/libcompiler_rt.a $$(COMPRT_LIB_$(1)) $$(Q)cp $$(COMPRT_BUILD_DIR_$(1))/triple/builtins/libcompiler_rt.a $$(COMPRT_LIB_$(1))
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Tue, 18 Nov 2014 01:40:21 -0500 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 $libdir/rust/targets
--- ---
src/librustc/session/config.rs | 4 ++-- src/librustc/session/config.rs | 6 +++---
src/librustc/session/mod.rs | 6 +++++- src/librustc/session/mod.rs | 8 ++++++--
src/librustc_back/target/mod.rs | 6 +++--- src/librustc_back/target/mod.rs | 9 ++++++---
3 files changed, 10 insertions(+), 6 deletions(-) 3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs 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 --- a/src/librustc/session/config.rs
+++ b/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 v
} }
-pub fn build_target_config(opts: &Options, sp: &SpanHandler) -> Config { -pub fn build_target_config(opts: &Options, sp: &SpanHandler) -> Config {
- let target = match Target::search(opts.target_triple[]) { - let target = match Target::search(&opts.target_triple[]) {
+pub fn build_target_config(sysroot: &Path, opts: &Options, sp: &SpanHandler) -> Config { +pub fn build_target_config(sysroot: &std::old_io::Path, opts: &Options, sp: &SpanHandler) -> Config {
+ let target = match Target::search(sysroot, opts.target_triple[]) { + let target = match Target::search(sysroot, &opts.target_triple[]) {
Ok(t) => t, Ok(t) => t,
Err(e) => { 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 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 --- a/src/librustc/session/mod.rs
+++ b/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<Path>, local_crate_source_file: Option<Path>,
span_diagnostic: diagnostic::SpanHandler) span_diagnostic: diagnostic::SpanHandler)
-> Session { -> 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 { + let sysroot = match sopts.maybe_sysroot {
+ Some(ref x) => Path::new(x), + Some(ref x) => Path::new(x),
+ None => filesearch::get_or_default_sysroot() + 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 target_cfg = config::build_target_config(&sysroot, &sopts, &span_diagnostic);
let p_s = parse::new_parse_sess_special_handler(span_diagnostic); let p_s = parse::new_parse_sess_special_handler(span_diagnostic);
let default_sysroot = match sopts.maybe_sysroot { let default_sysroot = match sopts.maybe_sysroot {
Some(_) => None, Some(_) => None,
diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs 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 --- a/src/librustc_back/target/mod.rs
+++ b/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 /// The error string could come from any of the APIs called, including filesystem access and
/// JSON decoding. /// JSON decoding.
- pub fn search(target: &str) -> Result<Target, String> { - pub fn search(target: &str) -> Result<Target, String> {
+ pub fn search(sysroot: &Path, target: &str) -> Result<Target, String> { + pub fn search(sysroot: &Path, target: &str) -> Result<Target, String> {
use std::os; use std::env;
use std::io::File; use std::ffi::OsString;
use std::path::Path; use std::old_io::File;
@@ -365,8 +365,8 @@ impl Target { 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<Target, String> {
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? - // FIXME 16351: add a sane default search path?
+ let mut paths = os::split_paths(target_path[]); + let paths = env::split_paths(&target_path)
+ paths.push(sysroot.join_many(&[env!("CFG_LIBDIR_RELATIVE"), "rust", "targets"])); + .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()); let p = dir.join(path.clone());
if p.is_file() {
return load_file(&p);
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Tue, 18 Nov 2014 14:52:56 -0500 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 dir
Setting HLIB specially for stage0 (and even more specially for windows) 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(-) 1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/mk/main.mk b/mk/main.mk diff --git a/mk/main.mk b/mk/main.mk
index 4aed1ce..867d919 100644 index a6b201a..ab75a47 100644
--- a/mk/main.mk --- a/mk/main.mk
+++ b/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 # Destinations of artifacts for the host compiler
HROOT$(1)_H_$(3) = $(3)/stage$(1) HROOT$(1)_H_$(3) = $(3)/stage$(1)
HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin
@@ -47,7 +47,7 @@ index 4aed1ce..867d919 100644
# Preqrequisites for using the stageN compiler # Preqrequisites for using the stageN compiler
ifeq ($(1),0) ifeq ($(1),0)
HSREQ$(1)_H_$(3) = $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) 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)) \ $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \ --cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \ $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
@@ -55,7 +55,7 @@ index 4aed1ce..867d919 100644
$$(RUSTC_FLAGS_$(2)) $$(RUSTC_FLAGS_$(2))
PERF_STAGE$(1)_T_$(2)_H_$(3) := \ 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)) \ $$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \ --cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \ $$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
@@ -64,5 +64,5 @@ index 4aed1ce..867d919 100644
endef endef
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Tue, 18 Nov 2014 13:48:14 -0500 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 ++-- mk/grammar.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mk/grammar.mk b/mk/grammar.mk diff --git a/mk/grammar.mk b/mk/grammar.mk
index a9f4590..d254941 100644 index d9c66e2..585206d 100644
--- a/mk/grammar.mk --- a/mk/grammar.mk
+++ b/mk/grammar.mk +++ b/mk/grammar.mk
@@ -11,8 +11,8 @@ @@ -11,8 +11,8 @@
@@ -20,8 +20,8 @@ index a9f4590..d254941 100644
+L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib +L = $(B)$(CFG_LIBDIR_RELATIVE)/rustlib/$(CFG_BUILD)/lib
+LD = $(CFG_BUILD)/stage2/$(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)) RUSTC = $(STAGE2_T_$(CFG_BUILD)_H_$(CFG_BUILD))
ifeq ($(CFG_OSTYPE),apple-darwin)
# Run the reference lexer against libsyntax and compare the tokens and spans. FLEX_LDFLAGS=-ll
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Mon, 24 Nov 2014 13:10:15 -0500 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 non-blessed dirs
Adds --bindir, and: 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 Note that this assumes absolute paths start with '/', which may break
windows platforms windows platforms
--- ---
configure | 51 +++++++++++++++++------- configure | 49 ++++++++++++++++-------
mk/host.mk | 6 ++- mk/host.mk | 6 ++-
mk/main.mk | 11 ++++++ mk/main.mk | 11 ++++++
mk/perf.mk | 4 +- mk/perf.mk | 4 +-
mk/prepare.mk | 4 +- mk/prepare.mk | 4 +-
src/librustc/metadata/filesearch.rs | 78 ++++++++++++++----------------------- src/librustc/metadata/filesearch.rs | 78 ++++++++++++++-----------------------
src/librustc/session/config.rs | 2 +-
src/librustc_trans/back/link.rs | 3 +- 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 diff --git a/configure b/configure
index f14009b..8659809 100755 index a80dafc..e0efaf2 100755
--- a/configure --- a/configure
+++ b/configure +++ b/configure
@@ -309,6 +309,31 @@ envopt() { @@ -309,6 +309,31 @@ envopt() {
@@ -58,7 +59,7 @@ index f14009b..8659809 100755
to_llvm_triple() { to_llvm_triple() {
case $1 in case $1 in
i686-w64-mingw32) echo i686-pc-windows-gnu ;; 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" ] if [ "$CFG_OSTYPE" = "pc-windows-gnu" ]
then then
CFG_LIBDIR_RELATIVE=bin 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.";; - err "libdir must begin with the prefix. Use --prefix to set it accordingly.";;
-esac -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}))-` -CFG_LIBDIR_RELATIVE=`echo ${CFG_LIBDIR} | cut -c$((${#CFG_PREFIX}+${CAT_INC}))-`
- -
-if [ "$CFG_OSTYPE" = "pc-windows-gnu" ] && [ "$CFG_LIBDIR_RELATIVE" != "bin" ]; then -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} )" + err "Windows builds currently require that LIBDIR == BINDIR (we have libdir{$CFG_LIBDIR_RELATIVE} != bindir{$CFG_BINDIR_RELATIVE} )"
fi fi
+CFG_BINDIR_RELATIVE=bin
+valopt bindir "${CFG_PREFIX}/${CFG_BINDIR_RELATIVE}" "install binaries"
+
if [ $HELP -eq 1 ] if [ $HELP -eq 1 ]
then @@ -586,6 +603,11 @@ then
echo
exit 0 exit 0
fi fi
@@ -101,7 +100,7 @@ index f14009b..8659809 100755
# Validate Options # Validate Options
step_msg "validating $CFG_SELF args" step_msg "validating $CFG_SELF args"
validate_opt validate_opt
@@ -1331,6 +1353,7 @@ putvar CFG_PREFIX @@ -1342,6 +1364,7 @@ putvar CFG_PREFIX
putvar CFG_HOST putvar CFG_HOST
putvar CFG_TARGET putvar CFG_TARGET
putvar CFG_LIBDIR_RELATIVE putvar CFG_LIBDIR_RELATIVE
@@ -129,10 +128,10 @@ index 59a0095..b8e8345 100644
endef endef
diff --git a/mk/main.mk b/mk/main.mk diff --git a/mk/main.mk b/mk/main.mk
index 867d919..cfbc1b0 100644 index ab75a47..6659dc9 100644
--- a/mk/main.mk --- a/mk/main.mk
+++ b/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_LLVM_ROOT
export CFG_PREFIX export CFG_PREFIX
export CFG_LIBDIR export CFG_LIBDIR
@@ -140,9 +139,9 @@ index 867d919..cfbc1b0 100644
export CFG_LIBDIR_RELATIVE export CFG_LIBDIR_RELATIVE
+export CFG_BINDIR_RELATIVE +export CFG_BINDIR_RELATIVE
export CFG_DISABLE_INJECT_STD_VERSION export CFG_DISABLE_INJECT_STD_VERSION
ifdef CFG_DISABLE_UNSTABLE_FEATURES
###################################################################### CFG_INFO := $(info cfg: disabling unstable features (CFG_DISABLE_UNSTABLE_FEATURES))
@@ -334,7 +336,16 @@ define SREQ @@ -356,7 +358,16 @@ define SREQ
# Destinations of artifacts for the host compiler # Destinations of artifacts for the host compiler
HROOT$(1)_H_$(3) = $(3)/stage$(1) HROOT$(1)_H_$(3) = $(3)/stage$(1)
@@ -180,10 +179,10 @@ index 16cbaab..f8a354c 100644
endif endif
diff --git a/mk/prepare.mk b/mk/prepare.mk diff --git a/mk/prepare.mk b/mk/prepare.mk
index d404d3d..afc6d81 100644 index f1c4aa6..37c0a1a 100644
--- a/mk/prepare.mk --- a/mk/prepare.mk
+++ b/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 define DEF_PREPARE
prepare-base-$(1): PREPARE_SOURCE_DIR=$$(PREPARE_HOST)/stage$$(PREPARE_STAGE) 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_DEST_MAN_DIR=$$(PREPARE_DEST_DIR)/share/man/man1
prepare-base-$(1): prepare-everything-$(1) prepare-base-$(1): prepare-everything-$(1)
diff --git a/src/librustc/metadata/filesearch.rs b/src/librustc/metadata/filesearch.rs 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 --- a/src/librustc/metadata/filesearch.rs
+++ b/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 { if !found {
let rustpath = rust_path(); let rustpath = rust_path();
for path in rustpath.iter() { for path in &rustpath {
- let tlib_path = make_rustpkg_lib_path( - let tlib_path = make_rustpkg_lib_path(
- self.sysroot, path, self.triple); - self.sysroot, path, self.triple);
+ let tlib_path = make_rustpkg_lib_path(path, self.triple); + let tlib_path = make_rustpkg_lib_path(path, self.triple);
debug!("is {} in visited_dirs? {}", tlib_path.display(), debug!("is {} in visited_dirs? {}", tlib_path.display(),
visited_dirs.contains(&tlib_path.as_vec().to_vec())); 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. // Returns a list of directories where target-specific tool binaries are located.
pub fn get_tools_search_paths(&self) -> Vec<Path> { pub fn get_tools_search_paths(&self) -> Vec<Path> {
let mut p = Path::new(self.sysroot); let mut p = Path::new(self.sysroot);
@@ -219,7 +218,7 @@ index 0b859ab..f92fca6 100644
p.push(rustlibdir()); p.push(rustlibdir());
p.push(self.triple); p.push(self.triple);
p.push("bin"); 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()); assert!(p.is_relative());
p.push(rustlibdir()); p.push(rustlibdir());
p.push(target_triple); 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, fn make_target_lib_path(sysroot: &Path,
target_triple: &str) -> Path { target_triple: &str) -> Path {
@@ -259,10 +258,10 @@ index 0b859ab..f92fca6 100644
pub fn get_or_default_sysroot() -> Path { pub fn get_or_default_sysroot() -> Path {
// Follow symlinks. If the resolved path is relative, make it absolute. // Follow symlinks. If the resolved path is relative, make it absolute.
fn canonicalize(path: Option<Path>) -> Option<Path> { fn canonicalize(path: Option<Path>) -> Option<Path> {
@@ -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) => { p.pop(); p.pop(); p }
+ Some(mut p) => { + Some(mut p) => {
+ // Remove the exe name + // Remove the exe name
@@ -278,7 +277,7 @@ index 0b859ab..f92fca6 100644
None => panic!("can't determine value for sysroot") None => panic!("can't determine value for sysroot")
} }
} }
@@ -254,45 +270,9 @@ pub fn rust_path() -> Vec<Path> { @@ -252,45 +268,9 @@ pub fn rust_path() -> Vec<Path> {
env_rust_path 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 { - fn primary_libdir_name() -> String {
- "lib64".to_string() - "lib64".to_string()
- } - }
- -
- #[cfg(target_word_size = "32")] - #[cfg(target_pointer_width = "32")]
- fn primary_libdir_name() -> String { - fn primary_libdir_name() -> String {
- "lib32".to_string() - "lib32".to_string()
- } - }
@@ -327,17 +326,30 @@ index 0b859ab..f92fca6 100644
} }
// The name of rustc's own place to organize libraries. // 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 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 --- a/src/librustc_trans/back/link.rs
+++ b/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 // where extern libraries might live, based on the
// addl_lib_search_paths // addl_lib_search_paths
if sess.opts.cg.rpath { if sess.opts.cg.rpath {
- let sysroot = sess.sysroot(); - let sysroot = sess.sysroot();
let target_triple = sess.opts.target_triple[]; let target_triple = &sess.opts.target_triple[];
let get_install_prefix_lib_path = |:| { let get_install_prefix_lib_path = || {
let install_prefix = option_env!("CFG_PREFIX").expect("CFG_PREFIX"); 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(sysroot, target_triple);
+ let tlib = filesearch::relative_target_lib_path(target_triple); + let tlib = filesearch::relative_target_lib_path(target_triple);
@@ -345,5 +357,5 @@ index ec61d3a..7928699 100644
path.push(&tlib); path.push(&tlib);
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Mon, 24 Nov 2014 13:54:42 -0500 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 +- mk/clean.mk | 2 +-
@@ -12,10 +12,10 @@ Subject: [PATCH 09/10] Parallelize submake invocations
5 files changed, 12 insertions(+), 10 deletions(-) 5 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/mk/clean.mk b/mk/clean.mk diff --git a/mk/clean.mk b/mk/clean.mk
index aadc55b..f671745 100644 index 5b90d41..2a7ba6d 100644
--- a/mk/clean.mk --- a/mk/clean.mk
+++ b/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 define DEF_CLEAN_LLVM_HOST
ifeq ($(CFG_LLVM_ROOT),) ifeq ($(CFG_LLVM_ROOT),)
clean-llvm$(1): clean-llvm$(1):
@@ -25,7 +25,7 @@ index aadc55b..f671745 100644
clean-llvm$(1): ; clean-llvm$(1): ;
diff --git a/mk/install.mk b/mk/install.mk diff --git a/mk/install.mk b/mk/install.mk
index 632df3c..954d494 100644 index 60c0a6b..a3a44ed 100644
--- a/mk/install.mk --- a/mk/install.mk
+++ b/mk/install.mk +++ b/mk/install.mk
@@ -17,9 +17,9 @@ endif @@ -17,9 +17,9 @@ endif
@@ -38,9 +38,9 @@ index 632df3c..954d494 100644
- $(Q)$(MAKE) prepare_install - $(Q)$(MAKE) prepare_install
+ $(Q)$(P)$(MAKE) prepare_install + $(Q)$(P)$(MAKE) prepare_install
endif 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)" ifeq ($(CFG_DISABLE_DOCS),)
# Remove tmp files because it's a decent amount of disk space $(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)"
@@ -30,9 +30,9 @@ prepare_install: dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz | tmp/empty_dir @@ -33,9 +33,9 @@ prepare_install: dist-tar-bins | tmp/empty_dir
uninstall: uninstall:
ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER))) ifeq (root user, $(USER) $(patsubst %,user,$(SUDO_USER)))
# Build the dist as the original user # Build the dist as the original user
@@ -50,8 +50,8 @@ index 632df3c..954d494 100644
- $(Q)$(MAKE) prepare_uninstall - $(Q)$(MAKE) prepare_uninstall
+ $(Q)$(P)$(MAKE) prepare_uninstall + $(Q)$(P)$(MAKE) prepare_uninstall
endif 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)" ifeq ($(CFG_DISABLE_DOCS),)
# Remove tmp files because it's a decent amount of disk space $(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 diff --git a/mk/llvm.mk b/mk/llvm.mk
index ba2e073..3998806 100644 index ba2e073..3998806 100644
--- a/mk/llvm.mk --- a/mk/llvm.mk
@@ -75,10 +75,10 @@ index ba2e073..3998806 100644
touch $$@ touch $$@
diff --git a/mk/rt.mk b/mk/rt.mk diff --git a/mk/rt.mk b/mk/rt.mk
index 65b6ae1..a064ee1 100644 index a8ac839..d609cd2 100644
--- a/mk/rt.mk --- a/mk/rt.mk
+++ b/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" \ RANLIB="$$(AR_$(1)) s" \
CPPFLAGS="-I $(S)src/rt/" \ CPPFLAGS="-I $(S)src/rt/" \
EXTRA_CFLAGS="-g1 -ffunction-sections -fdata-sections" EXTRA_CFLAGS="-g1 -ffunction-sections -fdata-sections"
@@ -87,7 +87,7 @@ index 65b6ae1..a064ee1 100644
ifeq ($$(CFG_DISABLE_JEMALLOC),) ifeq ($$(CFG_DISABLE_JEMALLOC),)
RUSTFLAGS_alloc := --cfg 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) $$(COMPRT_LIB_$(1)): $$(COMPRT_DEPS) $$(MKFILE_DEPS)
@$$(call E, make: compiler-rt) @$$(call E, make: compiler-rt)
@@ -96,7 +96,7 @@ index 65b6ae1..a064ee1 100644
ProjSrcRoot="$(S)src/compiler-rt" \ ProjSrcRoot="$(S)src/compiler-rt" \
ProjObjRoot="$$(abspath $$(COMPRT_BUILD_DIR_$(1)))" \ ProjObjRoot="$$(abspath $$(COMPRT_BUILD_DIR_$(1)))" \
CC="$$(CC_$(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) $$(BACKTRACE_LIB_$(1)): $$(BACKTRACE_BUILD_DIR_$(1))/Makefile $$(MKFILE_DEPS)
@$$(call E, make: libbacktrace) @$$(call E, make: libbacktrace)
@@ -118,5 +118,5 @@ index 3bbc8f4..4300b02 100644
S := $(CFG_SRC_DIR) S := $(CFG_SRC_DIR)
-- --
2.2.1 2.3.0
@@ -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 <dev@codyps.com> From: Cody P Schafer <dev@codyps.com>
Date: Wed, 3 Dec 2014 19:15:19 -0500 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 +- src/libstd/thread_local/mod.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libstd/thread_local/mod.rs b/src/libstd/thread_local/mod.rs 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 --- a/src/libstd/thread_local/mod.rs
+++ b/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"] #[linkage = "extern_weak"]
static __cxa_thread_atexit_impl: *const (); static __cxa_thread_atexit_impl: *const ();
} }
@@ -21,5 +21,5 @@ index 242dceb..45ce980 100644
arg: *mut u8, arg: *mut u8,
dso_handle: *mut u8) -> libc::c_int; dso_handle: *mut u8) -> libc::c_int;
-- --
2.2.1 2.3.0
@@ -0,0 +1,96 @@
From 937d33a68d367bd67060b8a57082324ef7589878 Mon Sep 17 00:00:00 2001
From: Cody P Schafer <dev@codyps.com>
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
@@ -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
@@ -1,11 +1,10 @@
SRCREV = "71123902e17ad339649f33423995eac78da40e3c" # 2014-02-10
# pre-ascii reform SRCREV = "88d8ba5ab3b1d22288b021708c3d87464e43b880"
#SRCREV = "0201334439393bed205c1148bed425b80aab8c22"
require rust-git.inc require rust-git.inc
SRC_URI_append = "\ SRC_URI_append = "\
file://0001-libstd-io-process-Command-fully-quote-and-escape-the.patch \ 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://0003-platform.mk-avoid-choking-on-i586.patch \
file://0004-mk-rt-compiler_rt-pass-LDFLAGS-from-CFG_GCCISH_LINK_.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 \ 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://0008-configure-support-bindir-and-extend-libdir-to-non-bl.patch \
file://0009-Parallelize-submake-invocations.patch \ file://0009-Parallelize-submake-invocations.patch \
file://0010-std-thread_local-workaround-for-NULL-__dso_handle.patch \ file://0010-std-thread_local-workaround-for-NULL-__dso_handle.patch \
\ file://0011-librustc_back-target-rename-json-field-from-target-w.patch \
file://rust-0.13.0-no-ldconfig.patch \
" "