summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog21
-rwxr-xr-xMODULES.html.sh2
-rw-r--r--doc/posix-headers/fcntl.texi39
-rw-r--r--modules/chdir-long2
-rw-r--r--modules/chdir-safer2
-rw-r--r--modules/fcntl27
-rw-r--r--modules/fcntl-h41
-rw-r--r--modules/fcntl-h-tests13
-rw-r--r--modules/fcntl-safer2
-rw-r--r--modules/fcntl-tests13
-rw-r--r--modules/fts2
-rw-r--r--modules/mkancesdirs2
-rw-r--r--modules/mkdir-p2
-rw-r--r--modules/open2
-rw-r--r--modules/savewd2
-rw-r--r--tests/test-fcntl-h.c (renamed from tests/test-fcntl.c)5
16 files changed, 126 insertions, 51 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e33717405..4486d1a576 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2009-08-23 Eric Blake <ebb9@byu.net>
+
+ fcntl-h: rename from fcntl, in preparation for fcntl(2)
+ * modules/fcntl: Move <fcntl.h> header replacement...
+ * modules/fcntl-h: ...to new name, so as not to collide with
+ like-named function.
+ * tests/test-fcntl.c: Rename...
+ * tests/test-fcntl-h.c: ...to this. Test FD_CLOEXEC.
+ * modules/fcntl-tests: Rename...
+ * modules/fcntl-h-tests: ...to this. Update test file name.
+ * modules/chdir-long (Depends-on): Update clients.
+ * modules/chdir-safer (Depends-on): Likewise.
+ * modules/fcntl-safer (Depends-on): Likewise.
+ * modules/fts (Depends-on): Likewise.
+ * modules/mkancesdirs (Depends-on): Likewise.
+ * modules/mkdir-p (Depends-on): Likewise.
+ * modules/open (Depends-on): Likewise.
+ * modules/savewd (Depends-on): Likewise.
+ * MODULES.html.sh (systems lacking POSIX:2008): Update name.
+ * doc/posix-headers/fcntl.texi (fcntl.h): Update documentation.
+
2009-08-22 Bruno Haible <bruno@clisp.org>
* modules/binary-io (License): Relicense under LGPL.
diff --git a/MODULES.html.sh b/MODULES.html.sh
index 9d52e42bfa..3c54cec985 100755
--- a/MODULES.html.sh
+++ b/MODULES.html.sh
@@ -2251,7 +2251,7 @@ func_all_modules ()
func_module errno
func_module fchdir
func_module fclose
- func_module fcntl
+ func_module fcntl-h
func_module flock
func_module fopen
func_module fprintf-posix
diff --git a/doc/posix-headers/fcntl.texi b/doc/posix-headers/fcntl.texi
index 673317b471..f2d5fb25a1 100644
--- a/doc/posix-headers/fcntl.texi
+++ b/doc/posix-headers/fcntl.texi
@@ -3,13 +3,14 @@
POSIX specification: @url{http://www.opengroup.org/susv3xbd/fcntl.h.html}
-Gnulib module: fcntl
+Gnulib module: fcntl-h
Portability problems fixed by Gnulib:
@itemize
@item
@samp{O_NOCTTY}, @samp{O_DSYNC}, @samp{O_NONBLOCK}, @samp{O_RSYNC},
-@samp{O_SYNC} are not defined on some platforms.
+@samp{O_SYNC}, @samp{O_DIRECTORY}, and @samp{O_NOFOLLOW} are not
+defined on some platforms.
@item
@samp{O_BINARY}, @samp{O_TEXT} (not specified by POSIX, but essential for
@@ -17,11 +18,41 @@ portability to Woe32 platforms) are defined on some platforms but not on
others.
@item
-@samp{O_DIRECT}, @samp{O_DIRECTORY}, @samp{O_NDELAY}, @samp{O_NOATIME},
-@samp{O_NOFOLLOW}, @samp{O_NOLINKS} (not specified by POSIX) are defined
+@samp{O_DIRECT}, @samp{O_NDELAY}, @samp{O_NOATIME},
+and @samp{O_NOLINKS} (not specified by POSIX) are defined
on some platforms but not on others.
+
+@item
+@samp{FD_CLOEXEC} is not defined on some platforms:
+mingw
+
+@item
+@samp{AT_FDCWD} and friends are provided by modules like openat.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
+@item
+@samp{O_CLOEXEC} is not defined on some platforms. The gnulib
+replacement is not atomic on these platforms.
+
+@item
+@samp{O_TTY_INIT}, @samp{O_SEARCH}, and @samp{O_EXEC} are not defined
+on some platforms.
+
+@item
+@samp{F_DUPFD}, @samp{F_DUPFD_CLOEXEC}, @samp{F_GETFD}, and
+@samp{F_SETFD} are not defined on some platforms:
+mingw
+
+@item
+@samp{F_GETFL}, @samp{F_SETFL}, @samp{F_GETLK}, @samp{F_SETLK},
+@samp{F_SETLOKW}, @samp{F_GETOWN}, and @samp{F_SETOWN} are not defined
+on some platforms.
+
+@item
+@samp{POSIX_FADV_DONTNEED}, @samp{POSIX_FADV_NOREUSE},
+@samp{POSIX_FADV_NORMAL}, @samp{POSIX_FADV_RANDOM},
+@samp{POSIX_FADV_SEQUENTIAL}, and @samp{POSIX_FADV_WILLNEED} are not
+defined on some platforms.
@end itemize
diff --git a/modules/chdir-long b/modules/chdir-long
index d06878ba52..4025b45afc 100644
--- a/modules/chdir-long
+++ b/modules/chdir-long
@@ -9,7 +9,7 @@ m4/chdir-long.m4
Depends-on:
atexit
fchdir
-fcntl
+fcntl-h
openat
memchr
mempcpy
diff --git a/modules/chdir-safer b/modules/chdir-safer
index 95103e8e5b..b3b47e16f6 100644
--- a/modules/chdir-safer
+++ b/modules/chdir-safer
@@ -8,7 +8,7 @@ m4/chdir-safer.m4
Depends-on:
fchdir
-fcntl
+fcntl-h
open
same-inode
stdbool
diff --git a/modules/fcntl b/modules/fcntl
index 8e2af03e65..a63c4e387a 100644
--- a/modules/fcntl
+++ b/modules/fcntl
@@ -1,35 +1,14 @@
Description:
-Like <fcntl.h>, but with non-working flags defined to 0.
+Placeholder for eventual fcntl() replacement.
Files:
-lib/fcntl.in.h
-m4/fcntl_h.m4
Depends-on:
-include_next
-unistd
-extensions
+fcntl-h
configure.ac:
-gl_FCNTL_H
Makefile.am:
-BUILT_SOURCES += $(FCNTL_H)
-
-# We need the following in order to create <fcntl.h> when the system
-# doesn't have one that works with the given compiler.
-fcntl.h: fcntl.in.h
- $(AM_V_GEN)rm -f $@-t $@ && \
- { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
- sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
- -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
- -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
- -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
- -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
- < $(srcdir)/fcntl.in.h; \
- } > $@-t && \
- mv $@-t $@
-MOSTLYCLEANFILES += fcntl.h fcntl.h-t
Include:
#include <fcntl.h>
@@ -38,4 +17,4 @@ License:
LGPL
Maintainer:
-all
+Eric Blake
diff --git a/modules/fcntl-h b/modules/fcntl-h
new file mode 100644
index 0000000000..8e2af03e65
--- /dev/null
+++ b/modules/fcntl-h
@@ -0,0 +1,41 @@
+Description:
+Like <fcntl.h>, but with non-working flags defined to 0.
+
+Files:
+lib/fcntl.in.h
+m4/fcntl_h.m4
+
+Depends-on:
+include_next
+unistd
+extensions
+
+configure.ac:
+gl_FCNTL_H
+
+Makefile.am:
+BUILT_SOURCES += $(FCNTL_H)
+
+# We need the following in order to create <fcntl.h> when the system
+# doesn't have one that works with the given compiler.
+fcntl.h: fcntl.in.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+ -e 's|@''GNULIB_OPEN''@|$(GNULIB_OPEN)|g' \
+ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \
+ < $(srcdir)/fcntl.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += fcntl.h fcntl.h-t
+
+Include:
+#include <fcntl.h>
+
+License:
+LGPL
+
+Maintainer:
+all
diff --git a/modules/fcntl-h-tests b/modules/fcntl-h-tests
new file mode 100644
index 0000000000..f0cf17364e
--- /dev/null
+++ b/modules/fcntl-h-tests
@@ -0,0 +1,13 @@
+Files:
+tests/test-fcntl-h.c
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-fcntl-h
+check_PROGRAMS += test-fcntl-h
+
+License:
+LGPL
diff --git a/modules/fcntl-safer b/modules/fcntl-safer
index b9da466083..918223e870 100644
--- a/modules/fcntl-safer
+++ b/modules/fcntl-safer
@@ -10,7 +10,7 @@ m4/fcntl-safer.m4
m4/mode_t.m4
Depends-on:
-fcntl
+fcntl-h
open
unistd-safer
diff --git a/modules/fcntl-tests b/modules/fcntl-tests
deleted file mode 100644
index 86d91e5f68..0000000000
--- a/modules/fcntl-tests
+++ /dev/null
@@ -1,13 +0,0 @@
-Files:
-tests/test-fcntl.c
-
-Depends-on:
-
-configure.ac:
-
-Makefile.am:
-TESTS += test-fcntl
-check_PROGRAMS += test-fcntl
-
-License:
-LGPL
diff --git a/modules/fts b/modules/fts
index 2cbed1c1fe..38b22567bb 100644
--- a/modules/fts
+++ b/modules/fts
@@ -13,7 +13,7 @@ d-ino
d-type
dirfd
fchdir
-fcntl
+fcntl-h
fcntl-safer
hash
i-ring
diff --git a/modules/mkancesdirs b/modules/mkancesdirs
index 5bb1ea7bec..5a5c66a3fe 100644
--- a/modules/mkancesdirs
+++ b/modules/mkancesdirs
@@ -8,7 +8,7 @@ m4/mkancesdirs.m4
Depends-on:
dirname
-fcntl
+fcntl-h
savewd
stat-macros
sys_stat
diff --git a/modules/mkdir-p b/modules/mkdir-p
index 31e873c36a..20e3a23b49 100644
--- a/modules/mkdir-p
+++ b/modules/mkdir-p
@@ -10,7 +10,7 @@ m4/mkdir-p.m4
Depends-on:
error
-fcntl
+fcntl-h
gettext-h
lchmod
lchown
diff --git a/modules/open b/modules/open
index e89efde20c..601e0641d0 100644
--- a/modules/open
+++ b/modules/open
@@ -7,7 +7,7 @@ m4/open.m4
m4/mode_t.m4
Depends-on:
-fcntl
+fcntl-h
configure.ac:
gl_FUNC_OPEN
diff --git a/modules/savewd b/modules/savewd
index c2fd42f1a1..360d4b9a38 100644
--- a/modules/savewd
+++ b/modules/savewd
@@ -11,7 +11,7 @@ dirname
exit
fchdir
fcntl-safer
-fcntl
+fcntl-h
raise
stdbool
xalloc
diff --git a/tests/test-fcntl.c b/tests/test-fcntl-h.c
index 449984c8c9..127f49767d 100644
--- a/tests/test-fcntl.c
+++ b/tests/test-fcntl-h.c
@@ -1,5 +1,5 @@
/* Test of <fcntl.h> substitute.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -28,6 +28,9 @@ int o = O_DIRECT | O_DIRECTORY | O_DSYNC | O_NDELAY | O_NOATIME | O_NONBLOCK
/* Check that the various SEEK_* macros are defined. */
int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
+/* Check that the FD_* macros are defined. */
+int fd = FD_CLOEXEC;
+
int
main ()
{