Skip to content

Commit

Permalink
librustc: Add argument to allow choosing "linker"
Browse files Browse the repository at this point in the history
  • Loading branch information
luqmana committed May 3, 2013
1 parent 9a31cdb commit 832f7b7
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 12 deletions.
28 changes: 18 additions & 10 deletions src/librustc/back/link.rs
Original file line number Diff line number Diff line change
Expand Up @@ -752,18 +752,26 @@ pub fn link_binary(sess: Session,
// instead of hard-coded gcc.
// For win32, there is no cc command,
// so we add a condition to make it use gcc.
let cc_prog: ~str = if sess.targ_cfg.os == session::os_android {
match &sess.opts.android_cross_path {
&Some(copy path) => {
fmt!("%s/bin/arm-linux-androideabi-gcc", path)
}
&None => {
sess.fatal(~"need Android NDK path for linking \
(--android-cross-path)")
let cc_prog: ~str = match sess.opts.linker {
Some(copy linker) => linker,
None => {
if sess.targ_cfg.os == session::os_android {
match &sess.opts.android_cross_path {
&Some(copy path) => {
fmt!("%s/bin/arm-linux-androideabi-gcc", path)
}
&None => {
sess.fatal(~"need Android NDK path for linking \
(--android-cross-path)")
}
}
} else if sess.targ_cfg.os == session::os_win32 {
~"gcc"
} else {
~"cc"
}
}
} else if sess.targ_cfg.os == session::os_win32 { ~"gcc" }
else { ~"cc" };
};
// The invocations of cc share some flags across platforms
Expand Down
4 changes: 3 additions & 1 deletion src/librustc/driver/driver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ pub fn build_session_options(binary: @~str,
};
let addl_lib_search_paths = getopts::opt_strs(matches, ~"L").map(|s| Path(*s));
let linker = getopts::opt_maybe_str(matches, ~"linker");
let linker_args = getopts::opt_strs(matches, ~"link-args").flat_map( |a| {
let mut args = ~[];
for str::each_split_char(*a, ' ') |arg| {
Expand All @@ -676,6 +676,7 @@ pub fn build_session_options(binary: @~str,
jit: jit,
output_type: output_type,
addl_lib_search_paths: addl_lib_search_paths,
linker: linker,
linker_args: linker_args,
maybe_sysroot: sysroot_opt,
target_triple: target,
Expand Down Expand Up @@ -760,6 +761,7 @@ pub fn optgroups() -> ~[getopts::groups::OptGroup] {
optmulti("L", "", "Add a directory to the library search path",
"PATH"),
optflag("", "lib", "Compile a library crate"),
optopt("", "linker", "Program to use for linking instead of the default.", "LINKER"),
optmulti("", "link-args", "FLAGS is a space-separated list of flags
passed to the linker", "FLAGS"),
optflag("", "ls", "List the symbols defined by a library crate"),
Expand Down
4 changes: 3 additions & 1 deletion src/librustc/driver/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ pub struct options {
jit: bool,
output_type: back::link::output_type,
addl_lib_search_paths: ~[Path],
linker: Option<~str>,
linker_args: ~[~str],
maybe_sysroot: Option<Path>,
target_triple: ~str,
Expand Down Expand Up @@ -302,7 +303,8 @@ pub fn basic_options() -> @options {
jit: false,
output_type: link::output_type_exe,
addl_lib_search_paths: ~[],
linker_args:~[],
linker: None,
linker_args: ~[],
maybe_sysroot: None,
target_triple: host_triple(),
target_feature: ~"",
Expand Down

5 comments on commit 832f7b7

@bors
Copy link
Contributor

@bors bors commented on 832f7b7 May 4, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from graydon
at luqmana@832f7b7

@bors
Copy link
Contributor

@bors bors commented on 832f7b7 May 4, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging luqmana/rust/linker-arg = 832f7b7 into auto

@bors
Copy link
Contributor

@bors bors commented on 832f7b7 May 4, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

luqmana/rust/linker-arg = 832f7b7 merged ok, testing candidate = 5bf7e8b

@bors
Copy link
Contributor

@bors bors commented on 832f7b7 May 4, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bors
Copy link
Contributor

@bors bors commented on 832f7b7 May 4, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding incoming to auto = 5bf7e8b

Please sign in to comment.