@@ -108,6 +108,7 @@ use std::collections::{HashMap, HashSet};
108
108
use std:: env;
109
109
use std:: fs:: { self , File } ;
110
110
use std:: io;
111
+ use std:: io:: ErrorKind ;
111
112
use std:: path:: { Path , PathBuf } ;
112
113
use std:: process:: Command ;
113
114
use std:: str;
@@ -119,7 +120,9 @@ use once_cell::sync::OnceCell;
119
120
120
121
use crate :: builder:: Kind ;
121
122
use 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
+ } ;
123
126
124
127
mod bolt;
125
128
mod builder;
@@ -586,6 +589,20 @@ impl Build {
586
589
metadata:: build ( & mut build) ;
587
590
}
588
591
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
+
589
606
build
590
607
}
591
608
0 commit comments