summaryrefslogtreecommitdiff
path: root/lib/replace
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-10-27 23:39:53 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-10-27 23:39:53 +0100
commitaafe9ca1aa829f64d4bad1df3ee1d5997fb17d71 (patch)
tree78a9821d77bd96a523d46ecad8a3e13e20b5756f /lib/replace
parent807b862bc9a9f34feb14d54344c6818b8febefbc (diff)
downloadsamba-aafe9ca1aa829f64d4bad1df3ee1d5997fb17d71.tar.gz
samba-aafe9ca1aa829f64d4bad1df3ee1d5997fb17d71.tar.bz2
samba-aafe9ca1aa829f64d4bad1df3ee1d5997fb17d71.zip
Fix definition of environ on Mac OS X (bugzilla: #5412).
Diffstat (limited to 'lib/replace')
-rw-r--r--lib/replace/libreplace.m41
-rw-r--r--lib/replace/replace.h9
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/replace/libreplace.m4 b/lib/replace/libreplace.m4
index 5e13d4a47e..6f1543863a 100644
--- a/lib/replace/libreplace.m4
+++ b/lib/replace/libreplace.m4
@@ -222,6 +222,7 @@ AC_CHECK_TYPE(comparison_fn_t,
AC_HAVE_DECL(setenv, [#include <stdlib.h>])
AC_CHECK_FUNCS(setenv unsetenv)
+AC_HAVE_DECL(environ, [#include <unistd.h>])
AC_CHECK_FUNCS(strnlen)
AC_CHECK_FUNCS(strtoull __strtoull strtouq strtoll __strtoll strtoq)
diff --git a/lib/replace/replace.h b/lib/replace/replace.h
index af1208a8fc..a8164b642b 100644
--- a/lib/replace/replace.h
+++ b/lib/replace/replace.h
@@ -182,6 +182,15 @@ char *rep_strndup(const char *s, size_t n);
size_t rep_strnlen(const char *s, size_t n);
#endif
+#if !HAVE_DECL_ENVIRON
+#ifdef __APPLE__
+#include <crt_externs.h>
+#define environ (*_NSGetEnviron())
+#else
+extern char **environ;
+#endif
+#endif
+
#ifndef HAVE_SETENV
#define setenv rep_setenv
int rep_setenv(const char *name, const char *value, int overwrite);