+2019-01-24 Bruno Haible <bruno@clisp.org>
+
+ unlinkat: Fix compilation error on Android 4.3.
+ * lib/unistd.in.h: Include <fcntl.h> when module 'unlinkat' is in use
+ also on Android.
+ * doc/posix-functions/unlinkat.texi: Mention the issue.
+
2019-01-24 Bruno Haible <bruno@clisp.org>
renameat: Fix compilation error on Android 4.3.
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 14, Interix 3.5, BeOS.
But the replacement function is not safe to be used in libraries and is not multithread-safe.
@item
+This function is declared in @code{<fcntl.h>}, not in @code{<unistd.h>},
+on some platforms:
+Cygwin 1.7.1, Android 4.3.
+@item
On Mac OS X 10.10, in a writable HFS mount, @code{unlinkat(fd, "..", 0)} succeeds
without doing anything.
@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 <stdio.h>
#endif
-/* Cygwin 1.7.1 declares unlinkat in <fcntl.h>, not in <unistd.h>. */
+/* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in
+ <unistd.h>. */
/* But avoid namespace pollution on glibc systems. */
-#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \
+#if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \
+ && (defined __CYGWIN__ || defined __ANDROID__) \
&& ! defined __GLIBC__
# include <fcntl.h>
#endif