summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2023-04-13 19:15:54 +0100
committerBram Moolenaar <Bram@vim.org>2023-04-13 19:15:54 +0100
commit08210f8def4886b0cd04dd4bbebed719f0512315 (patch)
treec04723d037a434c24ce1480a30f9ede304616f7a
parentff6c230051ed2a2dbbbd517f51fe00c8ea27961b (diff)
downloadvim-git-08210f8def4886b0cd04dd4bbebed719f0512315.tar.gz
patch 9.0.1450: MacOS: building fails if clock_gettime() is not availablev9.0.1450
Problem: MacOS: building fails if clock_gettime() is not available. Solution: Add a configure check for clock_gettime(). (closes #12242)
-rwxr-xr-xsrc/auto/configure3
-rw-r--r--src/config.h.in1
-rw-r--r--src/configure.ac3
-rw-r--r--src/errors.h2
-rw-r--r--src/evalfunc.c2
-rw-r--r--src/gui.c2
-rw-r--r--src/os_unix.c6
-rw-r--r--src/version.c2
-rw-r--r--src/vim.h3
9 files changed, 15 insertions, 9 deletions
diff --git a/src/auto/configure b/src/auto/configure
index 77d2f5e65..28eb7f338 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -12528,7 +12528,8 @@ for ac_func in fchdir fchown fchmod fsync getcwd getpseudotty \
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"
diff --git a/src/config.h.in b/src/config.h.in
index 6cb43da12..d0257ccab 100644
--- 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
diff --git a/src/configure.ac b/src/configure.ac
index 0c776a2c4..6936ac9b7 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -3709,7 +3709,8 @@ AC_CHECK_FUNCS(fchdir fchown fchmod fsync getcwd getpseudotty \
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
diff --git a/src/errors.h b/src/errors.h
index 644b1afb5..f54adc70f 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -3276,7 +3276,7 @@ EXTERN char e_could_not_clear_timeout_str[]
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[]
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 29206b9a3..5c10f1ec9 100644
--- 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
diff --git a/src/gui.c b/src/gui.c
index 0e005478a..e9f951da7 100644
--- 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
diff --git a/src/os_unix.c b/src/os_unix.c
index 580196587..bba5d16e1 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 23b39e7b1..ae81daa11 100644
--- 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,
diff --git a/src/vim.h b/src/vim.h
index 5289214ec..656bcc9da 100644
--- 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