about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTor Hovland <tor.hovland@bekk.no>2021-11-07 00:14:54 +0100
committerTor Hovland <tor.hovland@bekk.no>2021-11-07 09:32:05 +0100
commitede76c40d1f1d32e6e1536b1e08122debc52ab00 (patch)
treefe34d1268d82a95d8081bf1741ff1813411e9c22
parentd4bcee9638cf8fdf7e9297438e70e20b212c6535 (diff)
downloadrust-ede76c40d1f1d32e6e1536b1e08122debc52ab00.tar.gz
rust-ede76c40d1f1d32e6e1536b1e08122debc52ab00.zip
Made temps-dir an unstable option.
-rw-r--r--compiler/rustc_driver/src/lib.rs7
-rw-r--r--compiler/rustc_interface/src/interface.rs5
-rw-r--r--compiler/rustc_interface/src/tests.rs1
-rw-r--r--compiler/rustc_session/src/config.rs1
-rw-r--r--compiler/rustc_session/src/options.rs2
-rw-r--r--src/doc/rustc/src/command-line-arguments.md9
-rw-r--r--src/doc/unstable-book/src/compiler-flags/temps-dir.md10
-rw-r--r--src/librustdoc/core.rs1
-rw-r--r--src/librustdoc/doctest.rs1
-rw-r--r--src/test/run-make-fulldeps/issue-19371/foo.rs1
-rw-r--r--src/test/run-make/issue-10971-temps-dir/Makefile4
11 files changed, 18 insertions, 24 deletions
diff --git a/compiler/rustc_driver/src/lib.rs b/compiler/rustc_driver/src/lib.rs
index 6b3c65dd527..09fe3a552a0 100644
--- a/compiler/rustc_driver/src/lib.rs
+++ b/compiler/rustc_driver/src/lib.rs
@@ -215,7 +215,6 @@ fn run_compiler(
 
     let cfg = interface::parse_cfgspecs(matches.opt_strs("cfg"));
     let (odir, ofile) = make_output(&matches);
-    let temps_dir = make_temps_dir(&matches);
     let mut config = interface::Config {
         opts: sopts,
         crate_cfg: cfg,
@@ -223,7 +222,6 @@ fn run_compiler(
         input_path: None,
         output_file: ofile,
         output_dir: odir,
-        temps_dir,
         file_loader,
         diagnostic_output,
         stderr: None,
@@ -458,11 +456,6 @@ fn make_output(matches: &getopts::Matches) -> (Option<PathBuf>, Option<PathBuf>)
     (odir, ofile)
 }
 
-// Extract temporary directory from matches.
-fn make_temps_dir(matches: &getopts::Matches) -> Option<PathBuf> {
-    matches.opt_str("temps-dir").map(|o| PathBuf::from(&o))
-}
-
 // Extract input (string or file and optional path) from matches.
 fn make_input(
     error_format: ErrorOutputType,
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs
index 7b235be48b3..2904b3f5b70 100644
--- a/compiler/rustc_interface/src/interface.rs
+++ b/compiler/rustc_interface/src/interface.rs
@@ -143,7 +143,6 @@ pub struct Config {
     pub input_path: Option<PathBuf>,
     pub output_dir: Option<PathBuf>,
     pub output_file: Option<PathBuf>,
-    pub temps_dir: Option<PathBuf>,
     pub file_loader: Option<Box<dyn FileLoader + Send + Sync>>,
     pub diagnostic_output: DiagnosticOutput,
 
@@ -198,6 +197,8 @@ pub fn create_compiler_and_run<R>(config: Config, f: impl FnOnce(&Compiler) -> R
         );
     }
 
+    let temps_dir = sess.opts.debugging_opts.temps_dir.as_ref().map(|o| PathBuf::from(&o));
+
     let compiler = Compiler {
         sess,
         codegen_backend,
@@ -205,7 +206,7 @@ pub fn create_compiler_and_run<R>(config: Config, f: impl FnOnce(&Compiler) -> R
         input_path: config.input_path,
         output_dir: config.output_dir,
         output_file: config.output_file,
-        temps_dir: config.temps_dir,
+        temps_dir,
         register_lints: config.register_lints,
         override_queries: config.override_queries,
     };
diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs
index 2d3cb52f5fd..eed2e07e890 100644
--- a/compiler/rustc_interface/src/tests.rs
+++ b/compiler/rustc_interface/src/tests.rs
@@ -685,6 +685,7 @@ fn test_debugging_options_tracking_hash() {
     untracked!(span_debug, true);
     untracked!(span_free_formats, true);
     untracked!(strip, Strip::Debuginfo);
+    untracked!(temps_dir, Some(String::from("abc")));
     untracked!(terminal_width, Some(80));
     untracked!(threads, 99);
     untracked!(time, true);
diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs
index 034aebe42c1..fe8a26a700e 100644
--- a/compiler/rustc_session/src/config.rs
+++ b/compiler/rustc_session/src/config.rs
@@ -1110,7 +1110,6 @@ pub fn rustc_short_optgroups() -> Vec<RustcOptGroup> {
              in <dir>",
             "DIR",
         ),
-        opt::opt_s("", "temps-dir", "Write temporary output files to <dir>", "DIR"),
         opt::opt_s(
             "",
             "explain",
diff --git a/compiler/rustc_session/src/options.rs b/compiler/rustc_session/src/options.rs
index e894e46a301..77a993a28ca 100644
--- a/compiler/rustc_session/src/options.rs
+++ b/compiler/rustc_session/src/options.rs
@@ -1331,6 +1331,8 @@ options! {
         "which mangling version to use for symbol names ('legacy' (default) or 'v0')"),
     teach: bool = (false, parse_bool, [TRACKED],
         "show extended diagnostic help (default: no)"),
+    temps_dir: Option<String> = (None, parse_opt_string, [UNTRACKED],
+        "the directory the intermediate files are written to"),
     terminal_width: Option<usize> = (None, parse_opt_number, [UNTRACKED],
         "set the current terminal width"),
     tune_cpu: Option<String> = (None, parse_opt_string, [TRACKED],
diff --git a/src/doc/rustc/src/command-line-arguments.md b/src/doc/rustc/src/command-line-arguments.md
index 2d8aa3a4933..7f482f0f2b1 100644
--- a/src/doc/rustc/src/command-line-arguments.md
+++ b/src/doc/rustc/src/command-line-arguments.md
@@ -194,15 +194,6 @@ This flag controls the output filename.
 The outputted crate will be written to this directory. This flag is ignored if
 the [`-o` flag](#option-o-output) is used.
 
-<a id="option-temps-dir"></a>
-## `--temps-dir`: directory to write the intermediate files in
-
-Intermediate files will be written to this directory. If not set, the output
-directory is used. This option is useful if you are running more than one
-instance of `rustc` (e.g. with different `--crate-type` settings), and you
-need to make sure they are not overwriting each other's intermediate files.
-No files are kept unless `-C save-temps=yes` is also set.
-
 <a id="option-explain"></a>
 ## `--explain`: provide a detailed explanation of an error message
 
diff --git a/src/doc/unstable-book/src/compiler-flags/temps-dir.md b/src/doc/unstable-book/src/compiler-flags/temps-dir.md
new file mode 100644
index 00000000000..e25011f7119
--- /dev/null
+++ b/src/doc/unstable-book/src/compiler-flags/temps-dir.md
@@ -0,0 +1,10 @@
+# `temps-dir`
+
+--------------------
+
+The `-Ztemps-dir` compiler flag specifies the directory to write the
+intermediate files in. If not set, the output directory is used. This option is
+useful if you are running more than one instance of `rustc` (e.g. with different
+`--crate-type` settings), and you need to make sure they are not overwriting
+each other's intermediate files. No files are kept unless `-C save-temps=yes` is
+also set.
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs
index 063c0bc20c6..b7251e8f571 100644
--- a/src/librustdoc/core.rs
+++ b/src/librustdoc/core.rs
@@ -259,7 +259,6 @@ crate fn create_config(
         input_path: cpath,
         output_file: None,
         output_dir: None,
-        temps_dir: None,
         file_loader: None,
         diagnostic_output: DiagnosticOutput::Default,
         stderr: None,
diff --git a/src/librustdoc/doctest.rs b/src/librustdoc/doctest.rs
index 63eaded0320..9b32ad979e3 100644
--- a/src/librustdoc/doctest.rs
+++ b/src/librustdoc/doctest.rs
@@ -94,7 +94,6 @@ crate fn run(options: Options) -> Result<(), ErrorReported> {
         input_path: None,
         output_file: None,
         output_dir: None,
-        temps_dir: None,
         file_loader: None,
         diagnostic_output: DiagnosticOutput::Default,
         stderr: None,
diff --git a/src/test/run-make-fulldeps/issue-19371/foo.rs b/src/test/run-make-fulldeps/issue-19371/foo.rs
index 626f74a342e..4acabbb70ed 100644
--- a/src/test/run-make-fulldeps/issue-19371/foo.rs
+++ b/src/test/run-make-fulldeps/issue-19371/foo.rs
@@ -53,7 +53,6 @@ fn compile(code: String, output: PathBuf, sysroot: PathBuf) {
         input_path: None,
         output_file: Some(output),
         output_dir: None,
-        temps_dir: None,
         file_loader: None,
         diagnostic_output: DiagnosticOutput::Default,
         stderr: None,
diff --git a/src/test/run-make/issue-10971-temps-dir/Makefile b/src/test/run-make/issue-10971-temps-dir/Makefile
index d6b35cbfafd..28aa188c392 100644
--- a/src/test/run-make/issue-10971-temps-dir/Makefile
+++ b/src/test/run-make/issue-10971-temps-dir/Makefile
@@ -6,5 +6,5 @@ include ../../run-make-fulldeps/tools.mk
 all:
 	touch $(TMPDIR)/lib.rs
 
-	$(RUSTC) --crate-type=lib --temps-dir=$(TMPDIR)/temp1 $(TMPDIR)/lib.rs & \
-	$(RUSTC) --crate-type=cdylib --temps-dir=$(TMPDIR)/temp2 $(TMPDIR)/lib.rs
+	$(RUSTC) --crate-type=lib -Z temps-dir=$(TMPDIR)/temp1 $(TMPDIR)/lib.rs & \
+	$(RUSTC) --crate-type=cdylib -Z temps-dir=$(TMPDIR)/temp2 $(TMPDIR)/lib.rs