about summary refs log tree commit diff
path: root/src/rt/rust_run_program.cpp
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2012-03-28 20:28:35 -0700
committerGraydon Hoare <graydon@mozilla.com>2012-03-28 20:58:43 -0700
commite9503131556656d7ae0ad583b9d9ed81755a3746 (patch)
treedd9fd6202284c2f891833d7f96be9d8da58ca1a0 /src/rt/rust_run_program.cpp
parent635b55100c37906ac53a9130873d9392e545e6e7 (diff)
downloadrust-e9503131556656d7ae0ad583b9d9ed81755a3746.tar.gz
rust-e9503131556656d7ae0ad583b9d9ed81755a3746.zip
Remove execvpe use in general, it seems pointless and non-portable.
Diffstat (limited to 'src/rt/rust_run_program.cpp')
-rw-r--r--src/rt/rust_run_program.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/rt/rust_run_program.cpp b/src/rt/rust_run_program.cpp
index 313ab74995a..8390c8e4723 100644
--- a/src/rt/rust_run_program.cpp
+++ b/src/rt/rust_run_program.cpp
@@ -163,19 +163,15 @@ rust_run_program(const char* argv[],
         assert(!result && "chdir failed");
     }
 
-#ifdef __APPLE__
     if (envp) {
+#ifdef __APPLE__
         *_NSGetEnviron() = (char **)envp;
-    }
-    execvp(argv[0], (char * const *)argv);
-#elif __FreeBSD__ || (defined(__linux__) && defined(RUST_SNAPSHOT))
-    if (envp) { environ = (char **)envp; }
-    execvp(argv[0], (char * const *)argv);
 #else
-    if (!envp) { envp = environ; }
-    execvpe(argv[0], (char * const *)argv, (char * const *)envp);
+        environ = (char **)envp;
 #endif
+    }
 
+    execvp(argv[0], (char * const *)argv);
     exit(1);
 }