Browse Source

import 32/64 bit compat support from glibc

Mike Frysinger 18 years ago
parent
commit
164c1d8ffb
2 changed files with 18 additions and 0 deletions
  1. 9 0
      libutil/logout.c
  2. 9 0
      libutil/logwtmp.c

+ 9 - 0
libutil/logout.c

@@ -51,7 +51,16 @@ logout (const char *line)
       memset (ut->ut_host, 0, sizeof ut->ut_host);
 #endif
 #if _HAVE_UT_TV - 0
+# if __WORDSIZE_COMPAT32 == 0
       gettimeofday (&ut->ut_tv, NULL);
+# else
+    {
+      struct timeval tv;
+      gettimeofday (&tv, NULL);
+      ut->ut_tv.tv_sec = tv.tv_sec;
+      ut->ut_tv.tv_usec = tv.tv_usec;
+    }
+# endif
 #else
       time (&ut->ut_time);
 #endif

+ 9 - 0
libutil/logwtmp.c

@@ -37,7 +37,16 @@ void logwtmp (const char *line, const char *name, const char *host)
     strncpy(lutmp.ut_line, line, sizeof(lutmp.ut_line)-1);
     strncpy(lutmp.ut_name, name, sizeof(lutmp.ut_name)-1);
     strncpy(lutmp.ut_host, host, sizeof(lutmp.ut_host)-1);
+#if __WORDSIZE_COMPAT32 == 0
     gettimeofday(&(lutmp.ut_tv), NULL);
+#else
+    {
+      struct timeval tv;
+      gettimeofday (&tv, NULL);
+      lutmp.ut_tv.tv_sec = tv.tv_sec;
+      lutmp.ut_tv.tv_usec = tv.tv_usec;
+    }
+#endif
 
     updwtmp(_PATH_WTMP, &(lutmp));
 }