summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@penguin.cs.ucla.edu>2014-02-25 11:16:27 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2014-02-25 11:16:47 -0800
commit546ff8206b4366d46f9d1fcc08030c2a33a085fa (patch)
tree98dc37105540e5624c5bacb1f595d19306ba15f8
parent1aed559952395ff1eff24263701b349eb77a4e06 (diff)
downloadgnulib-546ff8206b4366d46f9d1fcc08030c2a33a085fa.tar.gz
unistd: port readlink to Mac OS X 10.3.9
* lib/unistd.in.h (_GL_INCLUDING_UNISTD_H): New macro, to work around self-include problem in Mac OS X 10.3.9 when combined with readlink module. Problem reported by Klaus Zietler in <http://bugs.gnu.org/16825>.
-rw-r--r--ChangeLog8
-rw-r--r--lib/unistd.in.h15
2 files changed, 23 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fcb9afcc1f..2b6393f7a6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-02-25 Paul Eggert <eggert@penguin.cs.ucla.edu>
+
+ unistd: port readlink to Mac OS X 10.3.9
+ * lib/unistd.in.h (_GL_INCLUDING_UNISTD_H): New macro, to work
+ around self-include problem in Mac OS X 10.3.9 when combined with
+ readlink module. Problem reported by Klaus Zietler in
+ <http://bugs.gnu.org/16825>.
+
2014-02-23 Paul Eggert <eggert@cs.ucla.edu>
diffseq: remove TOO_EXPENSIVE heuristic
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 8d9e73e61a..58ca184647 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -21,9 +21,23 @@
#endif
@PRAGMA_COLUMNS@
+#ifdef _GL_INCLUDING_UNISTD_H
+/* Special invocation convention:
+ - On Mac OS X 10.3.9 we have a sequence of nested includes
+ <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h>
+ In this situation, the functions are not yet declared, therefore we cannot
+ provide the C++ aliases. */
+
+#@INCLUDE_NEXT@ @NEXT_UNISTD_H@
+
+#else
+/* Normal invocation convention. */
+
/* The include_next requires a split double-inclusion guard. */
#if @HAVE_UNISTD_H@
+# define _GL_INCLUDING_UNISTD_H
# @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+# undef _GL_INCLUDING_UNISTD_H
#endif
/* Get all possible declarations of gethostname(). */
@@ -1539,4 +1553,5 @@ _GL_CXXALIASWARN (write);
_GL_INLINE_HEADER_END
#endif /* _@GUARD_PREFIX@_UNISTD_H */
+#endif /* _GL_INCLUDING_UNISTD_H */
#endif /* _@GUARD_PREFIX@_UNISTD_H */