summaryrefslogtreecommitdiff
path: root/hash.c
diff options
context:
space:
mode:
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hash.c b/hash.c
index 69ca1db4e3..d759afd296 100644
--- a/hash.c
+++ b/hash.c
@@ -17,6 +17,10 @@
#include "util.h"
#include "rubysig.h"
+#ifdef __APPLE__
+#include <crt_externs.h>
+#endif
+
#define HASH_DELETED FL_USER1
#define HASH_PROC_DEFAULT FL_USER2
@@ -944,6 +948,11 @@ static char **origenviron;
static char **my_environ;
#undef environ
#define environ my_environ
+#elif defined(__APPLE__)
+#undef environ
+#define environ (*_NSGetEnviron())
+#define GET_ENVIRON(e) (e)
+#define FREE_ENVIRON(e)
#else
extern char **environ;
#define GET_ENVIRON(e) (e)