fix omission of dtv setup in static linked programs on TLS variant I archs
[musl] / src / time / tzset.c
index 6d69957..7e836c2 100644 (file)
@@ -15,15 +15,14 @@ int   __dst_offset = 0;
 weak_alias(__timezone, timezone);
 weak_alias(__daylight, daylight);
 weak_alias(__tzname, tzname);
-weak_alias(__dst_offset, dst_offset);
 
 static char std_name[TZNAME_MAX+1];
 static char dst_name[TZNAME_MAX+1];
 
 /* all elements are zero-based */
 static struct rule {
-       char month;
-       char week;
+       signed char month;
+       signed char week;
        short day;
        int time;
 } __dst_start, __dst_end;
@@ -107,12 +106,12 @@ void tzset(void)
 
 void __tzset(void)
 {
-       static int lock, init;
+       static int lock[2], init;
        if (init) return;
-       LOCK(&lock);
+       LOCK(lock);
        if (!init) tzset();
        init=1;
-       UNLOCK(&lock);
+       UNLOCK(lock);
 }
 
 static int is_leap(int year)