diff --git a/configure.ac b/configure.ac index 87d3a470a..780973b1c 100644 --- a/configure.ac +++ b/configure.ac @@ -908,7 +908,18 @@ AC_STRUCT_TM AC_STRUCT_TIMEZONE AC_CHECK_FUNCS([localtime]) -AC_CHECK_FUNCS([gettimeofday times ftime]) +case $host_os in + *mingw* | *msys* ) + AC_CHECK_FUNCS([gettimeofday times]) + AC_CHECK_LIB([msvcr100], [ftime], + [AC_DEFINE([HAVE_FTIME], [1], [Have ftime routines in libmsvcr100]) + LIBS="$LIBS -lmsvcr100"]) + ;; + *) + AC_CHECK_FUNCS([gettimeofday times ftime]) + ;; +esac + # Do not use time or getrusage function for CPU time measurement under OpenMP if test "x$enable_openmp" = xno; then AC_CHECK_FUNCS([time getrusage]) diff --git a/src/frontend/resource.c b/src/frontend/resource.c index 09e116eb7..b54ee8772 100644 --- a/src/frontend/resource.c +++ b/src/frontend/resource.c @@ -182,14 +182,15 @@ printres(char *name) total_msec = ((x % hz) * 1000) / hz; cpu_elapsed = "CPU"; # else -# ifdef HAVE_FTIME - struct timeb timenow; - ftime(&timenow); - timediff(&timenow, &timebegin, &total_sec, &total_msec); - cpu_elapsed = "elapsed"; -# else +# ifdef HAVE_FTIME + struct timeb timenow; + struct timeb ftimezero; + ftime(&timenow); + timediff(&timenow, &ftimezero, &total_sec, &total_msec); + cpu_elapsed = "elapsed"; +# else # define NO_RUDATA -# endif +# endif # endif # endif diff --git a/src/misc/misc_time.c b/src/misc/misc_time.c index 39a06dad1..2abd1b511 100644 --- a/src/misc/misc_time.c +++ b/src/misc/misc_time.c @@ -80,9 +80,9 @@ void timebegin(void) { } #else #ifdef HAVE_FTIME - struct timeb timezero; + struct timeb ftimezero; void timebegin(void) { - ftime(&timezero); + ftime(&ftimezero); } #endif /* FTIME */ #endif /* TIMES */