replace: Correctly check for 'extern char **environ' in unistd.h
authorAndreas Schneider <asn@samba.org>
Thu, 29 Nov 2018 07:12:06 +0000 (08:12 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 30 Nov 2018 10:41:44 +0000 (11:41 +0100)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Fri Nov 30 11:41:44 CET 2018 on sn-devel-144

lib/replace/replace.h
lib/replace/wscript

index ece71b741071d63346e30f684efb95c024868914..0055255a9a5f391e2ef9beceac98219995fefeb0 100644 (file)
 #include <bsd/unistd.h>
 #endif
 
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
 #ifdef HAVE_STRING_H
 #include <string.h>
 #endif
@@ -272,16 +276,14 @@ char *rep_strndup(const char *s, size_t n);
 size_t rep_strnlen(const char *s, size_t n);
 #endif
 
-#if defined(HAVE_DECL_ENVIRON)
-#if !HAVE_DECL_ENVIRON
-#ifdef __APPLE__
-#include <crt_externs.h>
-#define environ (*_NSGetEnviron())
-#else
+#if !defined(HAVE_DECL_ENVIRON)
+# ifdef __APPLE__
+#   include <crt_externs.h>
+#   define environ (*_NSGetEnviron())
+# else /* __APPLE__ */
 extern char **environ;
-#endif
-#endif
-#endif /* defined(HAVE_DECL_ENVIRON) */
+# endif /* __APPLE */
+#endif /* !defined(HAVE_DECL_ENVIRON) */
 
 #ifndef HAVE_SETENV
 #define setenv rep_setenv
index ff918146ffa46383cafd2148b05ac4afd83688f1..173d7e6d29aea87d4ae7057cd09afca936873bd6 100644 (file)
@@ -613,7 +613,8 @@ def configure(conf):
 
     conf.CHECK_DECLS('errno', headers='errno.h', reverse=True)
     conf.CHECK_DECLS('EWOULDBLOCK', headers='errno.h')
-    conf.CHECK_DECLS('environ getgrent_r getpwent_r', reverse=True, headers='pwd.h grp.h')
+    conf.CHECK_DECLS('environ', reverse=True, headers='unistd.h')
+    conf.CHECK_DECLS('getgrent_r getpwent_r', reverse=True, headers='pwd.h grp.h')
     conf.CHECK_DECLS('pread pwrite setenv setresgid setresuid', reverse=True)
 
     if conf.CONFIG_SET('HAVE_EPOLL_CREATE') and conf.CONFIG_SET('HAVE_SYS_EPOLL_H'):