Move bundled gcc and its libs out into $rust/rustlib/<triple>/gcc/(bin|lib). This way the libs won't be on the -L library search path, and won't confuse external gcc, if one is used. The bundled gcc itself will still be able to find them, because it searches for libs relative to own install location.

This commit is contained in:
Vadim Chugunov 2014-09-20 11:42:10 -07:00
parent 3b6e880fff
commit 04c41eb372
2 changed files with 9 additions and 5 deletions

View File

@ -58,15 +58,15 @@ def make_win_dist(dist_root, target_triple):
for src in rustc_dlls:
shutil.copy(src, dist_bin_dir)
# Copy platform tools (and another copy of runtime dlls) to platform-spcific bin directory
target_bin_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "bin")
# Copy platform tools to platform-specific bin directory
target_bin_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "gcc", "bin")
if not os.path.exists(target_bin_dir):
os.makedirs(target_bin_dir)
for src in target_tools:
shutil.copy(src, target_bin_dir)
# Copy platform libs to platform-spcific lib directory
target_lib_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "lib")
target_lib_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "gcc", "lib")
if not os.path.exists(target_lib_dir):
os.makedirs(target_lib_dir)
for src in target_libs:

View File

@ -150,8 +150,12 @@ impl<'a> FileSearch<'a> {
p.push(find_libdir(self.sysroot));
p.push(rustlibdir());
p.push(self.triple);
p.push("bin");
vec![p]
let mut p1 = p.clone();
p1.push("bin");
let mut p2 = p.clone();
p2.push("gcc");
p2.push("bin");
vec![p1, p2]
}
}