aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/busybox
diff options
context:
space:
mode:
authorLuka Perkov <luka@openwrt.org>2016-05-10 22:36:12 +0000
committerLuka Perkov <luka@openwrt.org>2016-06-19 19:26:55 +0200
commit7553c7eec0d1d8eeb61e1b01732ad3ecfbcb97d3 (patch)
tree4d1c8671d4403e8f430bfd1b73594dec0e997163 /package/utils/busybox
parentbb1778b7203302921b4868ba3907ba780ba1212d (diff)
downloadmaster-187ad058-7553c7eec0d1d8eeb61e1b01732ad3ecfbcb97d3.tar.gz
master-187ad058-7553c7eec0d1d8eeb61e1b01732ad3ecfbcb97d3.tar.bz2
master-187ad058-7553c7eec0d1d8eeb61e1b01732ad3ecfbcb97d3.zip
busybox: fix setting the kernel timezone
The settimeofday() syscall wrapper provided by musl filters out the timezone argument, breaking the ability to set the kernel timezone through the function. Adjust busybox patch to issue the syscall directly in order to circumvent the problem. Signed-off-by: Jo-Philipp Wich <jo@mein.io> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49322 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/utils/busybox')
-rw-r--r--package/utils/busybox/patches/250-date-k-flag.patch24
1 files changed, 14 insertions, 10 deletions
diff --git a/package/utils/busybox/patches/250-date-k-flag.patch b/package/utils/busybox/patches/250-date-k-flag.patch
index f0dab26898..111a86156f 100644
--- a/package/utils/busybox/patches/250-date-k-flag.patch
+++ b/package/utils/busybox/patches/250-date-k-flag.patch
@@ -8,15 +8,19 @@
//usage: "\n"
//usage: "\nRecognized TIME formats:"
//usage: "\n hh:mm[:ss]"
-@@ -138,6 +139,7 @@
+@@ -138,9 +139,8 @@
//usage: "Wed Apr 12 18:52:41 MDT 2000\n"
#include "libbb.h"
+-#if ENABLE_FEATURE_DATE_NANO
+-# include <sys/syscall.h>
+-#endif
+#include <sys/time.h>
- #if ENABLE_FEATURE_DATE_NANO
- # include <sys/syscall.h>
- #endif
-@@ -148,8 +150,9 @@ enum {
++#include <sys/syscall.h>
+
+ enum {
+ OPT_RFC2822 = (1 << 0), /* R */
+@@ -148,8 +148,9 @@ enum {
OPT_UTC = (1 << 2), /* u */
OPT_DATE = (1 << 3), /* d */
OPT_REFERENCE = (1 << 4), /* r */
@@ -28,7 +32,7 @@
};
static void maybe_set_utc(int opt)
-@@ -167,12 +170,15 @@ static const char date_longopts[] ALIGN1
+@@ -167,12 +168,15 @@ static const char date_longopts[] ALIGN1
/* "universal\0" No_argument "u" */
"date\0" Required_argument "d"
"reference\0" Required_argument "r"
@@ -44,7 +48,7 @@
struct timespec ts;
struct tm tm_time;
char buf_fmt_dt2str[64];
-@@ -187,7 +193,7 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -187,7 +191,7 @@ int date_main(int argc UNUSED_PARAM, cha
opt_complementary = "d--s:s--d"
IF_FEATURE_DATE_ISOFMT(":R--I:I--R");
IF_LONG_OPTS(applet_long_options = date_longopts;)
@@ -53,7 +57,7 @@
IF_FEATURE_DATE_ISOFMT("I::D:"),
&date_str, &date_str, &filename
IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt));
-@@ -244,6 +250,31 @@ int date_main(int argc UNUSED_PARAM, cha
+@@ -244,6 +248,31 @@ int date_main(int argc UNUSED_PARAM, cha
if (*argv)
bb_show_usage();
@@ -64,7 +68,7 @@
+
+ /* workaround warp_clock() on first invocation */
+ memset(&tz, 0, sizeof(tz));
-+ settimeofday(NULL, &tz);
++ syscall(SYS_settimeofday, NULL, &tz);
+
+ memset(&tz, 0, sizeof(tz));
+#ifdef __USE_MISC
@@ -73,7 +77,7 @@
+ tz.tz_minuteswest = -(tm_time.__tm_gmtoff / 60);
+#endif
+
-+ if (settimeofday(NULL, &tz))
++ if (syscall(SYS_settimeofday, NULL, &tz))
+ {
+ bb_perror_msg("can't set kernel time zone");
+ return EXIT_FAILURE;