Fix linux build. posix_spawn doesn't inherit the environment by default.

llvm-svn: 101701
This commit is contained in:
Nick Lewycky 2010-04-18 06:22:26 +00:00
parent 5acc7d0e17
commit 3fdf58800a
1 changed files with 4 additions and 1 deletions

View File

@ -34,6 +34,8 @@
#include <spawn.h>
#endif
extern char **environ;
namespace llvm {
using namespace sys;
@ -126,7 +128,7 @@ static bool RedirectIO(const Path *Path, int FD, std::string* ErrMsg) {
#ifdef HAVE_POSIX_SPAWN
static bool RedirectIO_PS(const Path *Path, int FD, std::string *ErrMsg,
posix_spawn_file_actions_t &FileActions) {
posix_spawn_file_actions_t &FileActions) {
if (Path == 0) // Noop
return false;
std::string File;
@ -200,6 +202,7 @@ Program::Execute(const Path &path, const char **args, const char **envp,
}
pid_t PID;
if (!envp) envp = (const char**)environ;
int Err = posix_spawn(&PID, path.c_str(), &FileActions,
/*attrp*/0, (char**)args, (char**)envp);