From be5a505d771a77c640acc35ceaa470c80e62f954 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Thu, 24 Oct 2019 16:26:55 +0200
Subject: Remove syscall wrappers around clock_gettime, closes 12091

12091 "Direct use of __NR_clock_gettime is not time64-safe".

function                                             old     new   delta
runsv_main                                          1698    1712     +14
startservice                                         378     383      +5
get_mono                                              31      25      -6
date_main                                            932     926      -6
gettimeofday_ns                                       17       -     -17
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 2/2 up/down: 19/-29)            Total: -10 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 libbb/time.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

(limited to 'libbb')

diff --git a/libbb/time.c b/libbb/time.c
index b6fcae28b..e66a9cba8 100644
--- a/libbb/time.c
+++ b/libbb/time.c
@@ -253,18 +253,9 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp)
 #define CLOCK_MONOTONIC 1
 #endif
 
-/* libc has incredibly messy way of doing this,
- * typically requiring -lrt. We just skip all this mess */
 static void get_mono(struct timespec *ts)
 {
-#if defined(__NR_clock_gettime)
-	if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
-#elif __TIMESIZE == 64
-	if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts))
-#else
-# error "We currently don't support architectures without " \
-	"the __NR_clock_gettime syscall and 32-bit time_t"
-#endif
+	if (clock_gettime(CLOCK_MONOTONIC, ts))
 		bb_simple_error_msg_and_die("clock_gettime(MONOTONIC) failed");
 }
 unsigned long long FAST_FUNC monotonic_ns(void)
-- 
cgit v1.2.3