@@ -3660,27 +3660,35 @@ impl<'test> TestCx<'test> {
3660
3660
rustc. arg ( "--sysroot" ) . arg ( & stage0_sysroot) ;
3661
3661
}
3662
3662
3663
+ // Now run rustc to build the recipe.
3663
3664
let res = self . run_command_to_procres ( & mut rustc) ;
3664
3665
if !res. status . success ( ) {
3665
3666
self . fatal_proc_rec ( "run-make test failed: could not build `rmake.rs` recipe" , & res) ;
3666
3667
}
3667
3668
3668
- // FIXME(jieyouxu): explain what the hecc we are doing here.
3669
- let mut stage_std_path = PathBuf :: new ( ) ;
3670
- stage_std_path. push ( & build_root) ;
3671
- stage_std_path. push ( & stage) ;
3672
- stage_std_path. push ( "lib" ) ;
3669
+ // To actually run the recipe, we have to provide the recipe with a bunch of information
3670
+ // provided through env vars.
3673
3671
3674
- // FIXME(jieyouxu): explain what the hecc we are doing here.
3672
+ // Compute stage-specific standard library paths.
3673
+ let stage_std_path = {
3674
+ let mut p = build_root. clone ( ) ;
3675
+ p. push ( & stage) ;
3676
+ p. push ( "lib" ) ;
3677
+ p
3678
+ } ;
3679
+ debug ! ( ?stage_std_path) ;
3680
+
3681
+ // Compute dynamic library search paths for recipes.
3675
3682
let recipe_dylib_search_paths = {
3676
3683
let mut paths = base_dylib_search_paths. clone ( ) ;
3677
3684
paths. push ( support_lib_path. parent ( ) . unwrap ( ) . to_path_buf ( ) ) ;
3678
3685
paths. push ( stage_std_path. join ( "rustlib" ) . join ( & self . config . host ) . join ( "lib" ) ) ;
3679
3686
paths
3680
3687
} ;
3688
+ debug ! ( ?recipe_dylib_search_paths) ;
3681
3689
3682
- // FIXME(jieyouxu): explain what the hecc we are doing here .
3683
- let target_rpaths = {
3690
+ // Compute runtime library search paths for recipes. This is target-specific .
3691
+ let target_runtime_dylib_search_paths = {
3684
3692
let mut paths = vec ! [ rmake_out_dir. clone( ) ] ;
3685
3693
paths. extend ( base_dylib_search_paths. iter ( ) . cloned ( ) ) ;
3686
3694
paths
@@ -3693,7 +3701,7 @@ impl<'test> TestCx<'test> {
3693
3701
. stdout ( Stdio :: piped ( ) )
3694
3702
. stderr ( Stdio :: piped ( ) )
3695
3703
. env ( "LD_LIB_PATH_ENVVAR" , dylib_env_var ( ) )
3696
- . env ( "TARGET_RPATH_ENV" , & env:: join_paths ( target_rpaths ) . unwrap ( ) )
3704
+ . env ( "TARGET_RPATH_ENV" , & env:: join_paths ( target_runtime_dylib_search_paths ) . unwrap ( ) )
3697
3705
. env ( dylib_env_var ( ) , & env:: join_paths ( recipe_dylib_search_paths) . unwrap ( ) )
3698
3706
. env ( "TARGET" , & self . config . target )
3699
3707
. env ( "PYTHON" , & self . config . python )
0 commit comments