Lines 242-247
pub struct Build {
Link Here
|
242 |
initial_rustc: PathBuf, |
242 |
initial_rustc: PathBuf, |
243 |
initial_cargo: PathBuf, |
243 |
initial_cargo: PathBuf, |
244 |
initial_lld: PathBuf, |
244 |
initial_lld: PathBuf, |
|
|
245 |
initial_libdir: PathBuf, |
245 |
|
246 |
|
246 |
// Runtime state filled in later on |
247 |
// Runtime state filled in later on |
247 |
// C/C++ compilers and archiver for all targets |
248 |
// C/C++ compilers and archiver for all targets |
Lines 343-360
impl Build {
Link Here
|
343 |
// we always try to use git for LLVM builds |
344 |
// we always try to use git for LLVM builds |
344 |
let in_tree_llvm_info = channel::GitInfo::new(false, &src.join("src/llvm-project")); |
345 |
let in_tree_llvm_info = channel::GitInfo::new(false, &src.join("src/llvm-project")); |
345 |
|
346 |
|
346 |
let initial_sysroot = config.initial_rustc.parent().unwrap().parent().unwrap(); |
347 |
let initial_target_libdir_str = output( |
347 |
let initial_lld = initial_sysroot |
348 |
Command::new(&config.initial_rustc) |
348 |
.join("lib") |
349 |
.arg("--target") |
349 |
.join("rustlib") |
350 |
.arg(config.build) |
350 |
.join(config.build) |
351 |
.arg("--print") |
351 |
.join("bin") |
352 |
.arg("target-libdir"), |
352 |
.join("rust-lld"); |
353 |
); |
|
|
354 |
let initial_target_dir = Path::new(&initial_target_libdir_str).parent().unwrap(); |
355 |
let initial_lld = initial_target_dir.join("bin").join("rust-lld"); |
356 |
|
357 |
let initial_sysroot = output( |
358 |
Command::new(&config.initial_rustc) |
359 |
.arg("--print") |
360 |
.arg("sysroot"), |
361 |
); |
362 |
println!("stage0 sysroot: {}", initial_sysroot); |
363 |
let initial_libdir_full = initial_target_dir |
364 |
.parent() |
365 |
.unwrap() |
366 |
.parent() |
367 |
.unwrap(); |
368 |
println!("stage0 libdir: {}", initial_libdir_full.display()); |
369 |
let initial_libdir = initial_libdir_full |
370 |
.strip_prefix(initial_sysroot.trim()) |
371 |
.unwrap() |
372 |
.to_path_buf(); |
353 |
|
373 |
|
354 |
let mut build = Build { |
374 |
let mut build = Build { |
355 |
initial_rustc: config.initial_rustc.clone(), |
375 |
initial_rustc: config.initial_rustc.clone(), |
356 |
initial_cargo: config.initial_cargo.clone(), |
376 |
initial_cargo: config.initial_cargo.clone(), |
357 |
initial_lld, |
377 |
initial_lld, |
|
|
378 |
initial_libdir, |
358 |
local_rebuild: config.local_rebuild, |
379 |
local_rebuild: config.local_rebuild, |
359 |
fail_fast: config.cmd.fail_fast(), |
380 |
fail_fast: config.cmd.fail_fast(), |
360 |
doc_tests: config.cmd.doc_tests(), |
381 |
doc_tests: config.cmd.doc_tests(), |