diff options
-rw-r--r-- | eglib/src/gspawn.c | 9 | ||||
-rw-r--r-- | mono/io-layer/processes.c | 9 | ||||
-rw-r--r-- | mono/metadata/icall.c | 7 |
3 files changed, 20 insertions, 5 deletions
diff --git a/eglib/src/gspawn.c b/eglib/src/gspawn.c index 4d0bf9e8eca..01639be101f 100644 --- a/eglib/src/gspawn.c +++ b/eglib/src/gspawn.c @@ -74,13 +74,18 @@ #define NO_INTR(var,cmd) do { (var) = (cmd); } while ((var) == -1 && errno == EINTR) #define CLOSE_PIPE(p) do { close (p [0]); close (p [1]); } while (0) -#if defined(__APPLE__) && !defined (__arm__) && !defined (__aarch64__) +#if defined(__APPLE__) +#if defined (TARGET_OSX) /* Apple defines this in crt_externs.h but doesn't provide that header for * arm-apple-darwin9. We'll manually define the symbol on Apple as it does * in fact exist on all implementations (so far) */ -gchar ***_NSGetEnviron(); +gchar ***_NSGetEnviron(void); #define environ (*_NSGetEnviron()) +#else +static char *mono_environ[1] = { NULL }; +#define environ mono_environ +#endif /* defined (TARGET_OSX) */ #elif defined(_MSC_VER) /* MS defines this in stdlib.h */ #else diff --git a/mono/io-layer/processes.c b/mono/io-layer/processes.c index df101ae76a4..94938f53704 100644 --- a/mono/io-layer/processes.c +++ b/mono/io-layer/processes.c @@ -96,14 +96,19 @@ #include <mono/utils/mono-proclib.h> /* The process' environment strings */ -#if defined(__APPLE__) && !defined (__arm__) && !defined (__aarch64__) +#if defined(__APPLE__) +#if defined (TARGET_OSX) /* Apple defines this in crt_externs.h but doesn't provide that header for * arm-apple-darwin9. We'll manually define the symbol on Apple as it does * in fact exist on all implementations (so far) */ -char ***_NSGetEnviron(void); +gchar ***_NSGetEnviron(void); #define environ (*_NSGetEnviron()) #else +static char *mono_environ[1] = { NULL }; +#define environ mono_environ +#endif /* defined (TARGET_OSX) */ +#else extern char **environ; #endif diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index e47f9588171..e937e437c04 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -5846,7 +5846,8 @@ ves_icall_System_Environment_GetEnvironmentVariable (MonoString *name) */ #ifndef _MSC_VER #ifndef __MINGW32_VERSION -#if defined(__APPLE__) && !defined (__arm__) && !defined (__aarch64__) +#if defined(__APPLE__) +#if defined (TARGET_OSX) /* Apple defines this in crt_externs.h but doesn't provide that header for * arm-apple-darwin9. We'll manually define the symbol on Apple as it does * in fact exist on all implementations (so far) @@ -5854,6 +5855,10 @@ ves_icall_System_Environment_GetEnvironmentVariable (MonoString *name) gchar ***_NSGetEnviron(void); #define environ (*_NSGetEnviron()) #else +static char *mono_environ[1] = { NULL }; +#define environ mono_environ +#endif /* defined (TARGET_OSX) */ +#else extern char **environ; #endif |