Skip to content

Commit 0a22767

Browse files
committed
compiletest/rmake: cleanup stage_std_path and recipe_dylib_search_paths handling
1 parent 3cca7ce commit 0a22767

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/tools/compiletest/src/runtest.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3665,27 +3665,35 @@ impl<'test> TestCx<'test> {
36653665
rustc.arg("--sysroot").arg(&stage0_sysroot);
36663666
}
36673667

3668+
// Now run rustc to build the recipe.
36683669
let res = self.run_command_to_procres(&mut rustc);
36693670
if !res.status.success() {
36703671
self.fatal_proc_rec("run-make test failed: could not build `rmake.rs` recipe", &res);
36713672
}
36723673

3673-
// FIXME(jieyouxu): explain what the hecc we are doing here.
3674-
let mut stage_std_path = PathBuf::new();
3675-
stage_std_path.push(&build_root);
3676-
stage_std_path.push(&stage);
3677-
stage_std_path.push("lib");
3674+
// To actually run the recipe, we have to provide the recipe with a bunch of information
3675+
// provided through env vars.
36783676

3679-
// FIXME(jieyouxu): explain what the hecc we are doing here.
3677+
// Compute stage-specific standard library paths.
3678+
let stage_std_path = {
3679+
let mut p = build_root.clone();
3680+
p.push(&stage);
3681+
p.push("lib");
3682+
p
3683+
};
3684+
debug!(?stage_std_path);
3685+
3686+
// Compute dynamic library search paths for recipes.
36803687
let recipe_dylib_search_paths = {
36813688
let mut paths = base_dylib_search_paths.clone();
36823689
paths.push(support_lib_path.parent().unwrap().to_path_buf());
36833690
paths.push(stage_std_path.join("rustlib").join(&self.config.host).join("lib"));
36843691
paths
36853692
};
3693+
debug!(?recipe_dylib_search_paths);
36863694

3687-
// FIXME(jieyouxu): explain what the hecc we are doing here.
3688-
let target_rpaths = {
3695+
// Compute runtime library search paths for recipes. This is target-specific.
3696+
let target_runtime_dylib_search_paths = {
36893697
let mut paths = vec![rmake_out_dir.clone()];
36903698
paths.extend(base_dylib_search_paths.iter().cloned());
36913699
paths
@@ -3698,7 +3706,7 @@ impl<'test> TestCx<'test> {
36983706
.stdout(Stdio::piped())
36993707
.stderr(Stdio::piped())
37003708
.env("LD_LIB_PATH_ENVVAR", dylib_env_var())
3701-
.env("TARGET_RPATH_ENV", &env::join_paths(target_rpaths).unwrap())
3709+
.env("TARGET_RPATH_ENV", &env::join_paths(target_runtime_dylib_search_paths).unwrap())
37023710
.env(dylib_env_var(), &env::join_paths(recipe_dylib_search_paths).unwrap())
37033711
.env("TARGET", &self.config.target)
37043712
.env("PYTHON", &self.config.python)

0 commit comments

Comments
 (0)