diff options
Diffstat (limited to 'contrib/binutils/libiberty/getruntime.c')
-rw-r--r-- | contrib/binutils/libiberty/getruntime.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/contrib/binutils/libiberty/getruntime.c b/contrib/binutils/libiberty/getruntime.c index 1be3b4c..b855ea6 100644 --- a/contrib/binutils/libiberty/getruntime.c +++ b/contrib/binutils/libiberty/getruntime.c @@ -1,5 +1,5 @@ /* Return time used so far, in microseconds. - Copyright (C) 1994 Free Software Foundation, Inc. + Copyright (C) 1994, 1999 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or @@ -17,6 +17,8 @@ License along with libiberty; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include "config.h" + #include "ansidecl.h" #include "libiberty.h" @@ -26,28 +28,22 @@ Boston, MA 02111-1307, USA. */ #include <time.h> -/* These should go away when libiberty uses autoconf. */ - -#if defined(__sun__) && !defined(__svr4__) -#define HAVE_GETRUSAGE -#endif - -#ifdef HAVE_SYSCONF -#define HAVE_TIMES -#endif - -#ifdef HAVE_GETRUSAGE +#if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) #include <sys/time.h> #include <sys/resource.h> #endif #ifdef HAVE_TIMES -#ifndef NO_SYS_PARAM_H +#ifdef HAVE_SYS_PARAM_H #include <sys/param.h> #endif #include <sys/times.h> #endif +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif + /* This is a fallback; if wrong, it will likely make obviously wrong results. */ @@ -55,10 +51,22 @@ Boston, MA 02111-1307, USA. */ #define CLOCKS_PER_SEC 1 #endif +#ifdef _SC_CLK_TCK +#define GNU_HZ sysconf(_SC_CLK_TCK) +#else +#ifdef HZ +#define GNU_HZ HZ +#else +#ifdef CLOCKS_PER_SEC +#define GNU_HZ CLOCKS_PER_SEC +#endif +#endif +#endif + long get_run_time () { -#ifdef HAVE_GETRUSAGE +#if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) struct rusage rusage; getrusage (0, &rusage); @@ -69,7 +77,7 @@ get_run_time () struct tms tms; times (&tms); - return (tms.tms_utime + tms.tms_stime) * (1000000 / HZ); + return (tms.tms_utime + tms.tms_stime) * (1000000 / GNU_HZ); #else /* ! HAVE_TIMES */ /* Fall back on clock and hope it's correctly implemented. */ const long clocks_per_sec = CLOCKS_PER_SEC; |