|
@@ -1,57 +0,0 @@
|
|
|
-From 6c200cd3c9b4884036cda011d8db8b67763c41d3 Mon Sep 17 00:00:00 2001
|
|
|
-From: Alistair Francis <alistair.francis@wdc.com>
|
|
|
-Date: Tue, 27 Aug 2019 16:17:57 -0700
|
|
|
-Subject: [PATCH 1/3] date: Use 64 prefix syscall if we have to
|
|
|
-
|
|
|
-Some 32-bit architectures no longer have the 32-bit time_t syscalls.
|
|
|
-Instead they have suffixed syscalls that returns a 64-bit time_t. If
|
|
|
-the architecture doesn't have the non-suffixed syscall and is using a
|
|
|
-64-bit time_t let's use the suffixed syscall instead.
|
|
|
-
|
|
|
-This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel
|
|
|
-headers.
|
|
|
-
|
|
|
-If an architecture only supports the suffixed syscalls, but is still
|
|
|
-using a 32-bit time_t fall back to the libc call.
|
|
|
-
|
|
|
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
|
|
|
-Upstream-Status: Submitted
|
|
|
----
|
|
|
- coreutils/date.c | 11 +++++++++--
|
|
|
- 1 file changed, 9 insertions(+), 2 deletions(-)
|
|
|
-
|
|
|
-diff --git a/coreutils/date.c b/coreutils/date.c
|
|
|
-index feb400430..4ef1cbf4a 100644
|
|
|
---- a/coreutils/date.c
|
|
|
-+++ b/coreutils/date.c
|
|
|
-@@ -36,7 +36,7 @@
|
|
|
- //config:# defaults to "no": stat's nanosecond field is a bit non-portable
|
|
|
- //config:config FEATURE_DATE_NANO
|
|
|
- //config: bool "Support %[num]N nanosecond format specifier"
|
|
|
--//config: default n # syscall(__NR_clock_gettime)
|
|
|
-+//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64)
|
|
|
- //config: depends on DATE
|
|
|
- //config: select PLATFORM_LINUX
|
|
|
- //config: help
|
|
|
-@@ -271,10 +271,17 @@ int date_main(int argc UNUSED_PARAM, char **argv)
|
|
|
- */
|
|
|
- #endif
|
|
|
- } else {
|
|
|
--#if ENABLE_FEATURE_DATE_NANO
|
|
|
-+#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime)
|
|
|
- /* libc has incredibly messy way of doing this,
|
|
|
- * typically requiring -lrt. We just skip all this mess */
|
|
|
- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts);
|
|
|
-+#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64
|
|
|
-+ /* Let's only suppor the 64 suffix syscalls for 64-bit time_t.
|
|
|
-+ * This simplifies the code for us as we don't need to convert
|
|
|
-+ * between 64-bit and 32-bit. We also don't have a way to
|
|
|
-+ * report overflow errors here.
|
|
|
-+ */
|
|
|
-+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts);
|
|
|
- #else
|
|
|
- time(&ts.tv_sec);
|
|
|
- #endif
|
|
|
---
|
|
|
-2.22.0
|
|
|
-
|