changeset 9720:46b3aff8518a

Documentation about problem on MacOS X 10.
author Bruno Haible <bruno@clisp.org>
date Sun, 24 Feb 2008 15:31:00 +0100
parents ec87f62b97b8
children 1d443a80afc4
files ChangeLog doc/posix-functions/environ.texi
diffstat 2 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-02-24  Bruno Haible  <bruno@clisp.org>
+
+	* doc/posix-functions/environ.texi: Document the MacOS X problem.
+
 2008-02-20  Bob Proulx  <bob@proulx.com>
 
 	Enable use of older two part flavor 'git describe'.
--- a/doc/posix-functions/environ.texi
+++ b/doc/posix-functions/environ.texi
@@ -16,6 +16,18 @@
 This variable is missing on some platforms:
 MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1, Cygwin.
 @item
+On MacOS X 10, this variable is not declared.  Up to MacOS X 10.4, one can use
+@smallexample
+extern char **environ;
+@end smallexample
+to get the variable declared.  This does not work any more, however, in
+shared libraries on MacOS X 10.5.  Here is a workaround: Instead, one can use
+@smallexample
+#include <crt_externs.h>
+#define environ (*_NSGetEnviron())
+@end smallexample
+This works at least on MacOS X 10.3 and newer.
+@item
 The address of this variable is not a compile-time constant on some platforms:
 mingw.
 @end itemize