* modules/fopen (Depends-on): Add 'largefile'.
* modules/freopen (Depends-on): Likewise.
* modules/fseeko (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Do not require AC_SYS_LARGEFILE,
since the containing module now depends on the largefile module.
* m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Likewise.
* doc/posix-functions/fopen.texi: Mention that the problem of 32-bit
off_t is fixed by gnulib.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fseeko.texi: Likewise.
* doc/posix-functions/fstatat.texi: Likewise.
* doc/posix-functions/ftello.texi: Likewise.
* doc/posix-functions/glob.texi: Likewise.
* doc/posix-functions/lseek.texi: Likewise.
* doc/posix-functions/lstat.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/stat.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
+2011-07-25 Paul Eggert <eggert@cs.ucla.edu>
+ Bruno Haible <bruno@clisp.org>
+
+ Add dependencies to the 'largefile' module.
+ * modules/fopen (Depends-on): Add 'largefile'.
+ * modules/freopen (Depends-on): Likewise.
+ * modules/fseeko (Depends-on): Likewise.
+ * modules/ftello (Depends-on): Likewise.
+ * modules/glob (Depends-on): Likewise.
+ * modules/lseek (Depends-on): Likewise.
+ * modules/lstat (Depends-on): Likewise.
+ * modules/mkostemp (Depends-on): Likewise.
+ * modules/mkostemps (Depends-on): Likewise.
+ * modules/mkstemp (Depends-on): Likewise.
+ * modules/mkstemps (Depends-on): Likewise.
+ * modules/open (Depends-on): Likewise.
+ * modules/openat (Depends-on): Likewise.
+ * modules/pread (Depends-on): Likewise.
+ * modules/pwrite (Depends-on): Likewise.
+ * modules/scandir (Depends-on): Likewise.
+ * modules/stat (Depends-on): Likewise.
+ * modules/tmpfile (Depends-on): Likewise.
+ * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Do not require AC_SYS_LARGEFILE,
+ since the containing module now depends on the largefile module.
+ * m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Likewise.
+ * doc/posix-functions/fopen.texi: Mention that the problem of 32-bit
+ off_t is fixed by gnulib.
+ * doc/posix-functions/freopen.texi: Likewise.
+ * doc/posix-functions/fseeko.texi: Likewise.
+ * doc/posix-functions/fstatat.texi: Likewise.
+ * doc/posix-functions/ftello.texi: Likewise.
+ * doc/posix-functions/glob.texi: Likewise.
+ * doc/posix-functions/lseek.texi: Likewise.
+ * doc/posix-functions/lstat.texi: Likewise.
+ * doc/posix-functions/mkstemp.texi: Likewise.
+ * doc/posix-functions/open.texi: Likewise.
+ * doc/posix-functions/openat.texi: Likewise.
+ * doc/posix-functions/pread.texi: Likewise.
+ * doc/posix-functions/pwrite.texi: Likewise.
+ * doc/posix-functions/scandir.texi: Likewise.
+ * doc/posix-functions/stat.texi: Likewise.
+ * doc/posix-functions/tmpfile.texi: Likewise.
+ * doc/glibc-functions/mkostemp.texi: Likewise.
+ * doc/glibc-functions/mkostemps.texi: Likewise.
+ * doc/glibc-functions/mkstemps.texi: Likewise.
+
2011-07-25 Bruno Haible <bruno@clisp.org>
fcntl: Move AC_LIBOBJ invocation to module description.
This function is missing on many non-glibc platforms:
MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11,
IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkostemp} may not work
+correctly to create files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{mkostemp} may not work
-correctly to create files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
This function is missing on many non-glibc platforms:
glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX
5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.5, mingw, Interix 3.5, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkostemps} may not work
+correctly to create files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{mkostemps} may not work
-correctly to create files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
This function is declared in @code{<unistd.h>} instead of @code{<stdlib.h>}
on some platforms:
MacOS X 10.5.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkstemps} may not work
+correctly to create files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{mkstemps} may not work
-correctly to create files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
directory, on some platforms:
HP-UX 11.00, AIX 7.1, Solaris 9, Irix 5.3.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{fopen} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On Windows platforms (excluding Cygwin), this function does usually not
recognize the @file{/dev/null} filename.
@end itemize
this means that it translates @code{'\n'} to CR/LF by default. Use the
@code{"b"} flag if you need reliable binary I/O.
@item
-On platforms where @code{off_t} is a 32-bit type, @code{fopen} may not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
On Windows platforms (excluding Cygwin), this function fails to open
directories for reading. Such streams have implementation-defined
semantics on other platforms. To avoid directory streams with a
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{freopen} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On Windows platforms (excluding Cygwin), this function does usually not
recognize the @file{/dev/null} filename.
@end itemize
directory, on some platforms:
HP-UX 11.00, Solaris 9, Irix 5.3.
@item
-On platforms where @code{off_t} is a 32-bit type, @code{freopen} may not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
Applications should not assume that @code{fileno(f)} will be the same
before and after a call to @code{freopen(name,mode,f)}. However, the
module freopen-safer can at least protect @code{stdin}, @code{stdout},
glibc 2.3.6, OSF/1 5.1.
@item
This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{fseeko} does not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{fseeko} does not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
On platforms where @code{off_t} is a 64-bit type, but @code{fseeko} is
not present, stream operations on files larger than 2 GB silently do
the wrong thing. This affects BSD/OS, which is mostly obsolete.
5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, 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.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{fstatat} may
+not correctly report the size of files or block devices larger than 2
+GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On some platforms, @code{fstatat(fd,"file/",buf,flag)} succeeds instead of
failing with @code{ENOTDIR}.
Solaris 9.
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{fstatat} may
-not correctly report the size of files or block devices larger than 2
-GB. The fix is to use the @code{AC_SYS_LARGEFILE} macro.
-@item
On Windows platforms (excluding Cygwin), @code{st_ino} is always 0.
@item
On some file systems, @code{st_size} contains bogus information for
Solaris 11 2010-11.
@item
This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{ftello} does not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{ftello} does not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
This function produces incorrect results immediately after @code{fseek} on some
platforms:
HP-UX 11.
@item
This function may list symbolic links to nonexistent files among the results,
on some platforms.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB.
+(Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, this function may not
-work correctly on huge directories larger than 2 GB. The fix is to use
-the @code{AC_SYS_LARGEFILE} macro.
-@item
Some platforms may store additional flags in the @code{gl_flags} field.
@end itemize
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{lseek} does not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function mistakenly succeeds on pipes on some platforms: mingw, BeOS.
@end itemize
In practice, regular files and block devices support seeking, and ttys, pipes,
and most character devices don't support it.
@item
-On platforms where @code{off_t} is a 32-bit type, @code{lseek} does not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
-@item
When the third argument is invalid, POSIX says that @code{lseek} should set
@code{errno} to @code{EINVAL} and return -1, but in this situation a
@code{SIGSYS} signal is raised on some platforms:
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{lstat} may not
+correctly report the size of files or block devices larger than 2 GB.
+(Cf. @code{AC_SYS_LARGEFILE}.)
+@item
For symlinks, when the argument ends in a slash, some platforms don't
dereference the argument:
Solaris 9.
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{lstat} may not
-correctly report the size of files or block devices larger than 2 GB. The fix
-is to use the @code{AC_SYS_LARGEFILE} macro.
-@item
On Windows platforms (excluding Cygwin), @code{st_ino} is always 0.
@item
Because of the definition of @code{struct stat}, it is not possible to
limit that it can create no more than 26 files from a given template. On
OSF/1 4.0f, it can create only 32 files per process.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{mkstemp} may not work
+correctly to create files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On some older platforms, @code{mkstemp} can create a world or group
writable or readable file, if you haven't set the process umask to
077. This is a security risk.
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{mkstemp} may not work
-correctly to create files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
Portability problems fixed by the Gnulib module open:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:
On Windows, this function returns a file handle in @code{O_TEXT} mode by
default; this means that it translates '\n' to CR/LF by default. Use the
@code{O_BINARY} flag if you need reliable binary I/O.
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, 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.
@item
+On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
+correctly with files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
-correctly with files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
This function is missing on some platforms:
HP-UX 10, mingw, BeOS.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function returns zero instead of positive values when large file support
is enabled on some platforms:
HP-UX 11.11.
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, this function may not
-work correctly on files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
This function is missing on some platforms:
HP-UX 10, mingw, BeOS.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
+@item
This function does not fail when an invalid (negative) offset is passed when
large file support is enabled on some platforms:
HP-UX 11.11.
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, this function may not
-work correctly on files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
@item
This function is missing on some platforms:
Solaris 9, mingw, BeOS.
+@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly on huge directories larger than 2 GB. Also, on platforms
+where @code{ino_t} is a 32-bit type, this function may report inode numbers
+incorrectly. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@item
The fourth parameter of this function is declared as @code{int (*) (void *, void *)} on some platforms:
AIX 5.1.
-@item
-On platforms where @code{off_t} is a 32-bit type, this function may not
-work correctly on huge directories larger than 2 GB. Also, on platforms
-where @code{ino_t} is a 32-bit type, this function may report inode numbers
-incorrectly. The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
Portability problems fixed by Gnulib:
@itemize
@item
+On platforms where @code{off_t} is a 32-bit type, @code{stat} may not correctly
+report the size of files or block devices larger than 2 GB.
+(Cf. @code{AC_SYS_LARGEFILE}.)
+@item
On some platforms, @code{stat("link-to-file/",buf)} succeeds instead
of failing with @code{ENOTDIR}.
FreeBSD 7.2, AIX 7.1, Solaris 9.
Portability problems not fixed by Gnulib:
@itemize
@item
-On platforms where @code{off_t} is a 32-bit type, @code{stat} may not correctly
-report the size of files or block devices larger than 2 GB. The fix is to
-use the @code{AC_SYS_LARGEFILE} macro.
-@item
Cygwin's @code{stat} function sometimes sets @code{errno} to @code{EACCES} when
@code{ENOENT} would be more appropriate.
@item
@item
This function often fails for trivial reasons on some platforms:
mingw.
+@item
+On platforms where @code{off_t} is a 32-bit type, @code{tmpfile} may not work
+correctly to create files larger than 2 GB. (Cf. @code{AC_SYS_LARGEFILE}.)
@end itemize
Portability problems not fixed by Gnulib:
@itemize
-@item
-On platforms where @code{off_t} is a 32-bit type, @code{tmpfile} may not work
-correctly to create files larger than 2 GB. The fix is to use the
-@code{AC_SYS_LARGEFILE} macro.
@end itemize
-#serial 21
+#serial 22
# Copyright (C) 2001, 2003-2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
AC_DEFUN([gl_FUNC_MKSTEMP],
[
AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
- AC_REQUIRE([AC_SYS_LARGEFILE])
AC_CHECK_FUNCS_ONCE([mkstemp])
if test $ac_cv_func_mkstemp = yes; then
-#serial 4
+#serial 5
# Copyright (C) 2006-2007, 2009-2011 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# it as a public API, and provide it on systems that are lacking.
AC_DEFUN([gl_FUNC_GEN_TEMPNAME],
[
- AC_REQUIRE([AC_SYS_LARGEFILE])
-
gl_PREREQ_TEMPNAME
])
Depends-on:
stdio
+largefile
unistd [test $REPLACE_FOPEN = 1]
configure.ac:
Depends-on:
stdio
+largefile
configure.ac:
gl_FUNC_FREOPEN
Depends-on:
extensions
+largefile
lseek
stdio
# Just to guarantee consistency between fseek() and fseeko().
Depends-on:
stdio
extensions
+largefile
lseek [test $HAVE_FTELLO = 0 || test $REPLACE_FTELLO = 1]
# Just to guarantee consistency between ftell() and ftello().
ftell
Depends-on:
extensions
+largefile
snippet/arg-nonnull
snippet/c++defs
snippet/warn-on-use
Depends-on:
unistd
+largefile
configure.ac:
gl_FUNC_LSEEK
Depends-on:
sys_stat
+largefile
dosname [test $REPLACE_LSTAT = 1]
stat [test $REPLACE_LSTAT = 1]
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKOSTEMP = 0]
configure.ac:
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKOSTEMPS = 0]
configure.ac:
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKSTEMP = 0 || test $REPLACE_MKSTEMP = 1]
configure.ac:
Depends-on:
stdlib
extensions
+largefile
tempname [test $HAVE_MKSTEMPS = 0]
configure.ac:
Depends-on:
fcntl-h
+largefile
stat [test $REPLACE_OPEN = 1]
configure.ac:
fdopendir
gettext-h
intprops
+largefile
lchown [test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1]
lstat
mkdir [test $HAVE_MKDIRAT = 0]
Depends-on:
unistd
extensions
+largefile
lseek [test $HAVE_PREAD = 0 || test $REPLACE_PREAD = 1]
read [test $HAVE_PREAD = 0 || test $REPLACE_PREAD = 1]
Depends-on:
unistd
extensions
+largefile
lseek [test $HAVE_PWRITE = 0 || test $REPLACE_PWRITE = 1]
write [test $HAVE_PWRITE = 0 || test $REPLACE_PWRITE = 1]
Depends-on:
dirent
extensions
+largefile
configure.ac:
gl_FUNC_SCANDIR
Depends-on:
sys_stat
+largefile
dosname [test $REPLACE_STAT = 1]
stdbool [test $REPLACE_STAT = 1]
verify [test $REPLACE_STAT = 1]
Depends-on:
stdio
+largefile
pathmax [test $REPLACE_TMPFILE = 1]
tempname [test $REPLACE_TMPFILE = 1]
tmpdir [test $REPLACE_TMPFILE = 1]