]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
hwclock: fix SYS_settimeofday fallback
authorRosen Penev <rosenp@gmail.com>
Sun, 30 Aug 2020 04:55:58 +0000 (21:55 -0700)
committerGitHub <noreply@github.com>
Sun, 30 Aug 2020 04:55:58 +0000 (21:55 -0700)
turns out this is subtly broken. musl 1.2.x for 64-bit architectures defines __NR_settimeofday but not
for 32-bit ones. For 32-bit, it defines a _time32 variant.

sys-utils/hwclock.c

index ac74549d744d318f371b33a2b985f45720e4e066..c1cfbd3949328e34cc906f5eabdf1f7d91e52643 100644 (file)
@@ -675,8 +675,12 @@ display_time(struct timeval hwctime)
  */
 #define __set_time(_tv)                settimeofday(_tv, NULL)
 
-#if !defined(SYS_settimeofday) && defined(__NR_settimeofday)
-# define SYS_settimeofday      __NR_settimeofday
+#ifndef SYS_settimeofday
+# ifdef __NR_settimeofday
+#  define SYS_settimeofday     __NR_settimeofday
+# else
+#  define SYS_settimeofday     __NR_settimeofday_time32
+# endif
 #endif
 
 static inline int __set_timezone(const struct timezone *tz)