Mercurial > vim
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