|
Message-Id: <20170722091903.19432-1-ncopa@alpinelinux.org> Date: Sat, 22 Jul 2017 11:19:03 +0200 From: Natanael Copa <ncopa@...inelinux.org> To: musl@...ts.openwall.com Cc: Natanael Copa <ncopa@...inelinux.org> Subject: [PATCH] use UTC instead of GMT GMT is a timezone officially used by some countries in Europe and Africa. UTC is not a timezone, but a time standard. No country or territory officialy uses UTC as local time. Also, POSIX mentions UTC a few places[1][2] but never GMT (except as an example[2] for a timezone) So it makes more sense to use UTC instead of GMT and return UTC when no timezone is set in /etc/localtime or TZ is set to empty. [1]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime.html [2]: http://pubs.opengroup.org/onlinepubs/9699919799/functions/timezone.html --- This causes real problems for people: https://github.com/gliderlabs/docker-alpine/issues/310#issuecomment-316732179 src/time/__tz.c | 16 ++++++++-------- src/time/gmtime_r.c | 4 ++-- src/time/timegm.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/time/__tz.c b/src/time/__tz.c index ffe8d402..8cc96032 100644 --- a/src/time/__tz.c +++ b/src/time/__tz.c @@ -15,7 +15,7 @@ weak_alias(__tzname, tzname); static char std_name[TZNAME_MAX+1]; static char dst_name[TZNAME_MAX+1]; -const char __gmt[] = "GMT"; +const char __utc[] = "UTC"; static int dst_off; static int r0[5], r1[5]; @@ -126,7 +126,7 @@ static void do_tzset() s = getenv("TZ"); if (!s) s = "/etc/localtime"; - if (!*s) s = __gmt; + if (!*s) s = __utc; if (old_tz && !strcmp(s, old_tz)) return; @@ -136,7 +136,7 @@ static void do_tzset() * free so as not to pull it into static programs. Growth * strategy makes it so free would have minimal benefit anyway. */ i = strlen(s); - if (i > PATH_MAX+1) s = __gmt, i = 3; + if (i > PATH_MAX+1) s = __utc, i = 3; if (i >= old_tz_size) { old_tz_size *= 2; if (i >= old_tz_size) old_tz_size = i+1; @@ -165,12 +165,12 @@ static void do_tzset() } } } - if (!map) s = __gmt; + if (!map) s = __utc; } if (map && (map_size < 44 || memcmp(map, "TZif", 4))) { __munmap((void *)map, map_size); map = 0; - s = __gmt; + s = __utc; } zi = map; @@ -207,7 +207,7 @@ static void do_tzset() } } if (!__tzname[0]) __tzname[0] = __tzname[1]; - if (!__tzname[0]) __tzname[0] = (char *)__gmt; + if (!__tzname[0]) __tzname[0] = (char *)__utc; if (!__daylight) { __tzname[1] = __tzname[0]; dst_off = __timezone; @@ -216,7 +216,7 @@ static void do_tzset() } } - if (!s) s = __gmt; + if (!s) s = __utc; getname(std_name, &s); __tzname[0] = std_name; __timezone = getoff(&s); @@ -413,7 +413,7 @@ const char *__tm_to_tzname(const struct tm *tm) const void *p = tm->__tm_zone; LOCK(lock); do_tzset(); - if (p != __gmt && p != __tzname[0] && p != __tzname[1] && + if (p != __utc && p != __tzname[0] && p != __tzname[1] && (!zi || (uintptr_t)p-(uintptr_t)abbrevs >= abbrevs_end - abbrevs)) p = ""; UNLOCK(lock); diff --git a/src/time/gmtime_r.c b/src/time/gmtime_r.c index 8cbdadcb..cba72447 100644 --- a/src/time/gmtime_r.c +++ b/src/time/gmtime_r.c @@ -2,7 +2,7 @@ #include <errno.h> #include "libc.h" -extern const char __gmt[]; +extern const char __utc[]; struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm) { @@ -12,7 +12,7 @@ struct tm *__gmtime_r(const time_t *restrict t, struct tm *restrict tm) } tm->tm_isdst = 0; tm->__tm_gmtoff = 0; - tm->__tm_zone = __gmt; + tm->__tm_zone = __utc; return tm; } diff --git a/src/time/timegm.c b/src/time/timegm.c index b5dae8b6..f444e76e 100644 --- a/src/time/timegm.c +++ b/src/time/timegm.c @@ -2,7 +2,7 @@ #include "time_impl.h" #include <errno.h> -extern const char __gmt[]; +extern const char __utc[]; time_t timegm(struct tm *tm) { @@ -15,6 +15,6 @@ time_t timegm(struct tm *tm) *tm = new; tm->tm_isdst = 0; tm->__tm_gmtoff = 0; - tm->__tm_zone = __gmt; + tm->__tm_zone = __utc; return t; } -- 2.13.2
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.