Problem: MacOS: building fails if clock_gettime() is not available.
Solution: Add a configure check for clock_gettime(). (closes #12242)
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"
#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
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
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[]
#endif
},
{"prof_nsec",
-#ifdef HAVE_TIMER_CREATE
+#ifdef PROF_NSEC
1
#else
0
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
#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().
*/
timer_created = FALSE;
}
-# else // HAVE_TIMER_CREATE
+# else // PROF_NSEC
/*
* Implement timeout with setitimer()
timer_active = TRUE;
return &timeout_flag;
}
-# endif // HAVE_TIMER_CREATE
+# endif // PROF_NSEC
#endif // FEAT_RELTIME
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1450,
/**/
1449,
/**/
# 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