[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: test-open failure on Hurd
From: |
Eric Blake |
Subject: |
Re: test-open failure on Hurd |
Date: |
Tue, 06 Oct 2009 22:12:46 -0600 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
According to Eric Blake on 10/2/2009 6:32 PM:
> I'll let others decide how Hurd will fix /dev/null, or if a fix is even
> necessary. But meanwhile, the point of test-open was to test that opening
> a non-directory with a trailing slash fails, not whether Hurd complies.
Likewise, fdopendir shouldn't examine /dev/null. But in the process of
improving the test, I found that GNU/Hurd fdopendir does not (yet) reject
non-dir fds. I also improved the testsuite for symlink (accepting
non-standard errno values, not worth working around with a wrapper), and
fixed unlinkat(fd,"file/"0) (the same failure occurred for unlink). With
this series, the openat module now passes unit tests on the Hurd.
- --
Don't work too hard, make some time for fun as well!
Eric Blake address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkrMFT4ACgkQ84KuGfSFAYADEgCfUqD4EJjaiLntEVdtz17r2GA0
4w4AnjXG2xKp2jsh3pVXszN2dGZjBkIR
=vq0d
-----END PGP SIGNATURE-----
From 48b0feac54dce2caf46cc53dd160e699737ff52a Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 6 Oct 2009 07:09:13 -0600
Subject: [PATCH 1/4] test-symlink: port to GNU/Hurd
* tests/test-symlink.h (test_symlink): Relax expected errno.
Signed-off-by: Eric Blake <address@hidden>
---
ChangeLog | 3 +++
tests/test-symlink.h | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index c2ed577..ef050d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2009-10-06 Eric Blake <address@hidden>
+ test-symlink: port to GNU/Hurd
+ * tests/test-symlink.h (test_symlink): Relax expected errno.
+
doc: tweak more cygwin information
* doc/glibc-headers/getopt.texi (getopt.h): Cygwin 1.7 getopt is
now compatible with glibc.
diff --git a/tests/test-symlink.h b/tests/test-symlink.h
index ef51564..9907293 100644
--- a/tests/test-symlink.h
+++ b/tests/test-symlink.h
@@ -60,14 +60,14 @@ test_symlink (int (*func) (char const *, char const *),
bool print)
ASSERT (errno == EEXIST);
errno = 0;
ASSERT (func ("nowhere", BASE "dir/") == -1);
- ASSERT (errno == EEXIST);
+ ASSERT (errno == EEXIST || errno == EINVAL);
ASSERT (close (creat (BASE "file", 0600)) == 0);
errno = 0;
ASSERT (func ("nowhere", BASE "file") == -1);
ASSERT (errno == EEXIST);
errno = 0;
ASSERT (func ("nowhere", BASE "file/") == -1);
- ASSERT (errno == EEXIST || errno == ENOTDIR);
+ ASSERT (errno == EEXIST || errno == ENOTDIR || errno == ENOENT);
ASSERT (rmdir (BASE "dir") == 0);
ASSERT (unlink (BASE "file") == 0);
--
1.6.5.rc1
From dfbec8be94ca116ce40c04f88302329505dbb745 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 6 Oct 2009 06:58:08 -0600
Subject: [PATCH 2/4] fdopendir: fix GNU/Hurd bug
fdopendir(open("file",O_RDONLY)) mistakenly succeeded, with
subsequent readdir() failing with ENOTDIR.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for Hurd bug in
allowing non-directory fds.
* lib/fdopendir.c (rpl_fdopendir): Work around it.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness.
* modules/dirent (Makefile.am): Substitute it.
* lib/dirent.in.h (fdopendir): Declare replacement.
* doc/posix-functions/fdopendir.texi (fdopendir): Document this.
* tests/test-fdopendir.c (main): Test something other than
/dev/null, since on Hurd that behaves like a directory.
Signed-off-by: Eric Blake <address@hidden>
---
ChangeLog | 11 ++++++++
doc/posix-functions/fdopendir.texi | 4 +++
lib/dirent.in.h | 6 ++++-
lib/fdopendir.c | 45 ++++++++++++++++++++++++++++-------
m4/dirent_h.m4 | 25 ++++++++++---------
m4/fdopendir.m4 | 19 ++++++++++++++-
modules/dirent | 1 +
tests/test-fdopendir.c | 3 +-
8 files changed, 90 insertions(+), 24 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ef050d7..7ab9135 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2009-10-06 Eric Blake <address@hidden>
+ fdopendir: fix GNU/Hurd bug
+ * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for Hurd bug in
+ allowing non-directory fds.
+ * lib/fdopendir.c (rpl_fdopendir): Work around it.
+ * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness.
+ * modules/dirent (Makefile.am): Substitute it.
+ * lib/dirent.in.h (fdopendir): Declare replacement.
+ * doc/posix-functions/fdopendir.texi (fdopendir): Document this.
+ * tests/test-fdopendir.c (main): Test something other than
+ /dev/null, since on Hurd that behaves like a directory.
+
test-symlink: port to GNU/Hurd
* tests/test-symlink.h (test_symlink): Relax expected errno.
diff --git a/doc/posix-functions/fdopendir.texi
b/doc/posix-functions/fdopendir.texi
index 20db12c..fae7bb7 100644
--- a/doc/posix-functions/fdopendir.texi
+++ b/doc/posix-functions/fdopendir.texi
@@ -16,6 +16,10 @@ fdopendir
is not multithread-safe. Also, the replacement does not guarantee
that @samp{dirfd(fdopendir(n))==n} (dirfd might fail, or return a
different file descriptor than n).
address@hidden
+This function does not reject non-directory file descriptors on some
+platforms:
+GNU/Hurd.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/lib/dirent.in.h b/lib/dirent.in.h
index 6da77d9..2885c56 100644
--- a/lib/dirent.in.h
+++ b/lib/dirent.in.h
@@ -55,7 +55,11 @@ extern int dirfd (DIR const *dir);
#endif
#if @GNULIB_FDOPENDIR@
-# if address@hidden@
+# if @REPLACE_FDOPENDIR@
+# undef fdopendir
+# define fdopendir rpl_fdopendir
+# endif
+# if address@hidden@ || @REPLACE_FDOPENDIR@
/* Open a directory stream visiting the given directory file
descriptor. Return NULL and set errno if fd is not visiting a
directory. On success, this function consumes fd (it will be
diff --git a/lib/fdopendir.c b/lib/fdopendir.c
index 14dc111..c364306 100644
--- a/lib/fdopendir.c
+++ b/lib/fdopendir.c
@@ -23,13 +23,15 @@
#include <stdlib.h>
#include <unistd.h>
-#include "openat.h"
-#include "openat-priv.h"
-#include "save-cwd.h"
+#if !HAVE_FDOPENDIR
-#if GNULIB_DIRENT_SAFER
-# include "dirent--.h"
-#endif
+# include "openat.h"
+# include "openat-priv.h"
+# include "save-cwd.h"
+
+# if GNULIB_DIRENT_SAFER
+# include "dirent--.h"
+# endif
/* Replacement for Solaris' function by the same name.
<http://www.google.com/search?q=fdopendir+site:docs.sun.com>
@@ -70,12 +72,12 @@ fdopendir (int fd)
save_cwd/restore_cwd. */
if (! dir && EXPECTED_ERRNO (saved_errno))
{
-#if REPLACE_FCHDIR
+# if REPLACE_FCHDIR
const char *name = _gl_directory_name (fd);
if (name)
dir = opendir (name);
saved_errno = errno;
-#else /* !REPLACE_FCHDIR */
+# else /* !REPLACE_FCHDIR */
struct saved_cwd saved_cwd;
if (save_cwd (&saved_cwd) != 0)
openat_save_fail (errno);
@@ -95,7 +97,7 @@ fdopendir (int fd)
}
free_cwd (&saved_cwd);
-#endif /* !REPLACE_FCHDIR */
+# endif /* !REPLACE_FCHDIR */
}
if (dir)
@@ -105,3 +107,28 @@ fdopendir (int fd)
errno = saved_errno;
return dir;
}
+
+#else /* HAVE_FDOPENDIR */
+
+# include <errno.h>
+# include <sys/stat.h>
+
+# undef fdopendir
+
+/* Like fdopendir, but work around GNU/Hurd bug by validating FD. */
+
+DIR *
+rpl_fdopendir (int fd)
+{
+ struct stat st;
+ if (fstat (fd, &st))
+ return NULL;
+ if (!S_ISDIR (st.st_mode))
+ {
+ errno = ENOTDIR;
+ return NULL;
+ }
+ return fdopendir (fd);
+}
+
+#endif /* HAVE_FDOPENDIR */
diff --git a/m4/dirent_h.m4 b/m4/dirent_h.m4
index 16d8a02..a9964e2 100644
--- a/m4/dirent_h.m4
+++ b/m4/dirent_h.m4
@@ -1,4 +1,4 @@
-# dirent_h.m4 serial 5
+# dirent_h.m4 serial 6
dnl Copyright (C) 2008-2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -32,16 +32,17 @@ AC_DEFUN([gl_DIRENT_MODULE_INDICATOR],
AC_DEFUN([gl_DIRENT_H_DEFAULTS],
[
AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
- GNULIB_DIRFD=0; AC_SUBST([GNULIB_DIRFD])
- GNULIB_FDOPENDIR=0; AC_SUBST([GNULIB_FDOPENDIR])
- GNULIB_SCANDIR=0; AC_SUBST([GNULIB_SCANDIR])
- GNULIB_ALPHASORT=0; AC_SUBST([GNULIB_ALPHASORT])
+ GNULIB_DIRFD=0; AC_SUBST([GNULIB_DIRFD])
+ GNULIB_FDOPENDIR=0; AC_SUBST([GNULIB_FDOPENDIR])
+ GNULIB_SCANDIR=0; AC_SUBST([GNULIB_SCANDIR])
+ GNULIB_ALPHASORT=0; AC_SUBST([GNULIB_ALPHASORT])
dnl Assume proper GNU behavior unless another module says otherwise.
- HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD])
- HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR])
- HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR])
- HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT])
- REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR])
- REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR])
- DIRENT_H=''; AC_SUBST([DIRENT_H])
+ HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD])
+ HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR])
+ HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR])
+ HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT])
+ REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR])
+ REPLACE_FDOPENDIR=0; AC_SUBST([REPLACE_FDOPENDIR])
+ REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR])
+ DIRENT_H=''; AC_SUBST([DIRENT_H])
])
diff --git a/m4/fdopendir.m4 b/m4/fdopendir.m4
index 09670bb..0ffb7fb 100644
--- a/m4/fdopendir.m4
+++ b/m4/fdopendir.m4
@@ -1,4 +1,4 @@
-# serial 1
+# serial 2
# See if we need to provide fdopendir.
dnl Copyright (C) 2009 Free Software Foundation, Inc.
@@ -17,5 +17,22 @@ AC_DEFUN([gl_FUNC_FDOPENDIR],
AC_LIBOBJ([fdopendir])
gl_REPLACE_DIRENT_H
HAVE_FDOPENDIR=0
+ else
+ AC_CACHE_CHECK([whether fdopendir works],
+ [gl_cv_func_fdopendir_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <dirent.h>
+#include <fcntl.h>
+]], [int fd = open ("conftest.h", O_RDONLY);
+ if (fd < 0) return 2;
+ return !!fdopendir (fd);])],
+ [gl_cv_func_fdopendir_works=yes],
+ [gl_cv_func_fdopendir_works=no],
+ [gl_cv_func_fdopendir_works="guessing no"])])
+ if test "$gl_cv_func_fdopendir_works" != yes; then
+ REPLACE_FDOPENDIR=1
+ gl_REPLACE_DIRENT_H
+ AC_LIBOBJ([fdopendir])
+ fi
fi
])
diff --git a/modules/dirent b/modules/dirent
index f729bcd..d21cfaf 100644
--- a/modules/dirent
+++ b/modules/dirent
@@ -33,6 +33,7 @@ dirent.h: dirent.in.h
-e 's|@''HAVE_SCANDIR''@|$(HAVE_SCANDIR)|g' \
-e 's|@''HAVE_ALPHASORT''@|$(HAVE_ALPHASORT)|g' \
-e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
+ -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|g' \
-e 's|@''REPLACE_OPENDIR''@|$(REPLACE_OPENDIR)|g' \
-e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
< $(srcdir)/dirent.in.h; \
diff --git a/tests/test-fdopendir.c b/tests/test-fdopendir.c
index 003a279..330544c 100644
--- a/tests/test-fdopendir.c
+++ b/tests/test-fdopendir.c
@@ -45,12 +45,13 @@ main ()
int fd;
/* A non-directory cannot be turned into a directory stream. */
- fd = open ("/dev/null", O_RDONLY);
+ fd = open ("test-fdopendir.tmp", O_RDONLY | O_CREAT, 0600);
ASSERT (0 <= fd);
errno = 0;
ASSERT (fdopendir (fd) == NULL);
ASSERT (errno == ENOTDIR);
ASSERT (close (fd) == 0);
+ ASSERT (unlink ("test-fdopendir.tmp") == 0);
/* A bad fd cannot be turned into a stream. */
errno = 0;
--
1.6.5.rc1
From 3cfa87074aacbe7975f7b019d652a97488173f02 Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 6 Oct 2009 12:03:58 -0600
Subject: [PATCH 3/4] openat: fix GNU/Hurd bug in unlinkat
unlinkat(fd,"file/",0) mistakenly succeeded.
* m4/openat.m4 (gl_FUNC_OPENAT): Replace unlinkat if unlink is
broken.
* doc/posix-functions/unlink.texi (unlink): Document this.
* doc/posix-functions/unlinkat.texi (unlinkat): Likewise.
Signed-off-by: Eric Blake <address@hidden>
---
ChangeLog | 6 ++++++
doc/posix-functions/unlink.texi | 2 +-
doc/posix-functions/unlinkat.texi | 2 +-
m4/openat.m4 | 10 ++++++++--
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7ab9135..05a4730 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2009-10-06 Eric Blake <address@hidden>
+ openat: fix GNU/Hurd bug in unlinkat
+ * m4/openat.m4 (gl_FUNC_OPENAT): Replace unlinkat if unlink is
+ broken.
+ * doc/posix-functions/unlink.texi (unlink): Document this.
+ * doc/posix-functions/unlinkat.texi (unlinkat): Likewise.
+
fdopendir: fix GNU/Hurd bug
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for Hurd bug in
allowing non-directory fds.
diff --git a/doc/posix-functions/unlink.texi b/doc/posix-functions/unlink.texi
index 1249c42..1df1e30 100644
--- a/doc/posix-functions/unlink.texi
+++ b/doc/posix-functions/unlink.texi
@@ -10,7 +10,7 @@ unlink
@itemize
@item
Some systems mistakenly succeed on @code{unlink("file/")}:
-Solaris 9.
+GNU/Hurd, Solaris 9.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/unlinkat.texi
b/doc/posix-functions/unlinkat.texi
index dfff9b9..1ec724e 100644
--- a/doc/posix-functions/unlinkat.texi
+++ b/doc/posix-functions/unlinkat.texi
@@ -15,7 +15,7 @@ unlinkat
But the replacement function is not safe to be used in libraries and is not
multithread-safe.
@item
Some systems mistakenly succeed on @code{unlinkat(fd,"file/",flag)}:
-Solaris 9.
+GNU/Hurd, Solaris 9.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/m4/openat.m4 b/m4/openat.m4
index 42df3ee..6b4f95c 100644
--- a/m4/openat.m4
+++ b/m4/openat.m4
@@ -1,4 +1,4 @@
-# serial 24
+# serial 25
# See if we need to use our replacement for Solaris' openat et al functions.
dnl Copyright (C) 2004-2009 Free Software Foundation, Inc.
@@ -27,8 +27,14 @@ AC_DEFUN([gl_FUNC_OPENAT],
AC_CHECK_FUNCS_ONCE([lchmod])
AC_REPLACE_FUNCS([fchmodat fstatat mkdirat openat unlinkat])
AC_REQUIRE([AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_REQUIRE([gl_FUNC_UNLINK])
case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
- yes+yes) ;;
+ yes+yes)
+ # GNU/Hurd has unlinkat, but it has the same bug as unlink.
+ if test $REPLACE_UNLINK = 1; then
+ AC_LIBOBJ([unlinkat])
+ REPLACE_UNLINKAT=1
+ fi ;;
yes+*)
# Solaris 9 has *at functions, but uniformly mishandles trailing
# slash in all of them.
--
1.6.5.rc1
From 396ef4ef06e423ba882bbe65ad70ab0b06332a7b Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 6 Oct 2009 13:57:50 -0600
Subject: [PATCH 4/4] doc: tweak *at function documentation
* doc/posix-functions/faccessat.texi (faccessat): Mention
known issue with replacement.
* doc/posix-functions/fchdir.texi (fchdir): Likewise.
* doc/posix-functions/linkat.texi (linkat): Likewise.
* doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise.
* doc/posix-functions/mknodat.texi (mknodat): Likewise.
* doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
* doc/posix-functions/renameat.texi (renameat): Likewise.
* doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
Signed-off-by: Eric Blake <address@hidden>
---
ChangeLog | 11 +++++++++++
doc/posix-functions/faccessat.texi | 3 ++-
doc/posix-functions/fchdir.texi | 1 +
doc/posix-functions/linkat.texi | 1 +
doc/posix-functions/mkfifoat.texi | 1 +
doc/posix-functions/mknodat.texi | 1 +
doc/posix-functions/readlinkat.texi | 1 +
doc/posix-functions/renameat.texi | 1 +
doc/posix-functions/symlinkat.texi | 1 +
9 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 05a4730..cc4b51d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2009-10-06 Eric Blake <address@hidden>
+ doc: tweak *at function documentation
+ * doc/posix-functions/faccessat.texi (faccessat): Mention
+ known issue with replacement.
+ * doc/posix-functions/fchdir.texi (fchdir): Likewise.
+ * doc/posix-functions/linkat.texi (linkat): Likewise.
+ * doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise.
+ * doc/posix-functions/mknodat.texi (mknodat): Likewise.
+ * doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
+ * doc/posix-functions/renameat.texi (renameat): Likewise.
+ * doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
+
openat: fix GNU/Hurd bug in unlinkat
* m4/openat.m4 (gl_FUNC_OPENAT): Replace unlinkat if unlink is
broken.
diff --git a/doc/posix-functions/faccessat.texi
b/doc/posix-functions/faccessat.texi
index 835a5d8..f1d7be0 100644
--- a/doc/posix-functions/faccessat.texi
+++ b/doc/posix-functions/faccessat.texi
@@ -13,7 +13,8 @@ faccessat
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.
-However, the replacement does not always take into account ACLs.
+However, the replacement does not always take into account ACLs. Also,
+it is not safe to be used in libraries and is not multithread-safe.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/fchdir.texi b/doc/posix-functions/fchdir.texi
index 5283b6c..06e99d8 100644
--- a/doc/posix-functions/fchdir.texi
+++ b/doc/posix-functions/fchdir.texi
@@ -11,6 +11,7 @@ fchdir
@item
This function is missing on some platforms:
Tandem/NSK, mingw, BeOS.
+But the replacement function is not safe to be used in libraries and is not
multithread-safe.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/linkat.texi b/doc/posix-functions/linkat.texi
index 62fc43d..1fe5434 100644
--- a/doc/posix-functions/linkat.texi
+++ b/doc/posix-functions/linkat.texi
@@ -12,6 +12,7 @@ linkat
This function is missing on some platforms:
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.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/mkfifoat.texi
b/doc/posix-functions/mkfifoat.texi
index c3e39ca..2cd9f6f 100644
--- a/doc/posix-functions/mkfifoat.texi
+++ b/doc/posix-functions/mkfifoat.texi
@@ -13,6 +13,7 @@ mkfifoat
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.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/mknodat.texi b/doc/posix-functions/mknodat.texi
index d1af058..6a6ed3f 100644
--- a/doc/posix-functions/mknodat.texi
+++ b/doc/posix-functions/mknodat.texi
@@ -13,6 +13,7 @@ mknodat
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.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/readlinkat.texi
b/doc/posix-functions/readlinkat.texi
index 65f088f..4cef743 100644
--- a/doc/posix-functions/readlinkat.texi
+++ b/doc/posix-functions/readlinkat.texi
@@ -12,6 +12,7 @@ readlinkat
This function is missing on some platforms:
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.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/renameat.texi
b/doc/posix-functions/renameat.texi
index 52f3921..ff08b09 100644
--- a/doc/posix-functions/renameat.texi
+++ b/doc/posix-functions/renameat.texi
@@ -21,6 +21,7 @@ renameat
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 8, 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.
@end itemize
Portability problems not fixed by Gnulib:
diff --git a/doc/posix-functions/symlinkat.texi
b/doc/posix-functions/symlinkat.texi
index 7dd3887..d5ef9dc 100644
--- a/doc/posix-functions/symlinkat.texi
+++ b/doc/posix-functions/symlinkat.texi
@@ -12,6 +12,7 @@ symlinkat
This function is missing on some platforms:
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.
@end itemize
Portability problems not fixed by Gnulib:
--
1.6.5.rc1