<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none"><!--P{margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Refactor usage of settimeofday to be compatible with glibc v2.31.<br>
<br>
Signed-off-by: Fredrik M Olsson <fredriol@axis.com><br>
---<br>
 util-linux/hwclock.c | 20 ++++++++++++++++----<br>
 1 file changed, 16 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c<br>
index 29f5102..d3884f6 100644<br>
--- a/util-linux/hwclock.c<br>
+++ b/util-linux/hwclock.c<br>
@@ -117,6 +117,20 @@ static void show_clock(const char **pp_rtcname, int utc)<br>
 #endif<br>
 }<br>
 <br>
+static void set_time_and_zone(const struct timeval *tv, const struct timezone *tz)<br>
+{<br>
+#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 31<br>
+    if (settimeofday(NULL, tz))<br>
+        bb_perror_msg_and_die("settimeofday tz");<br>
+<br>
+    if (settimeofday(tv, NULL))<br>
+        bb_perror_msg_and_die("settimeofday tv");<br>
+#else<br>
+    if (settimeofday(tv, tz))<br>
+        bb_perror_msg_and_die("settimeofday");<br>
+#endif<br>
+}<br>
+<br>
 static void to_sys_clock(const char **pp_rtcname, int utc)<br>
 {<br>
     struct timeval tv;<br>
@@ -131,8 +145,7 @@ static void to_sys_clock(const char **pp_rtcname, int utc)<br>
 <br>
     tv.tv_sec = read_rtc(pp_rtcname, NULL, utc);<br>
     tv.tv_usec = 0;<br>
-    if (settimeofday(&tv, &tz))<br>
-        bb_perror_msg_and_die("settimeofday");<br>
+    set_time_and_zone(&tv, &tz);<br>
 }<br>
 <br>
 static void from_sys_clock(const char **pp_rtcname, int utc)<br>
@@ -283,8 +296,7 @@ static void set_system_clock_timezone(int utc)<br>
     gettimeofday(&tv, NULL);<br>
     if (!utc)<br>
         tv.tv_sec += tz.tz_minuteswest * 60;<br>
-    if (settimeofday(&tv, &tz))<br>
-        bb_perror_msg_and_die("settimeofday");<br>
+    set_time_and_zone(&tv, &tz);<br>
 }<br>
 <br>
 //usage:#define hwclock_trivial_usage<br>
-- <br>
2.11.0<br>
<br>
</p>
</body>
</html>