summaryrefslogtreecommitdiffstats
path: root/src/configure.ac
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2021-10-14 21:27:55 +0100
committerBram Moolenaar <Bram@vim.org>2021-10-14 21:27:55 +0100
commit0a7984af5601323fae7b3398f05a48087db7b767 (patch)
tree22efd296a4db294d3e9288c5d2085c1a5679ae82 /src/configure.ac
parent340dd0fbe462a15a9678cfba02085b4adcc45f02 (diff)
patch 8.2.3510: changes are only detected with one second accuracyv8.2.3510
Problem: Changes are only detected with one second accuracy. Solution: Use the nanosecond time if possible. (Leah Neukirchen, closes #8873, closes #8875)
Diffstat (limited to 'src/configure.ac')
-rw-r--r--src/configure.ac25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/configure.ac b/src/configure.ac
index bb77485f31..3316f48242 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -3843,6 +3843,31 @@ main() {struct stat st; exit(stat("configure/", &st) != 0); }
if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
AC_DEFINE(STAT_IGNORES_SLASH)
fi
+
+dnl nanoseconds field of struct stat
+AC_CACHE_CHECK([for nanoseconds field of struct stat],
+ ac_cv_struct_st_mtim_nsec,
+ [ac_save_CPPFLAGS="$CPPFLAGS"
+ ac_cv_struct_st_mtim_nsec=no
+ # st_mtim.tv_nsec -- the usual case
+ # st_mtim._tv_nsec -- Solaris 2.6, if
+ # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
+ # && !defined __EXTENSIONS__)
+ # st_mtim.st__tim.tv_nsec -- UnixWare 2.1.2
+ # st_mtime_n -- AIX 5.2 and above
+ # st_mtimespec.tv_nsec -- Darwin (Mac OSX)
+ for ac_val in st_mtim.tv_nsec st_mtim._tv_nsec st_mtim.st__tim.tv_nsec st_mtime_n st_mtimespec.tv_nsec; do
+ CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
+ AC_TRY_COMPILE([#include <sys/types.h>
+#include <sys/stat.h>], [struct stat s; s.ST_MTIM_NSEC;],
+ [ac_cv_struct_st_mtim_nsec=$ac_val; break])
+ done
+ CPPFLAGS="$ac_save_CPPFLAGS"
+])
+if test $ac_cv_struct_st_mtim_nsec != no; then
+ AC_DEFINE_UNQUOTED([ST_MTIM_NSEC], [$ac_cv_struct_st_mtim_nsec],
+ [Define if struct stat contains a nanoseconds field])
+fi
dnl Link with iconv for charset translation, if not found without library.
dnl check for iconv() requires including iconv.h