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>
diff --git a/src/auto/configure b/src/auto/configure
index db8a89b..062119e 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -13642,6 +13642,12 @@
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
diff --git a/src/config.h.in b/src/config.h.in
index 530c082..3ff4605 100644
--- 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
diff --git a/src/configure.ac b/src/configure.ac
index 24479d3..56895f6 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -3769,7 +3769,7 @@
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
diff --git a/src/memfile.c b/src/memfile.c
index abb7c3f..4707969 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -594,13 +594,10 @@
}
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__)
- fflush(NULL);
-# else
+# ifdef HAVE_SYNC
sync();
+# else
+ fflush(NULL);
# endif
#endif
#ifdef VMS
diff --git a/src/version.c b/src/version.c
index 3c18aa4..7d02e6c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 842,
+/**/
841,
/**/
840,