File synchronization fixes.
* admin/CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove.
* admin/merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync.
* configure.ac (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
(fsync): Remove check; now done by gnulib.
* lib/fdatasync.c, lib/fsync.c, m4/fdatasync.m4, m4/fsync.m4:
New files, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib-src/Makefile.in (LIB_FDATASYNC): New macro.
(emacsclient${EXEEXT}): Use it.
* lib-src/emacsclient.c (main): Use fdatasync, not fsync, since we don't
care about metadata. Keep trying if interrupted.
* lib-src/movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since
fsync is available everywhere (or there is a substitute). Don't
report an error if fsync returns EINVAL.
* nt/inc/ms-w32.h (fdatasync): New macro, suggested by Eli Zaretskii.
* src/Makefile.in (LIB_FDATASYNC): New macro.
(LIBES): Use it.
* src/conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
* src/fileio.c (Fwrite_region, write_region_inhibit_fsync):
Don't worry about HAVE_FSYNC, since a substitute fsync is
available if the system lacks one.
(Fwrite_regin): Retry fsync if interrupted.
Fixes: debbugs:13944
2013-03-13 18:42:22 +00:00
|
|
|
# fdatasync.m4 serial 4
|
2016-01-01 09:12:52 +00:00
|
|
|
dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
|
File synchronization fixes.
* admin/CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove.
* admin/merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync.
* configure.ac (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
(fsync): Remove check; now done by gnulib.
* lib/fdatasync.c, lib/fsync.c, m4/fdatasync.m4, m4/fsync.m4:
New files, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib-src/Makefile.in (LIB_FDATASYNC): New macro.
(emacsclient${EXEEXT}): Use it.
* lib-src/emacsclient.c (main): Use fdatasync, not fsync, since we don't
care about metadata. Keep trying if interrupted.
* lib-src/movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since
fsync is available everywhere (or there is a substitute). Don't
report an error if fsync returns EINVAL.
* nt/inc/ms-w32.h (fdatasync): New macro, suggested by Eli Zaretskii.
* src/Makefile.in (LIB_FDATASYNC): New macro.
(LIBES): Use it.
* src/conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed.
* src/fileio.c (Fwrite_region, write_region_inhibit_fsync):
Don't worry about HAVE_FSYNC, since a substitute fsync is
available if the system lacks one.
(Fwrite_regin): Retry fsync if interrupted.
Fixes: debbugs:13944
2013-03-13 18:42:22 +00:00
|
|
|
dnl This file is free software; the Free Software Foundation
|
|
|
|
dnl gives unlimited permission to copy and/or distribute it,
|
|
|
|
dnl with or without modifications, as long as this notice is preserved.
|
|
|
|
|
|
|
|
AC_DEFUN([gl_FUNC_FDATASYNC],
|
|
|
|
[
|
|
|
|
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
|
|
|
|
|
|
|
|
dnl Using AC_CHECK_FUNCS_ONCE would break our subsequent AC_SEARCH_LIBS
|
|
|
|
AC_CHECK_DECLS_ONCE([fdatasync])
|
|
|
|
LIB_FDATASYNC=
|
|
|
|
AC_SUBST([LIB_FDATASYNC])
|
|
|
|
|
|
|
|
if test $ac_cv_have_decl_fdatasync = no; then
|
|
|
|
HAVE_DECL_FDATASYNC=0
|
|
|
|
dnl Mac OS X 10.7 has fdatasync but does not declare it.
|
|
|
|
AC_CHECK_FUNCS([fdatasync])
|
|
|
|
if test $ac_cv_func_fdatasync = no; then
|
|
|
|
HAVE_FDATASYNC=0
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
dnl Solaris <= 2.6 has fdatasync() in libposix4.
|
|
|
|
dnl Solaris 7..10 has it in librt.
|
|
|
|
gl_saved_libs=$LIBS
|
|
|
|
AC_SEARCH_LIBS([fdatasync], [rt posix4],
|
|
|
|
[test "$ac_cv_search_fdatasync" = "none required" ||
|
|
|
|
LIB_FDATASYNC=$ac_cv_search_fdatasync])
|
|
|
|
LIBS=$gl_saved_libs
|
|
|
|
fi
|
|
|
|
])
|