X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=libiberty%2Fgetruntime.c;h=0900a19dfba64f37fa92fc2a80225982ae34eb00;hb=0c0adcc52478ebb707ed780173e18262df6eab7e;hp=b855ea6e82f56c35ceb92b9a8724c4d571f6be66;hpb=27e232885db363fb545fd2f450e72d929e59b8f6;p=deliverable%2Fbinutils-gdb.git diff --git a/libiberty/getruntime.c b/libiberty/getruntime.c index b855ea6e82..0900a19dfb 100644 --- a/libiberty/getruntime.c +++ b/libiberty/getruntime.c @@ -1,5 +1,5 @@ /* Return time used so far, in microseconds. - Copyright (C) 1994, 1999 Free Software Foundation, Inc. + Copyright (C) 1994-2019 Free Software Foundation, Inc. This file is part of the libiberty library. Libiberty is free software; you can redistribute it and/or @@ -14,22 +14,36 @@ Library General Public License for more details. You should have received a copy of the GNU Library General Public 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. */ +not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +Boston, MA 02110-1301, USA. */ #include "config.h" #include "ansidecl.h" #include "libiberty.h" +/* On some systems (such as WindISS), you must include + to get the definition of "time_t" before you include . */ +#include + /* There are several ways to get elapsed execution time; unfortunately no single way is available for all host systems, nor are there reliable ways to find out which way is correct for a given host. */ -#include +#ifdef TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# ifdef HAVE_TIME_H +# include +# endif +# endif +#endif #if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) -#include #include #endif @@ -51,6 +65,10 @@ Boston, MA 02111-1307, USA. */ #define CLOCKS_PER_SEC 1 #endif +#ifndef RUSAGE_SELF +#define RUSAGE_SELF 0 +#endif + #ifdef _SC_CLK_TCK #define GNU_HZ sysconf(_SC_CLK_TCK) #else @@ -63,13 +81,25 @@ Boston, MA 02111-1307, USA. */ #endif #endif +/* + +@deftypefn Replacement long get_run_time (void) + +Returns the time used so far, in microseconds. If possible, this is +the time used by this process, else it is the elapsed time since the +process started. + +@end deftypefn + +*/ + long -get_run_time () +get_run_time (void) { #if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) struct rusage rusage; - getrusage (0, &rusage); + getrusage (RUSAGE_SELF, &rusage); return (rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec + rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec); #else /* ! HAVE_GETRUSAGE */