summaryrefslogtreecommitdiff
path: root/modules/fdatasync
Commit message (Collapse)AuthorAgeFilesLines
* Resolve conflicts for functions introduced in Android API level 9.Bruno Haible2023-01-221-2/+2
| | | | | | | | | | | | | | | | | * lib/unistd.in.h (fdatasync): Consider REPLACE_FDATASYNC. Disable _GL_CXXALIASWARN invocation on non-glibc systems. (pipe2): Consider REPLACE_PIPE2. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FDATASYNC, REPLACE_PIPE2. * modules/unistd (Makefile.am): Substitute REPLACE_FDATASYNC, REPLACE_PIPE2. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Test for fdatasync using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally set REPLACE_FDATASYNC. * modules/fdatasync (Depends-on, configure.ac): Consider REPLACE_FDATASYNC. * m4/pipe2.m4 (gl_FUNC_PIPE2): Conditionally set REPLACE_PIPE2.
* fdatasync: Rename LIB_FDATASYNC to FDATASYNC_LIB.Bruno Haible2023-01-071-1/+1
| | | | | | * m4/fdatasync.m4: Rename LIB_FDATASYNC to FDATASYNC_LIB. All uses changed. * NEWS: Mention the change.
* Use the GL_CFLAG_GNULIB_WARNINGS for most AC_LIBOBJ compilation units.Bruno Haible2022-01-091-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * modules/_Exit (configure.ac): Define an Automake conditional. Remove the AC_LIBOBJ invocation. (Makefile.am): Augment lib_SOURCES, guarded by that Automake conditional. * modules/accept: Likewise. * modules/access: Likewise. * modules/acosf: Likewise. * modules/acosl: Likewise. * modules/aligned_alloc: Likewise. * modules/alphasort: Likewise. * modules/argz: Likewise. * modules/asinf: Likewise. * modules/asinl: Likewise. * modules/atan2f: Likewise. * modules/atanf: Likewise. * modules/atanl: Likewise. * modules/atexit: Likewise. * modules/atoll: Likewise. * modules/bind: Likewise. * modules/btowc: Likewise. * modules/c32rtomb: Likewise. * modules/canonicalize-lgpl: Likewise. * modules/cbrt: Likewise. * modules/cbrtf: Likewise. * modules/cbrtl: Likewise. * modules/ceil: Likewise. * modules/ceilf: Likewise. * modules/ceill: Likewise. * modules/chdir-long: Likewise. * modules/chown: Likewise. * modules/close: Likewise. * modules/closedir: Likewise. * modules/cnd: Likewise. * modules/connect: Likewise. * modules/copy-file-range: Likewise. * modules/copysign: Likewise. * modules/copysignf: Likewise. * modules/copysignl: Likewise. * modules/cosf: Likewise. * modules/coshf: Likewise. * modules/cosl: Likewise. * modules/creat: Likewise. * modules/crypto/gc: Likewise. * modules/ctime: Likewise. * modules/dirfd: Likewise. * modules/dup: Likewise. * modules/dup2: Likewise. * modules/duplocale: Likewise. * modules/error: Likewise. * modules/euidaccess: Likewise. * modules/execinfo: Likewise. * modules/execl: Likewise. * modules/execle: Likewise. * modules/execlp: Likewise. * modules/execv: Likewise. * modules/execve: Likewise. * modules/execvp: Likewise. * modules/execvpe: Likewise. * modules/exp2: Likewise. * modules/exp2f: Likewise. * modules/exp2l: Likewise. * modules/expf: Likewise. * modules/expl: Likewise. * modules/explicit_bzero: Likewise. * modules/expm1: Likewise. * modules/expm1f: Likewise. * modules/expm1l: Likewise. * modules/fabsf: Likewise. * modules/fabsl: Likewise. * modules/faccessat: Likewise. * modules/fchdir: Likewise. * modules/fchmodat: Likewise. * modules/fchownat: Likewise. * modules/fclose: Likewise. * modules/fcntl: Likewise. * modules/fdatasync: Likewise. * modules/fdopen: Likewise. * modules/fdopendir: Likewise. * modules/fflush: Likewise. * modules/ffs: Likewise. * modules/ffsl: Likewise. * modules/ffsll: Likewise. * modules/fileblocks: Likewise. * modules/float: Likewise. * modules/flock: Likewise. * modules/floor: Likewise. * modules/floorf: Likewise. * modules/floorl: Likewise. * modules/fma: Likewise. * modules/fmaf: Likewise. * modules/fmal: Likewise. * modules/fmod: Likewise. * modules/fmodf: Likewise. * modules/fmodl: Likewise. * modules/forkpty: Likewise. * modules/fpending: Likewise. * modules/fpurge: Likewise. * modules/freadable: Likewise. * modules/freadahead: Likewise. * modules/freadptr: Likewise. * modules/free-posix: Likewise. * modules/freopen: Likewise. * modules/frexpf: Likewise. * modules/fseek: Likewise. * modules/fseeko: Likewise. * modules/fseterr: Likewise. * modules/fstat: Likewise. * modules/fstatat: Likewise. * modules/fsusage: Likewise. * modules/fsync: Likewise. * modules/ftell: Likewise. * modules/ftello: Likewise. * modules/ftruncate: Likewise. * modules/fts: Likewise. * modules/futimens: Likewise. * modules/fwritable: Likewise. * modules/fwriting: Likewise. * modules/getaddrinfo: Likewise. * modules/getcwd: Likewise. * modules/getcwd-lgpl: Likewise. * modules/getdelim: Likewise. * modules/getdomainname: Likewise. * modules/getdtablesize: Likewise. * modules/getentropy: Likewise. * modules/getgroups: Likewise. * modules/gethostname: Likewise. * modules/getline: Likewise. * modules/getloadavg: Likewise. * modules/getlogin: Likewise. * modules/getlogin_r: Likewise. * modules/getopt-posix: Likewise. * modules/getpagesize: Likewise. * modules/getpeername: Likewise. * modules/getrandom: Likewise. * modules/getrusage: Likewise. * modules/getsockname: Likewise. * modules/getsockopt: Likewise. * modules/getsubopt: Likewise. * modules/gettimeofday: Likewise. * modules/getumask: Likewise. * modules/getusershell: Likewise. * modules/glob: Likewise. * modules/grantpt: Likewise. * modules/group-member: Likewise. * modules/hypot: Likewise. * modules/hypotf: Likewise. * modules/hypotl: Likewise. * modules/iconv_open: Likewise. * modules/ilogb: Likewise. * modules/ilogbf: Likewise. * modules/ilogbl: Likewise. * modules/imaxabs: Likewise. * modules/imaxdiv: Likewise. * modules/inet_ntop: Likewise. * modules/inet_pton: Likewise. * modules/ioctl: Likewise. * modules/isapipe: Likewise. * modules/isatty: Likewise. * modules/isblank: Likewise. * modules/isfinite: Likewise. * modules/isinf: Likewise. * modules/iswblank: Likewise. * modules/iswctype: Likewise. * modules/iswdigit: Likewise. * modules/iswxdigit: Likewise. * modules/lchmod: Likewise. * modules/lchown: Likewise. * modules/ldexpf: Likewise. * modules/ldexpl: Likewise. * modules/libgmp: Likewise. * modules/link: Likewise. * modules/linkat: Likewise. * modules/listen: Likewise. * modules/localeconv: Likewise. * modules/localtime: Likewise. * modules/log: Likewise. * modules/log10: Likewise. * modules/log10f: Likewise. * modules/log10l: Likewise. * modules/log1p: Likewise. * modules/log1pf: Likewise. * modules/log1pl: Likewise. * modules/log2: Likewise. * modules/log2f: Likewise. * modules/log2l: Likewise. * modules/logb: Likewise. * modules/logbf: Likewise. * modules/logbl: Likewise. * modules/logf: Likewise. * modules/login_tty: Likewise. * modules/logl: Likewise. * modules/lseek: Likewise. * modules/lstat: Likewise. * modules/mbrlen: Likewise. * modules/mbrtoc32: Likewise. * modules/mbrtowc: Likewise. * modules/mbsinit: Likewise. * modules/mbsnrtowcs: Likewise. * modules/mbsrtowcs: Likewise. * modules/mbtowc: Likewise. * modules/memalign: Likewise. * modules/memchr: Likewise. * modules/memcmp: Likewise. * modules/memcpy: Likewise. * modules/memmove: Likewise. * modules/mempcpy: Likewise. * modules/memrchr: Likewise. * modules/memset: Likewise. * modules/mkdir: Likewise. * modules/mkdirat: Likewise. * modules/mkdtemp: Likewise. * modules/mkfifo: Likewise. * modules/mkfifoat: Likewise. * modules/mknod: Likewise. * modules/mkostemp: Likewise. * modules/mkostemps: Likewise. * modules/mkstemp: Likewise. * modules/mkstemps: Likewise. * modules/modf: Likewise. * modules/modff: Likewise. * modules/modfl: Likewise. * modules/mountlist: Likewise. * modules/msvc-inval: Likewise. * modules/msvc-nothrow: Likewise. * modules/mtx: Likewise. * modules/nanosleep: Likewise. * modules/nl_langinfo: Likewise. * modules/obstack: Likewise. * modules/open: Likewise. * modules/openat: Likewise. * modules/opendir: Likewise. * modules/openpty: Likewise. * modules/pclose: Likewise. * modules/perror: Likewise. * modules/pipe-posix: Likewise. * modules/poll: Likewise. * modules/popen: Likewise. * modules/posix_memalign: Likewise. * modules/posix_openpt: Likewise. * modules/posix_spawn: Likewise. * modules/posix_spawn-internal: Likewise. * modules/posix_spawn_file_actions_addchdir: Likewise. * modules/posix_spawn_file_actions_addclose: Likewise. * modules/posix_spawn_file_actions_adddup2: Likewise. * modules/posix_spawn_file_actions_addfchdir: Likewise. * modules/posix_spawn_file_actions_addopen: Likewise. * modules/posix_spawn_file_actions_destroy: Likewise. * modules/posix_spawn_file_actions_init: Likewise. * modules/posix_spawnattr_destroy: Likewise. * modules/posix_spawnattr_getflags: Likewise. * modules/posix_spawnattr_getpgroup: Likewise. * modules/posix_spawnattr_getschedparam: Likewise. * modules/posix_spawnattr_getschedpolicy: Likewise. * modules/posix_spawnattr_getsigdefault: Likewise. * modules/posix_spawnattr_getsigmask: Likewise. * modules/posix_spawnattr_init: Likewise. * modules/posix_spawnattr_setflags: Likewise. * modules/posix_spawnattr_setpgroup: Likewise. * modules/posix_spawnattr_setschedparam: Likewise. * modules/posix_spawnattr_setschedpolicy: Likewise. * modules/posix_spawnattr_setsigdefault: Likewise. * modules/posix_spawnattr_setsigmask: Likewise. * modules/posix_spawnp: Likewise. * modules/powf: Likewise. * modules/pread: Likewise. * modules/pselect: Likewise. * modules/pthread-cond: Likewise. * modules/pthread-mutex: Likewise. * modules/pthread-once: Likewise. * modules/pthread-rwlock: Likewise. * modules/pthread-spin: Likewise. * modules/pthread-thread: Likewise. * modules/pthread-tss: Likewise. * modules/pthread_mutex_timedlock: Likewise. * modules/pthread_sigmask: Likewise. * modules/ptsname: Likewise. * modules/ptsname_r: Likewise. * modules/putenv: Likewise. * modules/pwrite: Likewise. * modules/qsort_r: Likewise. * modules/raise: Likewise. * modules/random: Likewise. * modules/random_r: Likewise. * modules/rawmemchr: Likewise. * modules/read: Likewise. * modules/readdir: Likewise. * modules/readline: Likewise. * modules/readlink: Likewise. * modules/readlinkat: Likewise. * modules/readutmp: Likewise. * modules/reallocarray: Likewise. * modules/recv: Likewise. * modules/recvfrom: Likewise. * modules/regex: Likewise. * modules/relocatable-prog: Likewise. * modules/remainder: Likewise. * modules/remainderf: Likewise. * modules/remainderl: Likewise. * modules/remove: Likewise. * modules/rename: Likewise. * modules/renameat: Likewise. * modules/rewinddir: Likewise. * modules/rint: Likewise. * modules/rintf: Likewise. * modules/rintl: Likewise. * modules/rmdir: Likewise. * modules/round: Likewise. * modules/roundf: Likewise. * modules/roundl: Likewise. * modules/rpmatch: Likewise. * modules/scandir: Likewise. * modules/sched_yield: Likewise. * modules/secure_getenv: Likewise. * modules/select: Likewise. * modules/selinux-h: Likewise. * modules/send: Likewise. * modules/sendto: Likewise. * modules/setenv: Likewise. * modules/sethostname: Likewise. * modules/setlocale: Likewise. * modules/setlocale-null: Likewise. * modules/setsockopt: Likewise. * modules/shutdown: Likewise. * modules/sig2str: Likewise. * modules/sigabbrev_np: Likewise. * modules/sigaction: Likewise. * modules/sigdescr_np: Likewise. * modules/signbit: Likewise. * modules/sigprocmask: Likewise. * modules/sinf: Likewise. * modules/sinhf: Likewise. * modules/sinl: Likewise. * modules/sleep: Likewise. * modules/socket: Likewise. * modules/spawn-pipe: Likewise. * modules/sqrtf: Likewise. * modules/sqrtl: Likewise. * modules/stat: Likewise. * modules/stdio: Likewise. * modules/stpcpy: Likewise. * modules/stpncpy: Likewise. * modules/strcase: Likewise. * modules/strchrnul: Likewise. * modules/strcspn: Likewise. * modules/strdup-posix: Likewise. * modules/strerror: Likewise. * modules/strerror-override: Likewise. * modules/strerrorname_np: Likewise. * modules/strfmon_l: Likewise. * modules/strftime-fixes: Likewise. * modules/strncat: Likewise. * modules/strndup: Likewise. * modules/strnlen: Likewise. * modules/strpbrk: Likewise. * modules/strptime: Likewise. * modules/strsep: Likewise. * modules/strsignal: Likewise. * modules/strtod: Likewise. * modules/strtoimax: Likewise. * modules/strtok_r: Likewise. * modules/strtol: Likewise. * modules/strtold: Likewise. * modules/strtoll: Likewise. * modules/strtoul: Likewise. * modules/strtoull: Likewise. * modules/strtoumax: Likewise. * modules/strverscmp: Likewise. * modules/symlink: Likewise. * modules/symlinkat: Likewise. * modules/tanf: Likewise. * modules/tanhf: Likewise. * modules/tanl: Likewise. * modules/tcgetsid: Likewise. * modules/thrd: Likewise. * modules/time_r: Likewise. * modules/time_rz: Likewise. * modules/timegm: Likewise. * modules/times: Likewise. * modules/timespec_get: Likewise. * modules/timespec_getres: Likewise. * modules/tmpfile: Likewise. * modules/towctrans: Likewise. * modules/trunc: Likewise. * modules/truncate: Likewise. * modules/truncf: Likewise. * modules/truncl: Likewise. * modules/tsearch: Likewise. * modules/tss: Likewise. * modules/ttyname_r: Likewise. * modules/tzset: Likewise. * modules/uname: Likewise. * modules/unlink: Likewise. * modules/unlinkat: Likewise. * modules/unlockpt: Likewise. * modules/unsetenv: Likewise. * modules/usleep: Likewise. * modules/utime: Likewise. * modules/utimensat: Likewise. * modules/waitpid: Likewise. * modules/wcpcpy: Likewise. * modules/wcpncpy: Likewise. * modules/wcrtomb: Likewise. * modules/wcscasecmp: Likewise. * modules/wcscat: Likewise. * modules/wcschr: Likewise. * modules/wcscmp: Likewise. * modules/wcscoll: Likewise. * modules/wcscpy: Likewise. * modules/wcscspn: Likewise. * modules/wcsdup: Likewise. * modules/wcsftime: Likewise. * modules/wcslen: Likewise. * modules/wcsncasecmp: Likewise. * modules/wcsncat: Likewise. * modules/wcsncmp: Likewise. * modules/wcsncpy: Likewise. * modules/wcsnlen: Likewise. * modules/wcsnrtombs: Likewise. * modules/wcspbrk: Likewise. * modules/wcsrchr: Likewise. * modules/wcsrtombs: Likewise. * modules/wcsspn: Likewise. * modules/wcsstr: Likewise. * modules/wcstok: Likewise. * modules/wcswidth: Likewise. * modules/wcsxfrm: Likewise. * modules/wctob: Likewise. * modules/wctomb: Likewise. * modules/wctrans: Likewise. * modules/wctype: Likewise. * modules/wcwidth: Likewise. * modules/windows-cond: Likewise. * modules/windows-mutex: Likewise. * modules/windows-once: Likewise. * modules/windows-recmutex: Likewise. * modules/windows-rwlock: Likewise. * modules/windows-spawn: Likewise. * modules/windows-spin: Likewise. * modules/windows-thread: Likewise. * modules/windows-timedmutex: Likewise. * modules/windows-timedrecmutex: Likewise. * modules/windows-timedrwlock: Likewise. * modules/windows-tls: Likewise. * modules/wmemchr: Likewise. * modules/wmemcmp: Likewise. * modules/wmemcpy: Likewise. * modules/wmemmove: Likewise. * modules/wmempcpy: Likewise. * modules/wmemset: Likewise. * modules/write: Likewise.
* fdatasync: port to SolarisEric Blake2011-09-161-0/+3
| | | | | | | | | | Cater to Solaris requiring extra libraries for fdatasync. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Set LIB_FDATASYNC. * modules/fdatasync (Link): Document it. * modules/fdatasync-tests (test_fdatasync_LDADD): Link with it. Signed-off-by: Eric Blake <eblake@redhat.com>
* fdatasync: minor improvementsEric Blake2011-09-161-1/+1
| | | | | | | | | | | Picks up some ideas by Paul Eggert from here: https://lists.gnu.org/archive/html/bug-coreutils/2011-07/msg00157.html * modules/fdatasync (Depends-on): Add condition for fsync. * lib/fdatasync.c (fdatasync): Add comment. * tests/test-unistd-c++.cc: Test fdatasync. Signed-off-by: Eric Blake <eblake@redhat.com>
* fdatasync: new moduleEric Blake2011-09-161-0/+28
At least libvirt would like to use the lighter-weight fdatasync on platforms where it is supported, while still guaranteeing full sync (via the heavy-weight fsync fallback) on all platforms. I've got an open question to the Austin Group, since the POSIX 2008 wording is self-contradictory (unlike fsync, fdatasync requires EBADF on non-writable fds, but still mentions that read() errors must be propagated). I can see how fsync() would affect atime after read() while fdatasync() can skip that, explaining why fdatasync() might have the EBADF requirement, but on the other hand, that prevents an implementation (like ours) where fdatasync is a straight alias of fsync. At any rate, glibc allows fdatasync on read-only fds. * modules/fsync (Description): Document difference to fdatasync. * modules/fdatasync: New module. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): New file. * lib/fdatasync.c (fdatasync): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H, gl_UNISTD_H_DEFAULTS): Set up defaults. * modules/unistd (Makefile.am): Set witnesses. * lib/unistd.in.h (fdatasync): Declare. * MODULES.html.sh: Document it. * doc/posix-functions/fdatasync.texi (fdatasync): Likewise. * modules/fdatasync-tests: New test. * tests/test-fdatasync.c: Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>