mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-07 15:43:49 +02:00
busybox: fix time64 patch.
The syscall name was changed explicitly so compilation broke instead of
allowing programs using the raw syscall to use the time64 struct
timespec with a syscall expecting the old one.
Since we have modern glibc and musl, we can just force clock_gettime
usage.
The previous patch also broke y2038 support.
Not revbumping, since c085deae94
didn't
either.
This commit is contained in:
parent
c085deae94
commit
c9307124d9
1 changed files with 29 additions and 19 deletions
|
@ -1,28 +1,38 @@
|
||||||
--- coreutils/date.c 2019-06-10 12:50:53.000000000 +0200
|
diff --git coreutils/date.c coreutils/date.c
|
||||||
+++ coreutils/date.c 2021-02-09 12:39:19.127054192 +0100
|
index 3414d38..6e12f36 100644
|
||||||
@@ -274,7 +274,11 @@
|
--- coreutils/date.c
|
||||||
|
+++ coreutils/date.c
|
||||||
|
@@ -272,9 +272,7 @@ int date_main(int argc UNUSED_PARAM, char **argv)
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
#if ENABLE_FEATURE_DATE_NANO
|
#if ENABLE_FEATURE_DATE_NANO
|
||||||
/* libc has incredibly messy way of doing this,
|
- /* libc has incredibly messy way of doing this,
|
||||||
* typically requiring -lrt. We just skip all this mess */
|
- * typically requiring -lrt. We just skip all this mess */
|
||||||
+#if defined(__NR_clock_gettime32)
|
- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts);
|
||||||
+ syscall(__NR_clock_gettime32, CLOCK_REALTIME, &ts);
|
+ clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
+#else
|
|
||||||
syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts);
|
|
||||||
+#endif
|
|
||||||
#else
|
#else
|
||||||
time(&ts.tv_sec);
|
time(&ts.tv_sec);
|
||||||
#endif
|
#endif
|
||||||
--- libbb/time.c 2019-06-10 12:50:53.000000000 +0200
|
diff --git libbb/time.c libbb/time.c
|
||||||
+++ libbb/time.c 2021-02-09 12:35:35.125037118 +0100
|
index f9b8da0..600b60b 100644
|
||||||
@@ -257,7 +257,11 @@
|
--- libbb/time.c
|
||||||
* typically requiring -lrt. We just skip all this mess */
|
+++ libbb/time.c
|
||||||
|
@@ -247,17 +247,10 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS(char *buf, unsigned len, time_t *tp)
|
||||||
|
#if ENABLE_MONOTONIC_SYSCALL
|
||||||
|
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
-/* Old glibc (< 2.3.4) does not provide this constant. We use syscall
|
||||||
|
- * directly so this definition is safe. */
|
||||||
|
-#ifndef CLOCK_MONOTONIC
|
||||||
|
-#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)
|
static void get_mono(struct timespec *ts)
|
||||||
{
|
{
|
||||||
+#if defined(__NR_clock_gettime32)
|
- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
|
||||||
+ if (syscall(__NR_clock_gettime32, CLOCK_MONOTONIC, ts))
|
+ if (clock_gettime(CLOCK_MONOTONIC, ts))
|
||||||
+#else
|
|
||||||
if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts))
|
|
||||||
+#endif
|
|
||||||
bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
|
bb_error_msg_and_die("clock_gettime(MONOTONIC) failed");
|
||||||
}
|
}
|
||||||
unsigned long long FAST_FUNC monotonic_ns(void)
|
unsigned long long FAST_FUNC monotonic_ns(void)
|
||||||
|
|
Loading…
Add table
Reference in a new issue