Browse Source

Fix headers in test for whether environ is declared in stdlib/unistd

We'd had our configure.in test include unistd.h unconditionally,
which would fail on Windows/mingw, even though environ _was_
declared there.  Fix for 5704; bugfix on 0.2.3.13-alpha.

Thanks to Erinn for finding this and rransom for figuring out the
problem.
Nick Mathewson 12 years ago
parent
commit
6156403237
2 changed files with 7 additions and 0 deletions
  1. 4 0
      changes/bug5704
  2. 3 0
      configure.in

+ 4 - 0
changes/bug5704

@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Fix compilation on platforms without unistd.h, or where environ
+      is defined in stdlib.h. Fixes bug 5704; bugfix on
+      0.2.3.13-alpha.

+ 3 - 0
configure.in

@@ -1116,7 +1116,10 @@ AC_CACHE_CHECK([whether we have extern char **environ already declared],
 /* We define _GNU_SOURCE here because it is also defined in compat.c.
  * Without it environ doesn't get declared. */
 #define _GNU_SOURCE
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
+#include <stdlib.h>
 int main(int c, char **v) { char **t = environ; }])],
   tor_cv_have_environ_declared=yes,
   tor_cv_have_environ_declared=no))