* 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.
Signed-off-by: Eric Blake <ebb9@byu.net>
+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.
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
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
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
Depends-on:
atexit
fchdir
-fcntl
+fcntl-h
openat
memchr
mempcpy
Depends-on:
fchdir
-fcntl
+fcntl-h
open
same-inode
stdbool
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>
LGPL
Maintainer:
-all
+Eric Blake
--- /dev/null
+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
--- /dev/null
+Files:
+tests/test-fcntl-h.c
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-fcntl-h
+check_PROGRAMS += test-fcntl-h
+
+License:
+LGPL
m4/mode_t.m4
Depends-on:
-fcntl
+fcntl-h
open
unistd-safer
+++ /dev/null
-Files:
-tests/test-fcntl.c
-
-Depends-on:
-
-configure.ac:
-
-Makefile.am:
-TESTS += test-fcntl
-check_PROGRAMS += test-fcntl
-
-License:
-LGPL
d-type
dirfd
fchdir
-fcntl
+fcntl-h
fcntl-safer
hash
i-ring
Depends-on:
dirname
-fcntl
+fcntl-h
savewd
stat-macros
sys_stat
Depends-on:
error
-fcntl
+fcntl-h
gettext-h
lchmod
lchown
m4/mode_t.m4
Depends-on:
-fcntl
+fcntl-h
configure.ac:
gl_FUNC_OPEN
exit
fchdir
fcntl-safer
-fcntl
+fcntl-h
raise
stdbool
xalloc
--- /dev/null
+/* Test of <fcntl.h> substitute.
+ 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
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
+
+#include <config.h>
+
+#include <fcntl.h>
+
+/* Check that the various O_* macros are defined. */
+int o = O_DIRECT | O_DIRECTORY | O_DSYNC | O_NDELAY | O_NOATIME | O_NONBLOCK
+ | O_NOCTTY | O_NOFOLLOW | O_NOLINKS | O_RSYNC | O_SYNC
+ | O_BINARY | O_TEXT;
+
+/* 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 ()
+{
+ return 0;
+}
+++ /dev/null
-/* Test of <fcntl.h> substitute.
- Copyright (C) 2007 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
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* Written by Bruno Haible <bruno@clisp.org>, 2007. */
-
-#include <config.h>
-
-#include <fcntl.h>
-
-/* Check that the various O_* macros are defined. */
-int o = O_DIRECT | O_DIRECTORY | O_DSYNC | O_NDELAY | O_NOATIME | O_NONBLOCK
- | O_NOCTTY | O_NOFOLLOW | O_NOLINKS | O_RSYNC | O_SYNC
- | O_BINARY | O_TEXT;
-
-/* Check that the various SEEK_* macros are defined. */
-int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET };
-
-int
-main ()
-{
- return 0;
-}