12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- From 8519be9a302dae238d137775d13142716af04581 Mon Sep 17 00:00:00 2001
- From: Stefan O'Rear <sorear@fastmail.com>
- Date: Thu, 3 Sep 2020 03:33:10 -0400
- Subject: [PATCH 04/16] time64: Only gettimeofday/settimeofday if exist
- riscv64 and future architectures only provide the clock_ functions.
- ---
- src/time/clock_gettime.c | 4 ++++
- 1 file changed, 4 insertions(+)
- diff --git a/src/time/clock_gettime.c b/src/time/clock_gettime.c
- index 3e1d0975..c7e66a51 100644
- --- a/src/time/clock_gettime.c
- +++ b/src/time/clock_gettime.c
- @@ -80,10 +80,12 @@ int __clock_gettime(clockid_t clk, struct timespec *ts)
- return __syscall_ret(r);
- long ts32[2];
- r = __syscall(SYS_clock_gettime, clk, ts32);
- +#ifdef SYS_gettimeofday
- if (r==-ENOSYS && clk==CLOCK_REALTIME) {
- r = __syscall(SYS_gettimeofday, ts32, 0);
- ts32[1] *= 1000;
- }
- +#endif
- if (!r) {
- ts->tv_sec = ts32[0];
- ts->tv_nsec = ts32[1];
- @@ -92,6 +94,7 @@ int __clock_gettime(clockid_t clk, struct timespec *ts)
- return __syscall_ret(r);
- #else
- r = __syscall(SYS_clock_gettime, clk, ts);
- +#ifdef SYS_gettimeofday
- if (r == -ENOSYS) {
- if (clk == CLOCK_REALTIME) {
- __syscall(SYS_gettimeofday, ts, 0);
- @@ -100,6 +103,7 @@ int __clock_gettime(clockid_t clk, struct timespec *ts)
- }
- r = -EINVAL;
- }
- +#endif
- return __syscall_ret(r);
- #endif
- }
- --
- 2.29.2
|