changeset 32238:b2cce50602ca v9.0.1450

patch 9.0.1450: MacOS: building fails if clock_gettime() is not available Commit: https://github.com/vim/vim/commit/08210f8def4886b0cd04dd4bbebed719f0512315 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 13 19:15:54 2023 +0100 patch 9.0.1450: MacOS: building fails if clock_gettime() is not available Problem: MacOS: building fails if clock_gettime() is not available. Solution: Add a configure check for clock_gettime(). (closes https://github.com/vim/vim/issues/12242)
author Bram Moolenaar <Bram@vim.org>
date Thu, 13 Apr 2023 20:30:03 +0200
parents c9b337889ea8
children 078f103c1d18
files src/auto/configure src/config.h.in src/configure.ac src/errors.h src/evalfunc.c src/gui.c src/os_unix.c src/version.c src/vim.h
diffstat 9 files changed, 15 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -12528,7 +12528,8 @@ for ac_func in fchdir fchown fchmod fsyn
 	getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
 	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
+	tzset usleep utime utimes mblen ftruncate unsetenv posix_openpt \
+	clock_gettime
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -225,6 +225,7 @@
 #undef HAVE_BIND_TEXTDOMAIN_CODESET
 #undef HAVE_MBLEN
 #undef HAVE_TIMER_CREATE
+#undef HAVE_CLOCK_GETTIME
 
 /* Define, if needed, for accessing large files. */
 #undef _LARGE_FILES
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -3709,7 +3709,8 @@ AC_CHECK_FUNCS(fchdir fchown fchmod fsyn
 	getpgid setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
 	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)
+	tzset usleep utime utimes mblen ftruncate unsetenv posix_openpt \
+	clock_gettime)
 AC_FUNC_SELECT_ARGTYPES
 AC_FUNC_FSEEKO
 
--- a/src/errors.h
+++ b/src/errors.h
@@ -3276,7 +3276,7 @@ EXTERN char e_could_not_clear_timeout_st
 	INIT(= N_("E1285: Could not clear timeout: %s"));
 EXTERN char e_could_not_set_timeout_str[]
 	INIT(= N_("E1286: Could not set timeout: %s"));
-#ifndef HAVE_TIMER_CREATE
+#ifndef PROF_NSEC
 EXTERN char e_could_not_set_handler_for_timeout_str[]
 	INIT(= N_("E1287: Could not set handler for timeout: %s"));
 EXTERN char e_could_not_reset_handler_for_timeout_str[]
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6146,7 +6146,7 @@ f_has(typval_T *argvars, typval_T *rettv
 #endif
 		},
 	{"prof_nsec",
-#ifdef HAVE_TIMER_CREATE
+#ifdef PROF_NSEC
 		1
 #else
 		0
--- a/src/gui.c
+++ b/src/gui.c
@@ -230,7 +230,7 @@ gui_do_fork(void)
     int		exit_status;
     pid_t	pid = -1;
 
-# if defined(FEAT_RELTIME) && defined(HAVE_TIMER_CREATE)
+# if defined(FEAT_RELTIME) && defined(PROF_NSEC)
     // a timer is not carried forward
     delete_timer();
 # endif
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -8271,7 +8271,7 @@ xsmp_close(void)
 #endif // USE_XSMP
 
 #if defined(FEAT_RELTIME) || defined(PROTO)
-# if defined(HAVE_TIMER_CREATE) || defined(PROTO)
+# if defined(PROF_NSEC) || defined(PROTO)
 /*
  * Implement timeout with timer_create() and timer_settime().
  */
@@ -8371,7 +8371,7 @@ delete_timer(void)
     timer_created = FALSE;
 }
 
-# else // HAVE_TIMER_CREATE
+# else // PROF_NSEC
 
 /*
  * Implement timeout with setitimer()
@@ -8496,5 +8496,5 @@ start_timeout(long msec)
     timer_active = TRUE;
     return &timeout_flag;
 }
-# endif // HAVE_TIMER_CREATE
+# endif // PROF_NSEC
 #endif  // FEAT_RELTIME
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1450,
+/**/
     1449,
 /**/
     1448,
--- a/src/vim.h
+++ b/src/vim.h
@@ -1873,7 +1873,8 @@ typedef LARGE_INTEGER proftime_T;
 #  define PROF_TOTALS_HEADER "count  total (s)   self (s)"
 # else
    // Use tv_fsec for fraction of second (micro or nano) of proftime_T
-#  if defined(HAVE_TIMER_CREATE)
+#  if defined(HAVE_TIMER_CREATE) && defined(HAVE_CLOCK_GETTIME)
+#   define PROF_NSEC 1
 typedef struct timespec proftime_T;
 #   define PROF_GET_TIME(tm) clock_gettime(CLOCK_MONOTONIC, tm)
 #   define tv_fsec tv_nsec