Mercurial > vim
changeset 36476:15ee6dcb6330 draft v9.1.0842
patch 9.1.0842: not checking for the sync() systemcall
Commit: https://github.com/vim/vim/commit/8bb5eaf019bc46e3b20e1509d88c07655f1632cd
Author: Jonas Sortie Termansen <sortie@maxsi.org>
Date: Mon Nov 4 20:32:27 2024 +0100
patch 9.1.0842: not checking for the sync() systemcall
Problem: not checking for the sync() systemcall
Solution: check for sync in configure script, fix related #ifdefs
(Jonas Termansen)
It's better to check for features directly rather than maintaining a
denylist of operating systems without them.
closes: #15985
Signed-off-by: Jonas 'Sortie' Termansen <sortie@maxsi.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 04 Nov 2024 20:45:05 +0100 |
parents | 39c458b3d344 |
children | 8495bca0fe74 |
files | src/auto/configure src/config.h.in src/configure.ac src/memfile.c src/version.c |
diffstat | 5 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auto/configure +++ b/src/auto/configure @@ -13642,6 +13642,12 @@ then : printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h fi +ac_fn_c_check_func "$LINENO" "sync" "ac_cv_func_sync" +if test "x$ac_cv_func_sync" = xyes +then : + printf "%s\n" "#define HAVE_SYNC 1" >>confdefs.h + +fi
--- a/src/config.h.in +++ b/src/config.h.in @@ -209,6 +209,7 @@ #undef HAVE_CANBERRA #undef HAVE_SODIUM #undef HAVE_ST_BLKSIZE +#undef HAVE_SYNC #undef HAVE_SYSCONF #undef HAVE_SYSCTL #undef HAVE_SYSINFO
--- a/src/configure.ac +++ b/src/configure.ac @@ -3769,7 +3769,7 @@ AC_CHECK_FUNCS(fchdir fchown fchmod fsyn sigprocmask sigvec strcasecmp strcoll strerror strftime stricmp strncasecmp \ strnicmp strpbrk strptime strtol tgetent towlower towupper iswupper \ tzset usleep utime utimes mblen ftruncate unsetenv posix_openpt \ - clock_gettime) + clock_gettime sync) AC_FUNC_SELECT_ARGTYPES AC_FUNC_FSEEKO
--- a/src/memfile.c +++ b/src/memfile.c @@ -594,13 +594,10 @@ mf_sync(memfile_T *mfp, int flags) } else # endif - // OpenNT is strictly POSIX (Benzinger) - // Tandem/Himalaya NSK-OSS doesn't have sync() - // No sync() on Stratus VOS -# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__) +# ifdef HAVE_SYNC + sync(); +# else fflush(NULL); -# else - sync(); # endif #endif #ifdef VMS