Skip to content

Commit 2c074f1

Browse files
lhtgraydon
authored andcommitted
---
yaml --- r: 6665 b: refs/heads/master c: 76f13c9 h: refs/heads/master i: 6663: 8a951c8 v: v3
1 parent 53c181d commit 2c074f1

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 6c6f83f69312c681731f5fd28137de450b4d2881
2+
refs/heads/master: 76f13c95a0d1b1f33805719ccde9600b000e4418

trunk/src/comp/back/link.rs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,29 @@ fn link_binary(sess: session::session,
561561
obj_filename: str,
562562
out_filename: str,
563563
lm: link_meta) {
564+
// Converts a library file name into a gcc -l argument
565+
fn unlib(config: @session::config, filename: str) -> str {
566+
let rmlib =
567+
bind fn (config: @session::config, filename: str) -> str {
568+
if config.os == session::os_macos ||
569+
config.os == session::os_linux &&
570+
str::find(filename, "lib") == 0 {
571+
ret str::slice(filename, 3u,
572+
str::byte_len(filename));
573+
} else { ret filename; }
574+
}(config, _);
575+
fn rmext(filename: str) -> str {
576+
let parts = str::split(filename, '.' as u8);
577+
vec::pop(parts);
578+
ret str::connect(parts, ".");
579+
}
580+
ret alt config.os {
581+
session::os_macos. { rmext(rmlib(filename)) }
582+
session::os_linux. { rmext(rmlib(filename)) }
583+
_ { rmext(filename) }
584+
};
585+
}
586+
564587
let output = if sess.building_library() {
565588
let long_libname =
566589
std::os::dylib_filename(#fmt("%s-%s-%s",
@@ -585,29 +608,6 @@ fn link_binary(sess: session::session,
585608
lib_cmd = "-dynamiclib";
586609
} else { lib_cmd = "-shared"; }
587610

588-
// Converts a library file name into a gcc -l argument
589-
fn unlib(config: @session::config, filename: str) -> str {
590-
let rmlib =
591-
bind fn (config: @session::config, filename: str) -> str {
592-
if config.os == session::os_macos ||
593-
config.os == session::os_linux &&
594-
str::find(filename, "lib") == 0 {
595-
ret str::slice(filename, 3u,
596-
str::byte_len(filename));
597-
} else { ret filename; }
598-
}(config, _);
599-
fn rmext(filename: str) -> str {
600-
let parts = str::split(filename, '.' as u8);
601-
vec::pop(parts);
602-
ret str::connect(parts, ".");
603-
}
604-
ret alt config.os {
605-
session::os_macos. { rmext(rmlib(filename)) }
606-
session::os_linux. { rmext(rmlib(filename)) }
607-
_ { rmext(filename) }
608-
};
609-
}
610-
611611
let cstore = sess.get_cstore();
612612
for cratepath: str in cstore::get_used_crate_files(cstore) {
613613
if str::ends_with(cratepath, ".rlib") {
@@ -655,7 +655,7 @@ fn link_binary(sess: session::session,
655655
gcc_args += ["-lmorestack"];
656656
}
657657

658-
gcc_args += rpath::get_rpath_flags(sess, out_filename);
658+
gcc_args += rpath::get_rpath_flags(sess, output);
659659

660660
log #fmt("gcc link args: %s", str::connect(gcc_args, " "));
661661
// We run 'gcc' here

0 commit comments

Comments
 (0)