+2009-12-23 Eric Blake <ebb9@byu.net>
+
+ unistd: work around cygwin bug
+ * lib/unistd.in.h (includes): Pick up headers needed for cygwin.
+ * doc/posix-functions/unlinkat.texi (unlinkat): Document the bug.
+ * doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
+
2009-12-23 Bruno Haible <bruno@clisp.org>
localename: More tests.
glibc 2.3.6, MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX
5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
+@item
+Some platforms declare this function in @code{stdio.h} instead of
+@code{unistd.h}:
+Cygwin 1.7.1.
@end itemize
Portability problems not fixed by Gnulib:
@item
Some systems mistakenly succeed on @code{unlinkat(fd,"file/",flag)}:
GNU/Hurd, Solaris 9.
+@item
+Some platforms declare this function in @code{fcntl.h} instead of
+@code{unistd.h}:
+Cygwin 1.7.1.
@end itemize
Portability problems not fixed by Gnulib:
#include <stddef.h>
/* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>. */
-#if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
+/* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>. */
+#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
+ || @GNULIB_SYMLINKAT@)
# include <stdio.h>
#endif
+/* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>. */
+#if @GNULIB_UNLINKAT@
+# include <fcntl.h>
+#endif
+
/* mingw fails to declare _exit in <unistd.h>. */
/* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
/* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>. */