diff --git a/src/tools/run-make-support/src/run.rs b/src/tools/run-make-support/src/run.rs
index 9aad91f1b46..da4f265efc3 100644
--- a/src/tools/run-make-support/src/run.rs
+++ b/src/tools/run-make-support/src/run.rs
@@ -4,12 +4,12 @@ use std::process::{Command, Output};
 
 use crate::is_windows;
 
-use super::{bin_name, handle_failed_output};
+use super::handle_failed_output;
 
 fn run_common(name: &str) -> (Command, Output) {
     let mut bin_path = PathBuf::new();
     bin_path.push(env::var("TMPDIR").unwrap());
-    bin_path.push(&bin_name(name));
+    bin_path.push(name);
     let ld_lib_path_envvar = env::var("LD_LIB_PATH_ENVVAR").unwrap();
     let mut cmd = Command::new(bin_path);
     cmd.env(&ld_lib_path_envvar, {
diff --git a/src/tools/tidy/src/allowed_run_make_makefiles.txt b/src/tools/tidy/src/allowed_run_make_makefiles.txt
index 009200aca15..06a99725315 100644
--- a/src/tools/tidy/src/allowed_run_make_makefiles.txt
+++ b/src/tools/tidy/src/allowed_run_make_makefiles.txt
@@ -2,7 +2,6 @@ run-make/allocator-shim-circular-deps/Makefile
 run-make/allow-non-lint-warnings-cmdline/Makefile
 run-make/archive-duplicate-names/Makefile
 run-make/atomic-lock-free/Makefile
-run-make/bare-outfile/Makefile
 run-make/branch-protection-check-IBT/Makefile
 run-make/c-dynamic-dylib/Makefile
 run-make/c-dynamic-rlib/Makefile
@@ -43,7 +42,6 @@ run-make/emit-path-unhashed/Makefile
 run-make/emit-shared-files/Makefile
 run-make/emit-stack-sizes/Makefile
 run-make/emit-to-stdout/Makefile
-run-make/emit/Makefile
 run-make/env-dep-info/Makefile
 run-make/error-found-staticlib-instead-crate/Makefile
 run-make/error-writing-dependencies/Makefile
@@ -150,7 +148,6 @@ run-make/min-global-align/Makefile
 run-make/mingw-export-call-convention/Makefile
 run-make/mismatching-target-triples/Makefile
 run-make/missing-crate-dependency/Makefile
-run-make/mixing-formats/Makefile
 run-make/mixing-libs/Makefile
 run-make/msvc-opt-minsize/Makefile
 run-make/multiple-emits/Makefile
diff --git a/tests/run-make/bare-outfile/rmake.rs b/tests/run-make/bare-outfile/rmake.rs
index c2b6347f968..82d0fab5073 100644
--- a/tests/run-make/bare-outfile/rmake.rs
+++ b/tests/run-make/bare-outfile/rmake.rs
@@ -4,12 +4,12 @@
 //@ ignore-cross-compile
 
 use run_make_support::{run, rustc, tmp_dir};
-use std::fs;
 use std::env;
+use std::fs;
 
-fn main(){
-    fs::copy("foo.rs", tmp_dir()).unwrap();
+fn main() {
+    fs::copy("foo.rs", tmp_dir().join("foo.rs")).unwrap();
     env::set_current_dir(tmp_dir());
-    rustc().output("foo").input("foo.rs");
+    rustc().output("foo").input("foo.rs").run();
     run("foo");
 }
diff --git a/tests/run-make/emit/rmake.rs b/tests/run-make/emit/rmake.rs
index d3ccc7fdc27..8b3ddb66f92 100644
--- a/tests/run-make/emit/rmake.rs
+++ b/tests/run-make/emit/rmake.rs
@@ -1,6 +1,6 @@
 // A bug from 2015 would cause errors when emitting multiple types of files
-// in the same rustc call. A fix was created in #30452. This test checks that
-// the fix did not accidentally break compilation.
+// in the same rustc call. A fix was created in #30452. This test checks that rustc still compiles
+// a source file successfully when emission of multiple output artifacts are requested.
 // See https://github.com/rust-lang/rust/pull/30452
 
 //@ ignore-cross-compile
@@ -10,10 +10,10 @@ use run_make_support::{run, rustc};
 fn main() {
     let opt_levels = ["0", "1", "2", "3", "s", "z"];
     for level in opt_levels {
-        rustc().opt_level(level).emit("llvm-bc,llvm-ir,asm,obj,link").input("test-24876.rs");
+        rustc().opt_level(level).emit("llvm-bc,llvm-ir,asm,obj,link").input("test-24876.rs").run();
     }
     for level in opt_levels {
-        rustc().opt_level(level).emit("llvm-bc,llvm-ir,asm,obj,link").input("test-26235.rs");
+        rustc().opt_level(level).emit("llvm-bc,llvm-ir,asm,obj,link").input("test-26235.rs").run();
         run("test-26235");
     }
 }
diff --git a/tests/run-make/mixing-formats/rmake.rs b/tests/run-make/mixing-formats/rmake.rs
index c80951a1597..0d40b0325f7 100644
--- a/tests/run-make/mixing-formats/rmake.rs
+++ b/tests/run-make/mixing-formats/rmake.rs
@@ -15,70 +15,77 @@
 use run_make_support::{rustc, tmp_dir};
 use std::fs;
 
+fn test_with_teardown(rustc_calls: impl Fn()) {
+    rustc_calls();
+    //FIXME(Oneirical): This should be replaced with the run-make-support fs wrappers.
+    fs::remove_dir_all(tmp_dir()).unwrap();
+    fs::create_dir(tmp_dir()).unwrap();
+}
+
 fn main() {
-    // Building just baz
-    rustc().crate_type("rlib").input("foo.rs").run();
-    rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("bin").input("baz.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("rlib").input("bar1.rs").run();
-    rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("bin").input("baz.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    // Building baz2
-    rustc().crate_type("rlib").input("foo.rs").run();
-    rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("dylib").input("baz2.rs").run_fail_assert_exit_code(1);
-    rustc().crate_type("bin").input("baz2.rs").run_fail_assert_exit_code(1);
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("rlib").input("foo.rs").run();
-    rustc().crate_type("rlib").input("bar1.rs").run();
-    rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("dylib,rlib").input("baz2.rs").run();
-    rustc().crate_type("bin").input("baz2.rs").run;
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("rlib").input("foo.rs").run();
-    rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("rlib").input("bar2.rs").run();
-    rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("bin").input("baz2.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("rlib").input("foo.rs").run();
-    rustc().crate_type("rlib").input("bar1.rs").run();
-    rustc().crate_type("rlib").input("bar2.rs").run();
-    rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("bin").input("baz2.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("rlib").input("bar1.rs").run();
-    rustc().crate_type("rlib").input("bar2.rs").run();
-    rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("bin").input("baz2.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("rlib").input("bar2.rs").run();
-    rustc().crate_type("dylib,rlib").input("baz2.rs").run();
-    rustc().crate_type("bin").input("baz2.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
-    rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("rlib").input("bar1.rs").run();
-    rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
-    rustc().crate_type("dylib,rlib").input("baz2.rs").run();
-    rustc().crate_type("bin").input("baz2.rs").run();
-    fs::remove_dir_all(tmp_dir()).unwrap();
-    fs::create_dir(tmp_dir()).unwrap();
+    test_with_teardown(|| {
+        // Building just baz
+        rustc().crate_type("rlib").input("foo.rs").run();
+        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("bin").input("baz.rs").run();
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("rlib").input("bar1.rs").run();
+        rustc().crate_type("dylib,rlib").input("baz.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("bin").input("baz.rs").run();
+    });
+    test_with_teardown(|| {
+        // Building baz2
+        rustc().crate_type("rlib").input("foo.rs").run();
+        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("dylib").input("baz2.rs").run_fail_assert_exit_code(1);
+        rustc().crate_type("bin").input("baz2.rs").run_fail_assert_exit_code(1);
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("rlib").input("foo.rs").run();
+        rustc().crate_type("rlib").input("bar1.rs").run();
+        rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("dylib,rlib").input("baz2.rs").run();
+        rustc().crate_type("bin").input("baz2.rs").run();
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("rlib").input("foo.rs").run();
+        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("rlib").input("bar2.rs").run();
+        rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("bin").input("baz2.rs").run();
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("rlib").input("foo.rs").run();
+        rustc().crate_type("rlib").input("bar1.rs").run();
+        rustc().crate_type("rlib").input("bar2.rs").run();
+        rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("bin").input("baz2.rs").run();
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("rlib").input("bar1.rs").run();
+        rustc().crate_type("rlib").input("bar2.rs").run();
+        rustc().crate_type("dylib,rlib").input("baz2.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("bin").input("baz2.rs").run();
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("rlib").input("bar2.rs").run();
+        rustc().crate_type("dylib,rlib").input("baz2.rs").run();
+        rustc().crate_type("bin").input("baz2.rs").run();
+    });
+    test_with_teardown(|| {
+        rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("rlib").input("bar1.rs").run();
+        rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();
+        rustc().crate_type("dylib,rlib").input("baz2.rs").run();
+        rustc().crate_type("bin").input("baz2.rs").run();
+    });
     rustc().crate_type("dylib").input("foo.rs").arg("-Cprefer-dynamic").run();
     rustc().crate_type("dylib").input("bar1.rs").arg("-Cprefer-dynamic").run();
     rustc().crate_type("dylib").input("bar2.rs").arg("-Cprefer-dynamic").run();