Commit 1786a415 authored by Eric Blake's avatar Eric Blake
Browse files

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.
Signed-off-by: default avatarEric Blake <ebb9@byu.net>
parent 6397686e
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.
......@@ -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
......
......@@ -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
......@@ -9,7 +9,7 @@ m4/chdir-long.m4
Depends-on:
atexit
fchdir
fcntl
fcntl-h
openat
memchr
mempcpy
......
......@@ -8,7 +8,7 @@ m4/chdir-safer.m4
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>
......@@ -38,4 +17,4 @@ License:
LGPL
Maintainer:
all
Eric Blake
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
Files:
tests/test-fcntl.c
tests/test-fcntl-h.c
Depends-on:
configure.ac:
Makefile.am:
TESTS += test-fcntl
check_PROGRAMS += test-fcntl
TESTS += test-fcntl-h
check_PROGRAMS += test-fcntl-h
License:
LGPL
......@@ -10,7 +10,7 @@ m4/fcntl-safer.m4
m4/mode_t.m4
Depends-on:
fcntl
fcntl-h
open
unistd-safer
......
......@@ -13,7 +13,7 @@ d-ino
d-type
dirfd
fchdir
fcntl
fcntl-h
fcntl-safer
hash
i-ring
......
......@@ -8,7 +8,7 @@ m4/mkancesdirs.m4
Depends-on:
dirname
fcntl
fcntl-h
savewd
stat-macros
sys_stat
......
......@@ -10,7 +10,7 @@ m4/mkdir-p.m4
Depends-on:
error
fcntl
fcntl-h
gettext-h
lchmod
lchown
......
......@@ -7,7 +7,7 @@ m4/open.m4
m4/mode_t.m4
Depends-on:
fcntl
fcntl-h
configure.ac:
gl_FUNC_OPEN
......
......@@ -11,7 +11,7 @@ dirname
exit
fchdir
fcntl-safer
fcntl
fcntl-h
raise
stdbool
xalloc
......
/* 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 ()
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment