projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Checking if TARGET_OS_IPHONE is defined isn't good enough for 10.7 and earlier.
[oota-llvm.git]
/
lib
/
Support
/
Unix
/
Program.inc
diff --git
a/lib/Support/Unix/Program.inc
b/lib/Support/Unix/Program.inc
index 2ed5597e4ad99784bde7468f25c90767ef3569c5..baf2767ad584c52019ebf9b448797f5a74107eb2 100644
(file)
--- a/
lib/Support/Unix/Program.inc
+++ b/
lib/Support/Unix/Program.inc
@@
-42,10
+42,18
@@
#define _RESTRICT_KYWD
#endif
#include <spawn.h>
#define _RESTRICT_KYWD
#endif
#include <spawn.h>
+
#if defined(__APPLE__)
#include <TargetConditionals.h>
#endif
#if defined(__APPLE__)
#include <TargetConditionals.h>
#endif
-#if !defined(__APPLE__) || defined(TARGET_OS_IPHONE)
+
+#if defined(__APPLE__) && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
+#define USE_NSGETENVIRON 1
+#else
+#define USE_NSGETENVIRON 0
+#endif
+
+#if !USE_NSGETENVIRON
extern char **environ;
#else
#include <crt_externs.h> // _NSGetEnviron
extern char **environ;
#else
#include <crt_externs.h> // _NSGetEnviron
@@
-220,7
+228,7
@@
static bool Execute(ProcessInfo &PI, StringRef Program, const char **args,
}
if (!envp)
}
if (!envp)
-#if !
defined(__APPLE__) || defined(TARGET_OS_IPHONE)
+#if !
USE_NSGETENVIRON
envp = const_cast<const char **>(environ);
#else
// environ is missing in dylibs.
envp = const_cast<const char **>(environ);
#else
// environ is missing in dylibs.