diff options
-rw-r--r-- | benchtests/bench-timing.h | 1 | ||||
-rw-r--r-- | sysdeps/generic/hp-timing.h | 11 |
2 files changed, 10 insertions, 2 deletions
diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h index a0d6f82..d0176fb 100644 --- a/benchtests/bench-timing.h +++ b/benchtests/bench-timing.h @@ -18,7 +18,6 @@ #undef attribute_hidden #define attribute_hidden -#define __clock_gettime __clock_gettime64 #include <hp-timing.h> #include <stdint.h> diff --git a/sysdeps/generic/hp-timing.h b/sysdeps/generic/hp-timing.h index af9d92f..1960a71 100644 --- a/sysdeps/generic/hp-timing.h +++ b/sysdeps/generic/hp-timing.h @@ -32,11 +32,20 @@ typedef uint64_t hp_timing_t; /* The clock_gettime (CLOCK_MONOTONIC) has unspecified starting time, nano-second accuracy, and for some architectues is implemented as vDSO symbol. */ -#define HP_TIMING_NOW(var) \ +#ifdef _ISOMAC +# define HP_TIMING_NOW(var) \ +({ \ + struct timespec tv; \ + clock_gettime (CLOCK_MONOTONIC, &tv); \ + (var) = (tv.tv_nsec + UINT64_C(1000000000) * tv.tv_sec); \ +}) +#else +# define HP_TIMING_NOW(var) \ ({ \ struct __timespec64 tv; \ __clock_gettime64 (CLOCK_MONOTONIC, &tv); \ (var) = (tv.tv_nsec + UINT64_C(1000000000) * tv.tv_sec); \ }) +#endif #endif /* hp-timing.h */ |