diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-04-13 19:15:54 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-04-13 19:15:54 +0100 |
commit | 08210f8def4886b0cd04dd4bbebed719f0512315 (patch) | |
tree | c04723d037a434c24ce1480a30f9ede304616f7a /src | |
parent | ff6c230051ed2a2dbbbd517f51fe00c8ea27961b (diff) |
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)
Diffstat (limited to 'src')
-rwxr-xr-x | src/auto/configure | 3 | ||||
-rw-r--r-- | src/config.h.in | 1 | ||||
-rw-r--r-- | src/configure.ac | 3 | ||||
-rw-r--r-- | src/errors.h | 2 | ||||
-rw-r--r-- | src/evalfunc.c | 2 | ||||
-rw-r--r-- | src/gui.c | 2 | ||||
-rw-r--r-- | src/os_unix.c | 6 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 3 |
9 files changed, 15 insertions, 9 deletions
diff --git a/src/auto/configure b/src/auto/configure index 77d2f5e657..28eb7f3383 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 6cb43da125..d0257ccabe 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 0c776a2c42..6936ac9b7b 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 644b1afb5d..f54adc70ff 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 29206b9a34..5c10f1ec9b 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 @@ -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 5801965874..bba5d16e11 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 23b39e7b1f..ae81daa116 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, @@ -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 |