@@ -108,6 +108,7 @@ use std::collections::{HashMap, HashSet};
108108use std:: env;
109109use std:: fs:: { self , File } ;
110110use std:: io;
111+ use std:: io:: ErrorKind ;
111112use std:: path:: { Path , PathBuf } ;
112113use std:: process:: Command ;
113114use std:: str;
@@ -119,7 +120,9 @@ use once_cell::sync::OnceCell;
119120
120121use crate :: builder:: Kind ;
121122use crate :: config:: { LlvmLibunwind , TargetSelection } ;
122- use crate :: util:: { exe, libdir, mtime, output, run, run_suppressed, try_run_suppressed, CiEnv } ;
123+ use crate :: util:: {
124+ exe, libdir, mtime, output, run, run_suppressed, symlink_dir, try_run_suppressed, CiEnv ,
125+ } ;
123126
124127mod bolt;
125128mod builder;
@@ -586,6 +589,20 @@ impl Build {
586589 metadata:: build ( & mut build) ;
587590 }
588591
592+ // Make a symbolic link so we can use a consistent directory in the documentation.
593+ let build_triple = build. out . join ( & build. build . triple ) ;
594+ let host = build. out . join ( "host" ) ;
595+ if let Err ( e) = symlink_dir ( & build. config , & build_triple, & host) {
596+ if e. kind ( ) != ErrorKind :: AlreadyExists {
597+ panic ! (
598+ "symlink_dir({} => {}) failed with {}" ,
599+ host. display( ) ,
600+ build_triple. display( ) ,
601+ e
602+ ) ;
603+ }
604+ }
605+
589606 build
590607 }
591608
0 commit comments