File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Expand file tree Collapse file tree 1 file changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -58,7 +58,22 @@ fn config() -> Config {
5858 ] ;
5959 let mut args: Vec < String > = args. iter ( ) . map ( ToString :: to_string) . collect ( ) ;
6060 args. push ( "--rustc-path" . to_string ( ) ) ;
61- args. push ( std:: env:: var ( "RUSTC" ) . unwrap_or_else ( |_| "rustc" . to_string ( ) ) ) ;
61+ // This is a subtle/fragile thing. On rust-lang CI, there is no global
62+ // `rustc`, and Cargo doesn't offer a convenient way to get the path to
63+ // `rustc`. Fortunately bootstrap sets `RUSTC` for us, which is pointing
64+ // to the stage0 compiler.
65+ //
66+ // Otherwise, if you are running compiletests's tests manually, you
67+ // probably don't have `RUSTC` set, in which case this falls back to the
68+ // global rustc. If your global rustc is too far out of sync with stage0,
69+ // then this may cause confusing errors. Or if for some reason you don't
70+ // have rustc in PATH, that would also fail.
71+ args. push ( std:: env:: var ( "RUSTC" ) . unwrap_or_else ( |_| {
72+ eprintln ! (
73+ "warning: RUSTC not set, using global rustc (are you not running via bootstrap?)"
74+ ) ;
75+ "rustc" . to_string ( )
76+ } ) ) ;
6277 crate :: parse_config ( args)
6378}
6479
You can’t perform that action at this time.
0 commit comments