@@ -360,7 +360,12 @@ impl Step for Miri {
360
360
361
361
let miri =
362
362
builder. ensure ( tool:: Miri { compiler, target : self . host , extra_features : Vec :: new ( ) } ) ;
363
- if let Some ( miri) = miri {
363
+ let cargo_miri = builder. ensure ( tool:: CargoMiri {
364
+ compiler,
365
+ target : self . host ,
366
+ extra_features : Vec :: new ( ) ,
367
+ } ) ;
368
+ if let ( Some ( miri) , Some ( _cargo_miri) ) = ( miri, cargo_miri) {
364
369
let mut cargo = builder. cargo ( compiler, Mode :: ToolRustc , host, "install" ) ;
365
370
cargo. arg ( "xargo" ) ;
366
371
// Configure `cargo install` path. cargo adds a `bin/`.
@@ -378,14 +383,16 @@ impl Step for Miri {
378
383
Mode :: ToolRustc ,
379
384
host,
380
385
"run" ,
381
- "src/tools/miri" ,
386
+ "src/tools/miri/cargo-miri " ,
382
387
SourceType :: Submodule ,
383
388
& [ ] ,
384
389
) ;
385
- cargo. arg ( "--bin" ) . arg ( "cargo-miri" ) . arg ( "-- ") . arg ( "miri" ) . arg ( "setup" ) ;
390
+ cargo. arg ( "--" ) . arg ( "miri" ) . arg ( "setup" ) ;
386
391
387
392
// Tell `cargo miri setup` where to find the sources.
388
393
cargo. env ( "XARGO_RUST_SRC" , builder. src . join ( "src" ) ) ;
394
+ // Tell it where to find Miri.
395
+ cargo. env ( "MIRI" , & miri) ;
389
396
// Debug things.
390
397
cargo. env ( "RUST_BACKTRACE" , "1" ) ;
391
398
// Overwrite bootstrap's `rustc` wrapper overwriting our flags.
@@ -437,7 +444,7 @@ impl Step for Miri {
437
444
// miri tests need to know about the stage sysroot
438
445
cargo. env ( "MIRI_SYSROOT" , miri_sysroot) ;
439
446
cargo. env ( "RUSTC_LIB_PATH" , builder. rustc_libdir ( compiler) ) ;
440
- cargo. env ( "MIRI_PATH " , miri) ;
447
+ cargo. env ( "MIRI " , miri) ;
441
448
442
449
cargo. arg ( "--" ) . args ( builder. config . cmd . test_args ( ) ) ;
443
450
0 commit comments