Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 703744
Collapse All | Expand All

(-)a/src/bootstrap/builder.rs (+1 lines)
Lines 646-651 impl<'a> Builder<'a> { Link Here
646
    pub fn sysroot_libdir_relative(&self, compiler: Compiler) -> &Path {
646
    pub fn sysroot_libdir_relative(&self, compiler: Compiler) -> &Path {
647
        match self.config.libdir_relative() {
647
        match self.config.libdir_relative() {
648
            Some(relative_libdir) if compiler.stage >= 1 => relative_libdir,
648
            Some(relative_libdir) if compiler.stage >= 1 => relative_libdir,
649
            _ if compiler.stage == 0 => &self.build.initial_libdir,
649
            _ => Path::new("lib"),
650
            _ => Path::new("lib"),
650
        }
651
        }
651
    }
652
    }
(-)a/src/bootstrap/lib.rs (-7 / +28 lines)
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(),

Return to bug 703744