bug-gnulib
[Top][All Lists]
Advanced

[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>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]