[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] largefile: add dependencies to this module
From: |
Bruno Haible |
Subject: |
Re: [PATCH] largefile: add dependencies to this module |
Date: |
Sun, 24 Jul 2011 22:27:24 +0200 |
User-agent: |
KMail/1.13.6 (Linux/2.6.37.6-0.5-desktop; KDE/4.6.0; x86_64; ; ) |
Hi Paul,
> This one affects many modules, so I haven't pushed it yet.
> The basic idea is that code that uses 'stat (...)' etc.
> should always use AC_SYS_LARGEFILE, so that it doesn't
> mess up with large files. Plus, the code should use the
> up-to-date AC_SYS_LARGEFILE.
I agree with the reasoning and approach. But
1) The patch is missing documentation changes.
2) I don't see the reasoning for adding the dependency to modules
like 'acl', 'javacomp' and 'same'. If you are adding a dependency to
these modules, it sounds like every piece of application code that
somehow deads with files via <unistd.h> or <sys/stat.h> would need
a dependency to 'largefile'? This is not comforting, because this
"somehow" is impossible to document.
So, the first question is: What C library symbols are affected?
On a glibc system, I get this list:
$ nm /lib/libc.so.6 | grep ' [A-Z] .*64' | awk '{ print $3 }' | sed -e
's/@.*//' | uniq
_IO_fgetpos64
_IO_fsetpos64
__fxstat64
__fxstatat64
__lxstat64
__open64
__open64_2
__openat64_2
__pread64
__pread64_chk
__pwrite64
__xstat64
a64l
alphasort64
creat64
fallocate64
fgetpos64
fopen64
freopen64
fseeko64
fsetpos64
fstatfs64
fstatvfs64
ftello64
ftruncate64
ftw64
getdirentries64
getrlimit64
glob64
globfree64
l64a
lockf64
lseek64
mkostemp64
mkostemps64
mkstemp64
mkstemps64
mmap64
nftw64
open64
openat64
posix_fadvise64
posix_fallocate64
pread64
preadv64
pwrite64
pwritev64
readdir64
readdir64_r
scandir64
sendfile64
setrlimit64
statfs64
statvfs64
tmpfile64
truncate64
versionsort64
xdr_int64_t
xdr_uint64_t
On a Solaris 11 2010-11 system, I get this list:
$ nm /lib/libc.so.1 | grep ' [A-Z] .*64' | awk '{ print $3 }'
__aio_fsync_bar64
__cerror64
__div64
__divrem64
__lockf64
__mul64
__open64
__openat64
__pread64
__pwrite64
__rem64
__udiv64
__udivrem64
__urem64
_aio_rw64
_aio_sigev_thread64
_alphasort64
_attropen64
_creat64
_fseeko64
_fstat64
_fstatat64
_fstatvfs64
_ftello64
_ftruncate64
_ftw64
_getdents64
_getrlimit64
_lockf64
_lseek64
_lstat64
_mkstemp64
_mmap64
_nftw64
_open64
_openat64
_pread64
_pwrite64
_readdir64
_readdir64_r
_scandir64
_seekdir64
_semctl64
_setrlimit64
_shmctl64
_stat64
_statvfs64
_tell64
_telldir64
_truncate64
_xftw64
a64l
aio_cancel64
aio_error64
aio_fsync64
aio_read64
aio_return64
aio_suspend64
aio_waitn64
aio_write64
aioread64
aiowrite64
alphasort64
atomic_add_64
atomic_add_64_nv
atomic_and_64
atomic_and_64_nv
atomic_cas_64
atomic_dec_64
atomic_dec_64_nv
atomic_inc_64
atomic_inc_64_nv
atomic_or_64
atomic_or_64_nv
atomic_swap_64
attropen64
clear_lockbyte64
creat64
fgetpos64
fopen64
freopen64
fseeko64
fsetpos64
fstat64
fstatat64
fstatvfs64
ftello64
ftruncate64
ftw64
getdents64
getrlimit64
l64a
libc_mkstemps64
libc_nvlist_lookup_uint64
lio_listio64
lockf64
lseek64
lstat64
mkstemp64
mkstemps64
mmap64
msgctl64
nftw64
nvlookupint64
open64
openat64
posix_fadvise64
posix_fallocate64
pread64
pwrite64
readdir64
readdir64_r
scandir64
seekdir64
semctl64
set_lock_byte64
setrlimit64
shmctl64
stat64
statvfs64
swapp64
tell64
telldir64
tmpfile64
truncate64
And on MacOS X 10.5:
$ nm /usr/lib/libc.dylib | grep ' [A-Z] .*64' | sed -e 's/.* .* _//'
OSAtomicAdd64
OSAtomicAdd64Barrier
OSAtomicCompareAndSwap64
OSAtomicCompareAndSwap64Barrier
__opendir2$INODE64$UNIX2003
_readdir_unlocked$INODE64
_seekdir$INODE64$UNIX2003
_time64_to_time
_time_to_time64
a64l
alphasort$INODE64
fstat$INODE64
fstat64
fstatfs$INODE64
fstatfs64
fstatx64_np
fstatx_np$INODE64
fts_children$INODE64
fts_close$INODE64
fts_open$INODE64
fts_read$INODE64
fts_set$INODE64
ftw$INODE64$UNIX2003
getfsstat$INODE64
getfsstat64
getmntinfo$INODE64
getmntinfo64
getsectbynamefromheader_64
getsectdatafromheader_64
glob$INODE64
l64a
lstat$INODE64
lstat64
lstatx64_np
lstatx_np$INODE64
mach_make_memory_entry_64
mach_memory_object_memory_entry_64
mach_vm_region_info_64
nftw$INODE64$UNIX2003
opendir$INODE64$UNIX2003
readdir$INODE64
readdir_r$INODE64
rewinddir$INODE64$UNIX2003
scandir$INODE64
seekdir$INODE64$UNIX2003
stat$INODE64
stat64
statfs$INODE64
statfs64
statx64_np
statx_np$INODE64
swap_dylib_module_64
swap_mach_header_64
swap_nlist_64
swap_routines_command_64
swap_section_64
swap_segment_command_64
swap_x86_debug_state64
swap_x86_exception_state64
swap_x86_float_state64
swap_x86_thread_state64
telldir$INODE64$UNIX2003
vm_map_64
vm_region_64
vm_region_recurse_64
xdr_int64_t
xdr_u_int64_t
So I think the list of POSIX or glibc system functions affected by
AC_SYS_LARGEFILE is:
doc/posix-functions/aio_cancel.texi
doc/posix-functions/aio_error.texi
doc/posix-functions/aio_fsync.texi
doc/posix-functions/aio_read.texi
doc/posix-functions/aio_return.texi
doc/posix-functions/aio_suspend.texi
doc/posix-functions/aio_write.texi
doc/posix-functions/alphasort.texi
doc/posix-functions/creat.texi
doc/posix-functions/fgetpos.texi
doc/posix-functions/fopen.texi
doc/posix-functions/freopen.texi
doc/posix-functions/fseek.texi
doc/posix-functions/fseeko.texi
doc/posix-functions/fsetpos.texi
doc/posix-functions/fstat.texi
doc/posix-functions/fstatat.texi
doc/posix-functions/fstatvfs.texi
doc/posix-functions/ftell.texi
doc/posix-functions/ftello.texi
doc/posix-functions/ftruncate.texi
doc/posix-functions/ftw.texi
doc/posix-functions/getrlimit.texi
doc/posix-functions/glob.texi
doc/posix-functions/globfree.texi
doc/posix-functions/lio_listio.texi
doc/posix-functions/lockf.texi
doc/posix-functions/lseek.texi
doc/posix-functions/lstat.texi
doc/posix-functions/mkstemp.texi
doc/posix-functions/mmap.texi
doc/posix-functions/nftw.texi
doc/posix-functions/open.texi
doc/posix-functions/openat.texi
doc/posix-functions/opendir.texi
doc/posix-functions/posix_fadvise.texi
doc/posix-functions/posix_fallocate.texi
doc/posix-functions/pread.texi
doc/posix-functions/pwrite.texi
doc/posix-functions/readdir.texi
doc/posix-functions/readdir_r.texi
doc/posix-functions/rewinddir.texi
doc/posix-functions/scandir.texi
doc/posix-functions/seekdir.texi
doc/posix-functions/setrlimit.texi
doc/posix-functions/stat.texi
doc/posix-functions/statvfs.texi
doc/posix-functions/telldir.texi
doc/posix-functions/tmpfile.texi
doc/posix-functions/truncate.texi
doc/glibc-functions/fallocate.texi
doc/glibc-functions/fstatfs.texi
doc/glibc-functions/fts_children.texi
doc/glibc-functions/fts_close.texi
doc/glibc-functions/fts_open.texi
doc/glibc-functions/fts_read.texi
doc/glibc-functions/fts_set.texi
doc/glibc-functions/getdirentries.texi
doc/glibc-functions/mkostemp.texi
doc/glibc-functions/mkostemps.texi
doc/glibc-functions/mkstemps.texi
doc/glibc-functions/preadv.texi
doc/glibc-functions/pwritev.texi
doc/glibc-functions/sendfile.texi
doc/glibc-functions/statfs.texi
doc/glibc-functions/versionsort.texi
For not all of them it's documented. I'm applying the doc patch below.
It documents the current state (before any change in module dependencies).
For alphasort, globfree, fts_close, fts_open, fts_set, versionsort, there
is nothing to document because these function don't change their behaviour
through AC_SYS_LARGEFILE.
Among these affected system functions, those that have a gnulib module are:
doc/posix-functions/alphasort.texi alphasort
doc/posix-functions/fopen.texi fopen
doc/posix-functions/freopen.texi freopen
doc/posix-functions/fseek.texi fseek
doc/posix-functions/fseeko.texi fseeko
doc/posix-functions/fstatat.texi openat
doc/posix-functions/ftell.texi ftell
doc/posix-functions/ftello.texi ftello
doc/posix-functions/glob.texi glob
doc/posix-functions/globfree.texi glob
doc/posix-functions/lseek.texi lseek
doc/posix-functions/lstat.texi lstat
doc/posix-functions/mkstemp.texi mkstemp
doc/posix-functions/open.texi open
doc/posix-functions/openat.texi openat
doc/posix-functions/pread.texi pread
doc/posix-functions/pwrite.texi pwrite
doc/posix-functions/scandir.texi scandir
doc/posix-functions/stat.texi stat
doc/posix-functions/tmpfile.texi tmpfile
doc/glibc-functions/mkostemp.texi mkostemp
doc/glibc-functions/mkostemps.texi mkostemps
doc/glibc-functions/mkstemps.texi mkstemps
Would it not be sufficient to add 'largefile' as a dependency of these
modules? Then, for example, the 'javacomp' module would automatically
indirectly depend on 'largefile':
javacomp -> clean-temp -> open -> largefile
And gnulib users would not have to think about large files specially:
they just look in the documentation for modules that correspond to POSIX
functions.
Bruno
2011-07-24 Bruno Haible <address@hidden>
doc: Mention the effects of AC_SYS_LARGEFILE.
* doc/posix-functions/aio_cancel.texi: Mention the effects of
AC_SYS_LARGEFILE
on this function.
* doc/posix-functions/aio_error.texi: Likewise.
* doc/posix-functions/aio_fsync.texi: Likewise.
* doc/posix-functions/aio_read.texi: Likewise.
* doc/posix-functions/aio_return.texi: Likewise.
* doc/posix-functions/aio_suspend.texi: Likewise.
* doc/posix-functions/aio_write.texi: Likewise.
* doc/posix-functions/fgetpos.texi: Likewise.
* doc/posix-functions/fopen.texi: Likewise.
* doc/posix-functions/freopen.texi: Likewise.
* doc/posix-functions/fsetpos.texi: Likewise.
* doc/posix-functions/fstatvfs.texi: Likewise.
* doc/posix-functions/ftruncate.texi: Likewise.
* doc/posix-functions/ftw.texi: Likewise.
* doc/posix-functions/getrlimit.texi: Likewise.
* doc/posix-functions/glob.texi: Likewise.
* doc/posix-functions/lio_listio.texi: Likewise.
* doc/posix-functions/lockf.texi: Likewise.
* doc/posix-functions/mkstemp.texi: Likewise.
* doc/posix-functions/mmap.texi: Likewise.
* doc/posix-functions/nftw.texi: Likewise.
* doc/posix-functions/openat.texi: Likewise.
* doc/posix-functions/opendir.texi: Likewise.
* doc/posix-functions/posix_fadvise.texi: Likewise.
* doc/posix-functions/posix_fallocate.texi: Likewise.
* doc/posix-functions/pread.texi: Likewise.
* doc/posix-functions/pwrite.texi: Likewise.
* doc/posix-functions/readdir.texi: Likewise.
* doc/posix-functions/readdir_r.texi: Likewise.
* doc/posix-functions/rewinddir.texi: Likewise.
* doc/posix-functions/scandir.texi: Likewise.
* doc/posix-functions/seekdir.texi: Likewise.
* doc/posix-functions/setrlimit.texi: Likewise.
* doc/posix-functions/statvfs.texi: Likewise.
* doc/posix-functions/telldir.texi: Likewise.
* doc/posix-functions/tmpfile.texi: Likewise.
* doc/posix-functions/truncate.texi: Likewise.
* doc/glibc-functions/fallocate.texi: Likewise.
* doc/glibc-functions/fstatfs.texi: Likewise.
* doc/glibc-functions/fts_children.texi: Likewise.
* doc/glibc-functions/fts_read.texi: Likewise.
* doc/glibc-functions/getdirentries.texi: Likewise.
* doc/glibc-functions/mkostemp.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/preadv.texi: Likewise.
* doc/glibc-functions/pwritev.texi: Likewise.
* doc/glibc-functions/sendfile.texi: Likewise.
* doc/glibc-functions/statfs.texi: Likewise.
--- doc/posix-functions/aio_cancel.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_cancel.texi Sun Jul 24 21:25:26 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5,
BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/aio_error.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_error.texi Sun Jul 24 21:25:28 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw,
Interix 3.5, BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/aio_fsync.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_fsync.texi Sun Jul 24 21:25:29 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin,
mingw, Interix 3.5, BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/aio_read.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_read.texi Sun Jul 24 21:25:30 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5,
BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/aio_return.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_return.texi Sun Jul 24 21:25:30 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw,
Interix 3.5, BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/aio_suspend.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_suspend.texi Sun Jul 24 21:25:31 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5,
BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/aio_write.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/aio_write.texi Sun Jul 24 21:25:31 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5,
BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/fgetpos.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/fgetpos.texi Sun Jul 24 20:46:16 2011
@@ -17,6 +17,10 @@
on input streams that are opened in @code{O_TEXT} mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw.
@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
address@hidden macro.
address@hidden
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.
--- doc/posix-functions/fopen.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/fopen.texi Sun Jul 24 21:14:47 2011
@@ -28,6 +28,10 @@
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
address@hidden macro.
address@hidden
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
--- doc/posix-functions/freopen.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/freopen.texi Sun Jul 24 21:15:39 2011
@@ -24,6 +24,10 @@
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
address@hidden macro.
address@hidden
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},
--- doc/posix-functions/fsetpos.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/fsetpos.texi Sun Jul 24 20:46:19 2011
@@ -12,4 +12,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/fstatvfs.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/posix-functions/fstatvfs.texi Sun Jul 24 20:47:07 2011
@@ -15,4 +15,9 @@
@item
This function is missing on some platforms:
MacOS X 10.3, OpenBSD 3.8, mingw.
address@hidden
+On platforms where @code{f_blocks} in @samp{struct statvfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+glibc/Hurd, HP-UX 11, Solaris.
@end itemize
--- doc/posix-functions/ftruncate.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/ftruncate.texi Sun Jul 24 20:47:18 2011
@@ -12,4 +12,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function is not
+applicable to arbitrary lengths for files larger than 2 GB. The fix is to
+use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/posix-functions/ftw.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/ftw.texi Sun Jul 24 20:47:27 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, mingw, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function 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.
@end itemize
--- doc/posix-functions/getrlimit.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/getrlimit.texi Sun Jul 24 20:52:31 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
mingw, BeOS.
address@hidden
+On platforms where @code{rlim_t} is a 32-bit type, this function does not
+allow to retrieve limits larger than 4 GB, such as for RLIMIT_FSIZE. The
+fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/posix-functions/glob.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/glob.texi Sun Jul 24 21:24:15 2011
@@ -19,5 +19,9 @@
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.
address@hidden
Some platforms may store additional flags in the @code{gl_flags} field.
@end itemize
--- doc/posix-functions/lio_listio.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/lio_listio.texi Sun Jul 24 21:25:32 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, Interix 3.5,
BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/lockf.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/lockf.texi Sun Jul 24 20:47:47 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
Cygwin 1.5.x, mingw, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/posix-functions/mkstemp.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/mkstemp.texi Sun Jul 24 21:18:04 2011
@@ -27,6 +27,10 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
--- doc/posix-functions/mmap.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/mmap.texi Sun Jul 24 20:48:09 2011
@@ -16,6 +16,10 @@
This function is missing on some platforms:
mingw, BeOS.
@item
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
address@hidden
To get anonymous memory, on some platforms, you can use the flags
@code{MAP_ANONYMOUS | MAP_PRIVATE} and @code{-1} instead of a file descriptor;
on others you have to use a read-only file descriptor of @file{/dev/zero}.
--- doc/posix-functions/nftw.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/nftw.texi Sun Jul 24 20:48:17 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, mingw, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function 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.
@end itemize
--- doc/posix-functions/openat.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/openat.texi Sun Jul 24 21:17:06 2011
@@ -22,4 +22,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/opendir.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/opendir.texi Sun Jul 24 21:10:03 2011
@@ -12,4 +12,9 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
--- doc/posix-functions/posix_fadvise.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/posix_fadvise.texi Sun Jul 24 20:48:27 2011
@@ -16,4 +16,8 @@
This function is missing on some platforms:
MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11.23,
IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/posix-functions/posix_fallocate.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/posix_fallocate.texi Sun Jul 24 20:48:30 2011
@@ -16,4 +16,8 @@
This function is missing on some 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 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/posix-functions/pread.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/pread.texi Sun Jul 24 21:16:38 2011
@@ -22,4 +22,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/pwrite.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/pwrite.texi Sun Jul 24 21:16:37 2011
@@ -23,4 +23,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/readdir.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/readdir.texi Sun Jul 24 21:09:55 2011
@@ -12,4 +12,9 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
--- doc/posix-functions/readdir_r.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/readdir_r.texi Sun Jul 24 21:10:12 2011
@@ -18,4 +18,9 @@
@item
This function is missing on some platforms:
mingw, BeOS.
address@hidden
+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
--- doc/posix-functions/rewinddir.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/rewinddir.texi Sun Jul 24 21:55:46 2011
@@ -12,4 +12,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+On platforms where @code{long int} 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 (only on MacOS X systems).
@end itemize
--- doc/posix-functions/scandir.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/scandir.texi Sun Jul 24 21:21:47 2011
@@ -21,4 +21,9 @@
@item
The fourth parameter of this function is declared as @code{int (*) (void *,
void *)} on some platforms:
AIX 5.1.
address@hidden
+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
--- doc/posix-functions/seekdir.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/seekdir.texi Sun Jul 24 21:43:57 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
BeOS.
address@hidden
+On platforms where @code{long int} 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 (only on MacOS X systems).
@end itemize
--- doc/posix-functions/setrlimit.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/setrlimit.texi Sun Jul 24 20:52:50 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
mingw, BeOS.
address@hidden
+On platforms where @code{rlim_t} is a 32-bit type, this function does not
+allow to set limits larger than 4 GB, such as for RLIMIT_FSIZE. The fix is
+to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/posix-functions/statvfs.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/statvfs.texi Sun Jul 24 20:49:14 2011
@@ -15,6 +15,11 @@
@item
This function is missing on some platforms:
MacOS X 10.3, OpenBSD 3.8, mingw.
address@hidden
+On platforms where @code{f_blocks} in @samp{struct statvfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+glibc/Hurd, HP-UX 11, Solaris.
@end itemize
Gnulib provides a module @code{fsusage} that provides similar information
--- doc/posix-functions/telldir.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/telldir.texi Sun Jul 24 21:43:57 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
BeOS.
address@hidden
+On platforms where @code{long int} 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 (only on MacOS X systems).
@end itemize
--- doc/posix-functions/tmpfile.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/tmpfile.texi Sun Jul 24 21:19:41 2011
@@ -15,4 +15,8 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/posix-functions/truncate.texi.orig Sun Jul 24 22:09:11 2011
+++ doc/posix-functions/truncate.texi Sun Jul 24 20:49:53 2011
@@ -15,4 +15,8 @@
@item
This function is missing on some platforms:
mingw.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function is not
+applicable to arbitrary lengths for files larger than 2 GB. The fix is to
+use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/glibc-functions/fallocate.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/fallocate.texi Sun Jul 24 20:45:50 2011
@@ -13,4 +13,8 @@
@item
This function is missing on older glibc versions and all 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, mingw, Interix 3.5, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function may not
+work correctly across the entire data range of files larger than 2 GB.
+The fix is to use the @code{AC_SYS_LARGEFILE} macro.
@end itemize
--- doc/glibc-functions/fstatfs.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/fstatfs.texi Sun Jul 24 20:46:54 2011
@@ -13,4 +13,9 @@
@item
This function is missing on some platforms:
AIX 5.1, mingw, Interix 3.5, BeOS.
address@hidden
+On platforms where @code{f_blocks} in @samp{struct statfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+MacOS X.
@end itemize
--- doc/glibc-functions/fts_children.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/fts_children.texi Sun Jul 24 22:03:20 2011
@@ -13,4 +13,11 @@
@item
This function is missing on some platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function may not
+correctly report the size of files or block devices larger than 2 GB and
+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 (only on MacOS X systems).
@end itemize
--- doc/glibc-functions/fts_read.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/fts_read.texi Sun Jul 24 22:03:21 2011
@@ -13,4 +13,11 @@
@item
This function is missing on some platforms:
AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, BeOS.
address@hidden
+On platforms where @code{off_t} is a 32-bit type, this function may not
+correctly report the size of files or block devices larger than 2 GB and
+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 (only on MacOS X systems).
@end itemize
--- doc/glibc-functions/getdirentries.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/getdirentries.texi Sun Jul 24 20:52:00 2011
@@ -13,4 +13,8 @@
@item
This function is missing on some platforms:
AIX 4.3.2, IRIX 6.5, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
address@hidden
+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.
@end itemize
--- doc/glibc-functions/mkostemp.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/mkostemp.texi Sun Jul 24 21:18:23 2011
@@ -14,6 +14,10 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
--- doc/glibc-functions/mkostemps.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/mkostemps.texi Sun Jul 24 21:18:33 2011
@@ -14,6 +14,10 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
--- doc/glibc-functions/mkstemps.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/mkstemps.texi Sun Jul 24 21:18:11 2011
@@ -18,6 +18,10 @@
Portability problems not fixed by Gnulib:
@itemize
address@hidden
+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
address@hidden macro.
@end itemize
The gnulib module @code{clean-temp} can create temporary files that will not
--- doc/glibc-functions/preadv.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/preadv.texi Sun Jul 24 20:48:41 2011
@@ -13,4 +13,8 @@
@item
This function is missing on some platforms:
glibc 2.9, MacOS X 10.5, FreeBSD 5.2.1, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1
5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/glibc-functions/pwritev.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/pwritev.texi Sun Jul 24 20:48:43 2011
@@ -13,4 +13,8 @@
@item
This function is missing on some platforms:
glibc 2.9, MacOS X 10.5, FreeBSD 5.2.1, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1
5.1, Solaris 11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/glibc-functions/sendfile.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/sendfile.texi Sun Jul 24 20:48:54 2011
@@ -13,4 +13,8 @@
@item
This function is missing on some platforms:
MacOS X 10.4, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris
11 2010-11, Cygwin, mingw, Interix 3.5, BeOS.
address@hidden
+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
address@hidden macro.
@end itemize
--- doc/glibc-functions/statfs.texi.orig Sun Jul 24 22:09:10 2011
+++ doc/glibc-functions/statfs.texi Sun Jul 24 20:49:09 2011
@@ -13,4 +13,9 @@
@item
This function is missing on some platforms:
AIX 5.1, mingw, Interix 3.5, BeOS.
address@hidden
+On platforms where @code{f_blocks} in @samp{struct statfs} is a 32-bit
+value, this function may not work correctly on files systems larger than
+4 TiB. The fix is to use the @code{AC_SYS_LARGEFILE} macro. This affects
+MacOS X.
@end itemize
--
In memoriam Ezechiele Ramin <http://en.wikipedia.org/wiki/Ezechiele_Ramin>