0004-time64-Only-gettimeofday-settimeofday-if-exist.patch 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. From 8519be9a302dae238d137775d13142716af04581 Mon Sep 17 00:00:00 2001
  2. From: Stefan O'Rear <sorear@fastmail.com>
  3. Date: Thu, 3 Sep 2020 03:33:10 -0400
  4. Subject: [PATCH 04/16] time64: Only gettimeofday/settimeofday if exist
  5. riscv64 and future architectures only provide the clock_ functions.
  6. ---
  7. src/time/clock_gettime.c | 4 ++++
  8. 1 file changed, 4 insertions(+)
  9. diff --git a/src/time/clock_gettime.c b/src/time/clock_gettime.c
  10. index 3e1d0975..c7e66a51 100644
  11. --- a/src/time/clock_gettime.c
  12. +++ b/src/time/clock_gettime.c
  13. @@ -80,10 +80,12 @@ int __clock_gettime(clockid_t clk, struct timespec *ts)
  14. return __syscall_ret(r);
  15. long ts32[2];
  16. r = __syscall(SYS_clock_gettime, clk, ts32);
  17. +#ifdef SYS_gettimeofday
  18. if (r==-ENOSYS && clk==CLOCK_REALTIME) {
  19. r = __syscall(SYS_gettimeofday, ts32, 0);
  20. ts32[1] *= 1000;
  21. }
  22. +#endif
  23. if (!r) {
  24. ts->tv_sec = ts32[0];
  25. ts->tv_nsec = ts32[1];
  26. @@ -92,6 +94,7 @@ int __clock_gettime(clockid_t clk, struct timespec *ts)
  27. return __syscall_ret(r);
  28. #else
  29. r = __syscall(SYS_clock_gettime, clk, ts);
  30. +#ifdef SYS_gettimeofday
  31. if (r == -ENOSYS) {
  32. if (clk == CLOCK_REALTIME) {
  33. __syscall(SYS_gettimeofday, ts, 0);
  34. @@ -100,6 +103,7 @@ int __clock_gettime(clockid_t clk, struct timespec *ts)
  35. }
  36. r = -EINVAL;
  37. }
  38. +#endif
  39. return __syscall_ret(r);
  40. #endif
  41. }
  42. --
  43. 2.29.2