aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic/hp-timing.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-06-05 09:43:13 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-06-05 09:44:06 -0700
commitf6070476687af9ca1b5837f8a45047acdd419b08 (patch)
tree8ca2fe8908d91d221a9ff38c52fe065aeb0069ac /sysdeps/generic/hp-timing.h
parent9b7424215b10ae01d680ef91e10fc10f51227177 (diff)
downloadglibc-f6070476687af9ca1b5837f8a45047acdd419b08.tar
glibc-f6070476687af9ca1b5837f8a45047acdd419b08.tar.gz
glibc-f6070476687af9ca1b5837f8a45047acdd419b08.tar.bz2
glibc-f6070476687af9ca1b5837f8a45047acdd419b08.zip
Update HP_TIMING_NOW for _ISOMAC in sysdeps/generic/hp-timing.h
commit e9698175b0b60407db1e89bcf29437ab224bca0b Author: Lukasz Majewski <lukma@denx.de> Date: Mon Mar 16 08:31:41 2020 +0100 y2038: Replace __clock_gettime with __clock_gettime64 breaks benchtests with sysdeps/generic/hp-timing.h: In file included from ./bench-timing.h:23, from ./bench-skeleton.c:25, from /export/build/gnu/tools-build/glibc-gitlab/build-x86_64-linux/benchtests/bench-rint.c:45: ./bench-skeleton.c: In function ‘main’: ../sysdeps/generic/hp-timing.h:37:23: error: storage size of ‘tv’ isn’t known 37 | struct __timespec64 tv; \ | ^~ Define HP_TIMING_NOW with clock_gettime in sysdeps/generic/hp-timing.h if _ISOMAC is defined. Don't define __clock_gettime in bench-timing.h since it is no longer needed. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/generic/hp-timing.h')
-rw-r--r--sysdeps/generic/hp-timing.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/sysdeps/generic/hp-timing.h b/sysdeps/generic/hp-timing.h
index af9d92f7f7..1960a71c62 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 */