about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2022-08-06 14:31:11 -0400
committerRalf Jung <post@ralfj.de>2022-08-06 14:31:26 -0400
commitf8449c2c78366d9ce016bb0b8be788d76ed9528e (patch)
treee909f9884b2403cf4ee76aa2e479f18e3ff62170
parentf633537f3e4d47a2e1f96daee68e1063e0da17d4 (diff)
downloadrust-f8449c2c78366d9ce016bb0b8be788d76ed9528e.tar.gz
rust-f8449c2c78366d9ce016bb0b8be788d76ed9528e.zip
stop excluding TERM env var on Unix
-rw-r--r--README.md5
-rw-r--r--src/shims/env.rs7
2 files changed, 6 insertions, 6 deletions
diff --git a/README.md b/README.md
index 5fbf89c86b9..c7a3200dbd9 100644
--- a/README.md
+++ b/README.md
@@ -282,9 +282,8 @@ environment variable. We first document the most relevant and most commonly used
   verbose. `hide` hides the warning entirely.
 * `-Zmiri-env-exclude=<var>` keeps the `var` environment variable isolated from the host so that it
   cannot be accessed by the program. Can be used multiple times to exclude several variables. The
-  `TERM` environment variable is excluded by default to [speed up the test
-  harness](https://github.com/rust-lang/miri/issues/1702). This has no effect unless
-  `-Zmiri-disable-isolation` is also set.
+  `TERM` environment variable is excluded by default in Windows to prevent the libtest harness from
+  accessing the file system. This has no effect unless `-Zmiri-disable-isolation` is also set.
 * `-Zmiri-env-forward=<var>` forwards the `var` environment variable to the interpreted program. Can
   be used multiple times to forward several variables. This takes precedence over
   `-Zmiri-env-exclude`: if a variable is both forwarded and exluced, it *will* get forwarded. This
diff --git a/src/shims/env.rs b/src/shims/env.rs
index db1ddf6291f..3dd0b65d029 100644
--- a/src/shims/env.rs
+++ b/src/shims/env.rs
@@ -42,10 +42,11 @@ impl<'tcx> EnvVars<'tcx> {
         config: &MiriConfig,
     ) -> InterpResult<'tcx> {
         let target_os = ecx.tcx.sess.target.os.as_ref();
-        // HACK: Exclude `TERM` var to avoid terminfo trying to open the termcap file.
-        // This is (a) very slow and (b) does not work on Windows.
         let mut excluded_env_vars = config.excluded_env_vars.clone();
-        excluded_env_vars.push("TERM".to_owned());
+        if target_os == "windows" {
+            // HACK: Exclude `TERM` var to avoid terminfo trying to open the termcap file.
+            excluded_env_vars.push("TERM".to_owned());
+        }
 
         // Skip the loop entirely if we don't want to forward anything.
         if ecx.machine.communicate() || !config.forwarded_env_vars.is_empty() {