--- a/llvm/lib/Support/Unix/Program.inc 2022-09-06 21:14:28.808580000 +0100 +++ b/llvm/lib/Support/Unix/Program.inc 2022-09-06 21:16:15.007790000 +0100 @@ -54,10 +54,8 @@ #define USE_NSGETENVIRON 0 #endif -#if !USE_NSGETENVIRON +#if USE_NSGETENVIRON extern char **environ; -#else -#include // _NSGetEnviron #endif #endif @@ -240,14 +238,6 @@ } } - if (!Envp) -#if !USE_NSGETENVIRON - Envp = const_cast(environ); -#else - // environ is missing in dylibs. - Envp = const_cast(*_NSGetEnviron()); -#endif - constexpr int maxRetries = 8; int retries = 0; pid_t PID; @@ -308,11 +298,7 @@ // Execute! std::string PathStr = std::string(Program); - if (Envp != nullptr) - execve(PathStr.c_str(), const_cast(Argv), - const_cast(Envp)); - else - execv(PathStr.c_str(), const_cast(Argv)); + execv(PathStr.c_str(), const_cast(Argv)); // If the execve() failed, we should exit. Follow Unix protocol and // return 127 if the executable was not found, and 126 otherwise. // Use _exit rather than exit so that atexit functions and static