Skip to content

Commit 4cf201a

Browse files
committed
compiletest/rmake: cleanup stage_std_path and recipe_dylib_search_paths handling
1 parent 0f8b3fe commit 4cf201a

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/tools/compiletest/src/runtest.rs

+17-9
Original file line numberDiff line numberDiff line change
@@ -3659,27 +3659,35 @@ impl<'test> TestCx<'test> {
36593659
rustc.arg("--sysroot").arg(&stage0_sysroot);
36603660
}
36613661

3662+
// Now run rustc to build the recipe.
36623663
let res = self.run_command_to_procres(&mut rustc);
36633664
if !res.status.success() {
36643665
self.fatal_proc_rec("run-make test failed: could not build `rmake.rs` recipe", &res);
36653666
}
36663667

3667-
// FIXME(jieyouxu): explain what the hecc we are doing here.
3668-
let mut stage_std_path = PathBuf::new();
3669-
stage_std_path.push(&build_root);
3670-
stage_std_path.push(&stage);
3671-
stage_std_path.push("lib");
3668+
// To actually run the recipe, we have to provide the recipe with a bunch of information
3669+
// provided through env vars.
36723670

3673-
// FIXME(jieyouxu): explain what the hecc we are doing here.
3671+
// Compute stage-specific standard library paths.
3672+
let stage_std_path = {
3673+
let mut p = build_root.clone();
3674+
p.push(&stage);
3675+
p.push("lib");
3676+
p
3677+
};
3678+
debug!(?stage_std_path);
3679+
3680+
// Compute dynamic library search paths for recipes.
36743681
let recipe_dylib_search_paths = {
36753682
let mut paths = base_dylib_search_paths.clone();
36763683
paths.push(support_lib_path.parent().unwrap().to_path_buf());
36773684
paths.push(stage_std_path.join("rustlib").join(&self.config.host).join("lib"));
36783685
paths
36793686
};
3687+
debug!(?recipe_dylib_search_paths);
36803688

3681-
// FIXME(jieyouxu): explain what the hecc we are doing here.
3682-
let target_rpaths = {
3689+
// Compute runtime library search paths for recipes. This is target-specific.
3690+
let target_runtime_dylib_search_paths = {
36833691
let mut paths = vec![rmake_out_dir.clone()];
36843692
paths.extend(base_dylib_search_paths.iter().cloned());
36853693
paths
@@ -3692,7 +3700,7 @@ impl<'test> TestCx<'test> {
36923700
.stdout(Stdio::piped())
36933701
.stderr(Stdio::piped())
36943702
.env("LD_LIB_PATH_ENVVAR", dylib_env_var())
3695-
.env("TARGET_RPATH_ENV", &env::join_paths(target_rpaths).unwrap())
3703+
.env("TARGET_RPATH_ENV", &env::join_paths(target_runtime_dylib_search_paths).unwrap())
36963704
.env(dylib_env_var(), &env::join_paths(recipe_dylib_search_paths).unwrap())
36973705
.env("TARGET", &self.config.target)
36983706
.env("PYTHON", &self.config.python)

0 commit comments

Comments
 (0)