Get rid of the android-cross-path flag to rustc.
There's no need to include this specific flag just for android. We can already deal with what it tries to solve by using -C linker=/path/to/cc and -C ar=/path/to/ar. The Makefiles for rustc already set this up when we're crosscompiling. I did add the flag to compiletest though so it can find gdb. Though, I'm pretty sure we don't run debuginfo tests on android anyways right now. [breaking-change]
This commit is contained in:
parent
e4414739a5
commit
d0d800f125
|
@ -138,9 +138,6 @@ A space-separated list of arguments to pass through to LLVM.
|
||||||
If specified, the compiler will save more files (.bc, .o, .no-opt.bc) generated
|
If specified, the compiler will save more files (.bc, .o, .no-opt.bc) generated
|
||||||
throughout compilation in the output directory.
|
throughout compilation in the output directory.
|
||||||
.TP
|
.TP
|
||||||
\fBandroid-cross-path\fR=path/to/ndk/bin
|
|
||||||
Directory to find the Android NDK cross-compilation tools
|
|
||||||
.TP
|
|
||||||
\fBno-rpath\fR
|
\fBno-rpath\fR
|
||||||
If specified, then the rpath value for dynamic libraries will not be set in
|
If specified, then the rpath value for dynamic libraries will not be set in
|
||||||
either dynamic library or executable outputs.
|
either dynamic library or executable outputs.
|
||||||
|
|
|
@ -307,7 +307,7 @@ CFG_LDPATH_arm-linux-androideabi :=
|
||||||
CFG_RUN_arm-linux-androideabi=
|
CFG_RUN_arm-linux-androideabi=
|
||||||
CFG_RUN_TARG_arm-linux-androideabi=
|
CFG_RUN_TARG_arm-linux-androideabi=
|
||||||
RUSTC_FLAGS_arm-linux-androideabi :=
|
RUSTC_FLAGS_arm-linux-androideabi :=
|
||||||
RUSTC_CROSS_FLAGS_arm-linux-androideabi :=-C android-cross-path=$(CFG_ANDROID_CROSS_PATH)
|
RUSTC_CROSS_FLAGS_arm-linux-androideabi :=
|
||||||
|
|
||||||
# arm-unknown-linux-gnueabihf configuration
|
# arm-unknown-linux-gnueabihf configuration
|
||||||
CROSS_PREFIX_arm-unknown-linux-gnueabihf=arm-linux-gnueabihf-
|
CROSS_PREFIX_arm-unknown-linux-gnueabihf=arm-linux-gnueabihf-
|
||||||
|
|
|
@ -601,6 +601,7 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
|
||||||
--stage-id stage$(1)-$(2) \
|
--stage-id stage$(1)-$(2) \
|
||||||
--target $(2) \
|
--target $(2) \
|
||||||
--host $(3) \
|
--host $(3) \
|
||||||
|
--android-cross-path=$(CFG_ANDROID_CROSS_PATH) \
|
||||||
--adb-path=$(CFG_ADB) \
|
--adb-path=$(CFG_ADB) \
|
||||||
--adb-test-dir=$(CFG_ADB_TEST_DIR) \
|
--adb-test-dir=$(CFG_ADB_TEST_DIR) \
|
||||||
--host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
|
--host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
|
||||||
|
|
|
@ -126,6 +126,9 @@ pub struct Config {
|
||||||
// Host triple for the compiler being invoked
|
// Host triple for the compiler being invoked
|
||||||
pub host: ~str,
|
pub host: ~str,
|
||||||
|
|
||||||
|
// Path to the android tools
|
||||||
|
pub android_cross_path: Path,
|
||||||
|
|
||||||
// Extra parameter to run adb on arm-linux-androideabi
|
// Extra parameter to run adb on arm-linux-androideabi
|
||||||
pub adb_path: ~str,
|
pub adb_path: ~str,
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,7 @@ pub fn parse_config(args: Vec<~str> ) -> Config {
|
||||||
optflag("", "jit", "run tests under the JIT"),
|
optflag("", "jit", "run tests under the JIT"),
|
||||||
optopt("", "target", "the target to build for", "TARGET"),
|
optopt("", "target", "the target to build for", "TARGET"),
|
||||||
optopt("", "host", "the host to build for", "HOST"),
|
optopt("", "host", "the host to build for", "HOST"),
|
||||||
|
optopt("", "android-cross-path", "Android NDK standalone path", "PATH"),
|
||||||
optopt("", "adb-path", "path to the android debugger", "PATH"),
|
optopt("", "adb-path", "path to the android debugger", "PATH"),
|
||||||
optopt("", "adb-test-dir", "path to tests for the android debugger", "PATH"),
|
optopt("", "adb-test-dir", "path to tests for the android debugger", "PATH"),
|
||||||
optopt("", "lldb-python-dir", "directory containing LLDB's python module", "PATH"),
|
optopt("", "lldb-python-dir", "directory containing LLDB's python module", "PATH"),
|
||||||
|
@ -142,6 +143,7 @@ pub fn parse_config(args: Vec<~str> ) -> Config {
|
||||||
jit: matches.opt_present("jit"),
|
jit: matches.opt_present("jit"),
|
||||||
target: opt_str2(matches.opt_str("target")).to_str(),
|
target: opt_str2(matches.opt_str("target")).to_str(),
|
||||||
host: opt_str2(matches.opt_str("host")).to_str(),
|
host: opt_str2(matches.opt_str("host")).to_str(),
|
||||||
|
android_cross_path: opt_path(matches, "android-cross-path"),
|
||||||
adb_path: opt_str2(matches.opt_str("adb-path")).to_str(),
|
adb_path: opt_str2(matches.opt_str("adb-path")).to_str(),
|
||||||
adb_test_dir:
|
adb_test_dir:
|
||||||
opt_str2(matches.opt_str("adb-test-dir")).to_str(),
|
opt_str2(matches.opt_str("adb-test-dir")).to_str(),
|
||||||
|
@ -173,6 +175,7 @@ pub fn log_config(config: &Config) {
|
||||||
logv(c, format!("jit: {}", config.jit));
|
logv(c, format!("jit: {}", config.jit));
|
||||||
logv(c, format!("target: {}", config.target));
|
logv(c, format!("target: {}", config.target));
|
||||||
logv(c, format!("host: {}", config.host));
|
logv(c, format!("host: {}", config.host));
|
||||||
|
logv(c, format!("android-cross-path: {}", config.android_cross_path.display()));
|
||||||
logv(c, format!("adb_path: {}", config.adb_path));
|
logv(c, format!("adb_path: {}", config.adb_path));
|
||||||
logv(c, format!("adb_test_dir: {}", config.adb_test_dir));
|
logv(c, format!("adb_test_dir: {}", config.adb_test_dir));
|
||||||
logv(c, format!("adb_device_status: {}", config.adb_device_status));
|
logv(c, format!("adb_device_status: {}", config.adb_device_status));
|
||||||
|
|
|
@ -347,18 +347,10 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
let args = split_maybe_args(&config.target_rustcflags);
|
let tool_path = match config.android_cross_path.as_str() {
|
||||||
let mut tool_path = StrBuf::new();
|
Some(x) => x.to_strbuf(),
|
||||||
for arg in args.iter() {
|
None => fatal("cannot find android cross path".to_owned())
|
||||||
if arg.contains("android-cross-path=") {
|
};
|
||||||
tool_path = StrBuf::from_str(arg.replace("android-cross-path=", ""));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if tool_path.is_empty() {
|
|
||||||
fatal("cannot found android cross path".to_owned());
|
|
||||||
}
|
|
||||||
|
|
||||||
let debugger_script = make_out_name(config, testfile, "debugger.script");
|
let debugger_script = make_out_name(config, testfile, "debugger.script");
|
||||||
// FIXME (#9639): This needs to handle non-utf8 paths
|
// FIXME (#9639): This needs to handle non-utf8 paths
|
||||||
|
|
|
@ -5,7 +5,6 @@ local -a _rustc_opts_switches _rustc_opts_lint _rustc_opts_debug
|
||||||
typeset -A opt_args
|
typeset -A opt_args
|
||||||
|
|
||||||
_rustc_opts_switches=(
|
_rustc_opts_switches=(
|
||||||
--android-cross-path'[The path to the Android NDK]'
|
|
||||||
--ar'[Program to use for managing archives instead of the default.]'
|
--ar'[Program to use for managing archives instead of the default.]'
|
||||||
-c'[Compile and assemble, but do not link]'
|
-c'[Compile and assemble, but do not link]'
|
||||||
--cfg'[Configure the compilation environment]'
|
--cfg'[Configure the compilation environment]'
|
||||||
|
|
|
@ -757,40 +757,15 @@ pub fn get_cc_prog(sess: &Session) -> StrBuf {
|
||||||
// instead of hard-coded gcc.
|
// instead of hard-coded gcc.
|
||||||
// For win32, there is no cc command, so we add a condition to make it use gcc.
|
// For win32, there is no cc command, so we add a condition to make it use gcc.
|
||||||
match sess.targ_cfg.os {
|
match sess.targ_cfg.os {
|
||||||
abi::OsWin32 => return "gcc".to_strbuf(),
|
abi::OsWin32 => "gcc",
|
||||||
_ => {},
|
_ => "cc",
|
||||||
}
|
}.to_strbuf()
|
||||||
|
|
||||||
get_system_tool(sess, "cc")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_ar_prog(sess: &Session) -> StrBuf {
|
pub fn get_ar_prog(sess: &Session) -> StrBuf {
|
||||||
match sess.opts.cg.ar {
|
match sess.opts.cg.ar {
|
||||||
Some(ref ar) => return (*ar).clone(),
|
Some(ref ar) => (*ar).clone(),
|
||||||
None => {}
|
None => "ar".to_strbuf()
|
||||||
}
|
|
||||||
|
|
||||||
get_system_tool(sess, "ar")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_system_tool(sess: &Session, tool: &str) -> StrBuf {
|
|
||||||
match sess.targ_cfg.os {
|
|
||||||
abi::OsAndroid => match sess.opts.cg.android_cross_path {
|
|
||||||
Some(ref path) => {
|
|
||||||
let tool_str = match tool {
|
|
||||||
"cc" => "gcc",
|
|
||||||
_ => tool
|
|
||||||
};
|
|
||||||
format_strbuf!("{}/bin/arm-linux-androideabi-{}",
|
|
||||||
*path,
|
|
||||||
tool_str)
|
|
||||||
}
|
|
||||||
None => {
|
|
||||||
sess.fatal(format!("need Android NDK path for the '{}' tool \
|
|
||||||
(-C android-cross-path)", tool))
|
|
||||||
}
|
|
||||||
},
|
|
||||||
_ => tool.to_strbuf(),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -294,8 +294,6 @@ cgoptions!(
|
||||||
"a list of arguments to pass to llvm (space separated)"),
|
"a list of arguments to pass to llvm (space separated)"),
|
||||||
save_temps: bool = (false, parse_bool,
|
save_temps: bool = (false, parse_bool,
|
||||||
"save all temporary output files during compilation"),
|
"save all temporary output files during compilation"),
|
||||||
android_cross_path: Option<StrBuf> = (None, parse_opt_string,
|
|
||||||
"the path to the Android NDK"),
|
|
||||||
no_rpath: bool = (false, parse_bool,
|
no_rpath: bool = (false, parse_bool,
|
||||||
"disables setting the rpath in libs/exes"),
|
"disables setting the rpath in libs/exes"),
|
||||||
no_prepopulate_passes: bool = (false, parse_bool,
|
no_prepopulate_passes: bool = (false, parse_bool,
|
||||||
|
|
Loading…
Reference in New Issue