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
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    842,
+/**/
     841,
 /**/
     840,