+2013-10-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ mkfifo-tests, etc.: allow HP-UX 11.11 bug
+ Problem reported by Daniel Richard G. in
+ <http://lists.gnu.org/archive/html/bug-gnulib/2013-10/msg00068.html>.
+ * doc/posix-functions/mkfifo.texi (mkfifo):
+ * doc/posix-functions/mkfifoat.texi (mkfifoat):
+ * doc/posix-functions/mknod.texi (mknod):
+ * doc/posix-functions/mknodat.texi (mknodat):
+ Document the HP-UX 11.11 bug.
+ * tests/test-mkfifo.h (test_mkfifo):
+ Allow the HP-UX 11.11 bug.
+
2013-10-14 Paul Eggert <eggert@cs.ucla.edu>
acl: allow cross-compilation to Gentoo
Portability problems not fixed by Gnulib:
@itemize
+@item
+If the argument exists and is a directory, this function fails with
+@code{EISDIR} instead of the correct @code{EEXIST}:
+HP-UX 11.11.
@end itemize
@itemize
@item
The gnulib replacement function always fails with @samp{ENOSYS} on
-some platforms:
-mingw, MSVC 9.
+some platforms: mingw, MSVC 9.
+@item
+If the argument exists and is a directory, the gnulib replacement
+function fails with @code{EISDIR} instead of the correct
+@code{EEXIST}: HP-UX 11.11.
@end itemize
Use of this function for anything except fifos is not portable,
generally requiring super-user privileges and knowledge of supported
device numbers.
+@item
+If the argument exists and is a directory, this function fails with
+@code{EISDIR} instead of the correct @code{EEXIST}:
+HP-UX 11.11.
@end itemize
The gnulib replacement function always fails with @samp{ENOSYS} on
some platforms:
mingw, MSVC 9.
+@item
+If the argument exists and is a directory, the gnulib replacement
+function fails with @code{EISDIR} instead of the correct
+@code{EEXIST}: HP-UX 11.11.
@end itemize
ASSERT (errno == ENOENT);
errno = 0;
ASSERT (func (".", 0600) == -1);
- ASSERT (errno == EEXIST || errno == EINVAL);
+ /* Allow HP-UX 11.11's EISDIR, even though POSIX says it's wrong,
+ since it doesn't really hurt anything and we lack the energy to
+ fix it. */
+ ASSERT (errno == EEXIST || errno == EINVAL || errno == EISDIR);
errno = 0;
ASSERT (func (BASE "fifo", 0600) == -1);
ASSERT (errno == EEXIST);