1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-17 12:41:05 +03:00
Commit Graph

7 Commits

Author SHA1 Message Date
Bruno Haible
3f3d9b41ce Large File Support for native Windows platforms.
* m4/largefile.m4 (gl_LARGEFILE): New macro.
* modules/largefile (configure.ac): Require gl_LARGEFILE.

* lib/sys_types.in.h (off_t) [WINDOWS_64_BIT_OFF_T]: Define to a 64-bit
type.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_64_BIT_OFF_T.
* modules/sys_types (Makefile.am): Substitute WINDOWS_64_BIT_OFF_T.
* doc/posix-headers/sys_types.texi: Mention the effect of the
'largefile' module.

* lib/fcntl.in.h: Add comments about off_t.
* modules/fcntl-h (Depends-on): Add sys_types.

* lib/unistd.in.h [WINDOWS_64_BIT_OFF_T]: Include <sys/types.h>.
(ftruncate): Replace it if REPLACE_FTRUNCATE is 1.
* m4/unistd_h.m4 (gl_UNISTD_H): Require gl_SYS_TYPES_H.
(gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FTRUNCATE.
* modules/unistd (Depends-on): Add sys_types.
(Makefile.am): Substitute WINDOWS_64_BIT_OFF_T, REPLACE_FTRUNCATE.

* lib/lseek.c (rpl_lseek) [_GL_WINDOWS_64_BIT_OFF_T]: Use _lseeki64
instead of lseek.
* m4/lseek.m4 (gl_FUNC_LSEEK): Require gl_SYS_TYPES_H. Set
REPLACE_LSEEK if WINDOWS_64_BIT_OFF_T is 1.
* modules/lseek (Depends-on): Add sys_types.

* lib/ftruncate.c: Put under GPLv3+. Include <windows.h>,
msvc-nothrow.h.
(SetFileSize): New function.
(ftruncate) [_GL_WINDOWS_64_BIT_OFF_T]: New implementation.
* m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Set REPLACE_FTRUNCATE on Windows
if Large File Support is requested.
* modules/ftruncate (configure.ac): Consider REPLACE_FTRUNCATE.
(Depends-on): Add sys_types, msvc-nothrow. Update conditions.

* lib/stdio.in.h: Add comments about off_t.
* modules/stdio (Depends-on): Add sys_types.

* lib/ftello.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _ftelli64 or ftello64
instead of ftello.
* m4/ftello.m4 (gl_FUNC_FTELLO): Require gl_SYS_TYPES_H. Set
REPLACE_FTELLO if WINDOWS_64_BIT_OFF_T is 1.
(gl_PREREQ_FTELLO): New macro.
* modules/ftello (Depends-on): Add sys_types.
(configure.ac): Incoke gl_PREREQ_FTELLO.

* lib/fseeko.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _fseeki64 or fseeko64
instead of fseeko.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Require gl_SYS_TYPES_H. Set
REPLACE_FSEEKO if WINDOWS_64_BIT_OFF_T is 1.
(gl_PREREQ_FSEEKO): New macro.
* modules/fseeko (Depends-on): Add sys_types.
(configure.ac): Invoke gl_PREREQ_FSEEKO.

* lib/sys_stat.in.h: Add comments about off_t.
(stat, fstat) [WINDOWS_64_BIT_ST_SIZE]: Define to variants that use a
64-bit integer for st_size in 'struct stat'.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Set WINDOWS_64_BIT_ST_SIZE.
Define _GL_WINDOWS_64_BIT_ST_SIZE.
* modules/sys_stat (Depends-on): Add sys_types.
(Makefile.am): Substitute WINDOWS_64_BIT_ST_SIZE.

* lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Define to _stati64
instead of stat or _stat.

* lib/fstat.c [_GL_WINDOWS_64_BIT_ST_SIZE]: Use _fstati64 and
'struct _stati64' instead of fstat and 'struct stat'.
* m4/fstat.m4 (gl_FUNC_FSTAT): Require gl_HEADER_SYS_STAT_H. Set
REPLACE_FSTAT if WINDOWS_64_BIT_ST_SIZE is 1.

Reported by Ray Satiro <raysatiro@yahoo.com>.
2012-04-21 11:45:29 +02:00
Bruno Haible
cd76a061a8 New module 'fstat'.
* lib/sys_stat.in.h (fstat): Declare only if GNULIB_FSTAT is set.
* lib/fstat.c: New file, based on a piece of lib/fchdir.c.
* lib/fchdir.c (rpl_fstat): Remove function.
* m4/fstat.m4: New file.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_FSTAT.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Test whether fstat is
declared.
(gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_FSTAT.
* modules/sys_stat (Makefile.am): Substitute GNULIB_FSTAT.
* modules/fstat: New file.
* modules/sys_stat-tests (Depends-on): Remove fstat-tests.
* tests/test-sys_stat-c++.cc (fstat): Check only if GNULIB_TEST_FSTAT
is set.
* doc/posix-functions/fstat.texi: Mention the new module and the
problem on MSVC.
* NEWS: Mention the change.
* modules/acl (Depends-on): Add fstat.
* modules/chdir-safer (Depends-on): Likewise.
* modules/chown (Depends-on): Likewise.
* modules/copy-file (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/fopen (Depends-on): Likewise.
* modules/fts (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/mkdir-p (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/read-file (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/utimens (Depends-on): Likewise.
2011-09-25 13:42:08 +02:00
Bruno Haible
9b604b4cbf New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
* lib/msvc-nothrow.h: New file.
* lib/msvc-nothrow.c: New file.
* m4/msvc-nothrow.m4: New file.
* modules/msvc-nothrow: New file.
* lib/dup2.c: Include msvc-nothrow.h.
(rpl_dup2): No need to protect _get_osfhandle call here.
* lib/accept4.c: Include msvc-nothrow.h.
* lib/error.c: Likewise.
* lib/fcntl.c: Likewise.
* lib/lseek.c: Likewise.
* lib/nonblocking.c: Likewise.
* lib/poll.c: Likewise.
* lib/read.c: Likewise.
* lib/select.c: Likewise.
* lib/sockets.h: Likewise.
* lib/sockets.c: Likewise.
* lib/stdio-read.c: Likewise.
* lib/stdio-write.c: Likewise.
* lib/write.c: Likewise.
* lib/w32sock.h: Likewise.
* lib/w32spawn.h: Likewise.
* lib/flock.c: Include msvc-nothrow.h instead of <io.h>.
* lib/fsync.c: Likewise.
* lib/isapipe.c: Likewise.
* modules/dup2 (Depends-on): Add msvc-nothrow.
* modules/accept4 (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/lseek (Depends-on): Likewise.
* modules/nonblocking (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/read (Depends-on): Likewise.
* modules/select (Depends-on): Likewise.
* modules/sockets (Depends-on): Likewise.
* modules/sigpipe (Depends-on): Likewise.
* modules/write (Depends-on): Likewise.
* modules/accept (Depends-on): Likewise.
* modules/bind (Depends-on): Likewise.
* modules/connect (Depends-on): Likewise.
* modules/gethostname (Depends-on): Likewise.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/ioctl (Depends-on): Likewise.
* modules/listen (Depends-on): Likewise.
* modules/recv (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* modules/send (Depends-on): Likewise.
* modules/sendto (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* modules/shutdown (Depends-on): Likewise.
* modules/socket (Depends-on): Likewise.
* modules/execute (Depends-on): Likewise.
* modules/spawn-pipe (Depends-on): Likewise.
* modules/flock (Depends-on): Likewise.
* modules/fsync (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* tests/test-cloexec.c: Include msvc-nothrow.h.
* tests/test-dup-safer.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-dup3.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-pipe2.c: Likewise.
* modules/cloexec-tests (Depends-on): Add msvc-nothrow.
* modules/unistd-safer-tests (Depends-on): Likewise.
* modules/dup2-tests (Depends-on): Likewise.
* modules/dup3-tests (Depends-on): Likewise.
* modules/fcntl-tests (Depends-on): Likewise.
* modules/pipe-posix-tests (Depends-on): Likewise.
* modules/pipe2-tests (Depends-on): Likewise.
2011-09-23 21:38:44 +02:00
Paul Eggert
599a664564 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-26 02:50:07 +02:00
Bruno Haible
20d9dfda7f lseek: Move AC_LIBOBJ invocations to module description.
* m4/lseek.m4 (gl_REPLACE_LSEEK): Remove macro.
(gl_FUNC_LSEEK): Inline it here. Move AC_LIBOBJ invocation from here...
* modules/lseek (configure.ac): ... to here.
2011-06-16 00:06:25 +02:00
Bruno Haible
96093e577d Use the synonymous term "LGPLv2+". 2007-07-16 10:54:15 +00:00
Eric Blake
e461ff7387 Fix lseek on mingw.
* modules/lseek: New module.
* m4/lseek.m4: New file.
* lib/lseek.c: New file.
* modules/lseek-tests: New file.
* tests/test-lseek.c: New file.
* tests/test-lseek.sh: New file.
* MODULES.html.sh: Document lseek module.
* modules/fflush (Depends-on): Add lseek, fseeko.
* modules/fseeko (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* m4/fseeko.m4 (gl_FUNC_FSEEKO): Replace fseek[o] if lseek is
broken.
* m4/ftello.m4 (gl_FUNC_FTELLO): Replace ftell[o] if lseek is
broken.
* m4/fflush.m4 (gl_REPLACE_FFLUSH): Trigger fseeko module.
* lib/fseeko.c (rpl_fseeko): Quit early on non-seekable files.
* lib/ftello.c (rpl_ftello): Likewise.
* tests/test-fseeko.c (main): Test this.
* tests/test-fseeko.sh: Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-ftello.sh: Likewise.
* lib/stdio_.h (fseek, ftell): Simplify, since missing fseeko now
implies replacing fseek.
* modules/stdio (Makefile.am): No longer need HAVE_FSEEKO,
HAVE_FTELLO.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add lseek info.
* modules/unistd (Makefile.am): Likewise.
* lib/unistd_.h (lseek): Declare a replacement.
* doc/functions/lseek.texi (lseek): Document this fix.
* doc/functions/fseek.texi (fseek): Likewise.
* doc/functions/ftell.texi (ftell): Likewise.
2007-05-24 16:59:20 +00:00