File tree 2 files changed +11
-2
lines changed
2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 16
16
//! never get replaced.
17
17
18
18
use std:: env;
19
- use std:: path:: PathBuf ;
19
+ use std:: path:: { Path , PathBuf } ;
20
20
use std:: process:: { Child , Command } ;
21
21
use std:: time:: Instant ;
22
22
@@ -85,7 +85,12 @@ fn main() {
85
85
} else {
86
86
// Cargo doesn't respect RUSTC_WRAPPER for version information >:(
87
87
// don't remove the first arg if we're being run as RUSTC instead of RUSTC_WRAPPER.
88
- if args[ 0 ] == env:: current_exe ( ) . expect ( "couldn't get path to rustc shim" ) {
88
+ // Cargo also sometimes doesn't pass the `.exe` suffix on Windows - add it manually.
89
+ let current_exe = env:: current_exe ( ) . expect ( "couldn't get path to rustc shim" ) ;
90
+ // NOTE: we intentionally pass the name of the host, not the target.
91
+ let host = env:: var ( "CFG_COMPILER_BUILD_TRIPLE" ) . unwrap ( ) ;
92
+ let arg0 = exe ( args[ 0 ] . to_str ( ) . expect ( "only utf8 paths are supported" ) , & host) ;
93
+ if Path :: new ( & arg0) == current_exe {
89
94
args. remove ( 0 ) ;
90
95
}
91
96
rustc_real
Original file line number Diff line number Diff line change @@ -2014,7 +2014,11 @@ impl<'a> Builder<'a> {
2014
2014
// Environment variables *required* throughout the build
2015
2015
//
2016
2016
// FIXME: should update code to not require this env var
2017
+
2018
+ // The host this new compiler will *run* on.
2017
2019
cargo. env ( "CFG_COMPILER_HOST_TRIPLE" , target. triple ) ;
2020
+ // The host this new compiler is being *built* on.
2021
+ cargo. env ( "CFG_COMPILER_BUILD_TRIPLE" , compiler. host . triple ) ;
2018
2022
2019
2023
// Set this for all builds to make sure doc builds also get it.
2020
2024
cargo. env ( "CFG_RELEASE_CHANNEL" , & self . config . channel ) ;
You can’t perform that action at this time.
0 commit comments