OSDN Git Service

Peter S. Mazinger writes:
authorEric Andersen <andersen@codepoet.org>
Tue, 19 Oct 2004 20:10:18 +0000 (20:10 -0000)
committerEric Andersen <andersen@codepoet.org>
Tue, 19 Oct 2004 20:10:18 +0000 (20:10 -0000)
Hello!

Would the attached patch be acceptable (maybe instead of
__libc_gettimeofday using __gettimeofday)

We have some issues, see

http://bugs.gentoo.org/show_bug.cgi?id=65892

13 files changed:
include/sys/time.h
libc/inet/rpc/auth_unix.c
libc/inet/rpc/create_xid.c
libc/misc/time/clock_gettime.c
libc/misc/time/ftime.c
libc/misc/time/time.c
libc/misc/utmp/wtent.c
libc/sysdeps/linux/common/gettimeofday.c
libc/sysdeps/linux/common/time.c
libc/sysdeps/linux/common/utime.c
libpthread/linuxthreads/pthread.c
libutil/logout.c
libutil/logwtmp.c

index f051d58..d51de1b 100644 (file)
@@ -72,6 +72,11 @@ typedef void *__restrict __timezone_ptr_t;
 extern int gettimeofday (struct timeval *__restrict __tv,
                         __timezone_ptr_t __tz) __THROW;
 
+#ifdef _LIBC
+extern int __libc_gettimeofday (struct timeval *__restrict __tv,
+                       __timezone_ptr_t __tz) __THROW;
+#endif
+
 #ifdef __USE_BSD
 /* Set the current time of day and timezone information.
    This call is restricted to the super-user.  */
index 3e14ba2..6fe8904 100644 (file)
@@ -130,7 +130,7 @@ no_memory:
   /*
    * fill in param struct from the given params
    */
-  (void) gettimeofday (&now, (struct timezone *) 0);
+  (void) __libc_gettimeofday (&now, (struct timezone *) 0);
   aup.aup_time = now.tv_sec;
   aup.aup_machname = machname;
   aup.aup_uid = uid;
@@ -265,7 +265,7 @@ authunix_refresh (AUTH *auth)
     goto done;
 
   /* update the time and serialize in place */
-  (void) gettimeofday (&now, (struct timezone *) 0);
+  (void) __libc_gettimeofday (&now, (struct timezone *) 0);
   aup.aup_time = now.tv_sec;
   xdrs.x_op = XDR_ENCODE;
   XDR_SETPOS (&xdrs, 0);
index cbb961e..8d8a340 100644 (file)
@@ -51,7 +51,7 @@ _create_xid (void)
     {
       struct timeval now;
 
-      gettimeofday (&now, (struct timezone *) 0);
+      __libc_gettimeofday (&now, (struct timezone *) 0);
       srand48_r (now.tv_sec ^ now.tv_usec, &__rpc_lrand48_data);
       is_initialized = 1;
     }
index 550cf4d..b71a8ac 100644 (file)
@@ -26,7 +26,7 @@ int clock_gettime (clockid_t clock, struct timespec* ts)
        int retval = -1;
        switch (clock) {
                case CLOCK_REALTIME:
-                       retval = gettimeofday (&tv, NULL);
+                       retval = __libc_gettimeofday (&tv, NULL);
                        if (retval == 0) {
                                TIMEVAL_TO_TIMESPEC (&tv, ts);
                        }
index 24789c9..cd7d7f9 100644 (file)
@@ -25,7 +25,7 @@ struct timeb *timebuf;
        struct timeval tv;
        struct timezone tz;
 
-       if (gettimeofday (&tv, &tz) < 0)
+       if (__libc_gettimeofday (&tv, &tz) < 0)
                return -1;
 
        timebuf->time = tv.tv_sec;
index ac2fe59..dbd72b0 100644 (file)
@@ -1603,7 +1603,7 @@ time_t time(register time_t *tloc)
        struct timeval tv;
        register struct timeval *p = &tv;
 
-       gettimeofday(p, NULL);          /* This should never fail... */
+       __libc_gettimeofday(p, NULL);           /* This should never fail... */
 
        if (tloc) {
                *tloc = p->tv_sec;
index ef5663f..9556ff3 100644 (file)
@@ -38,7 +38,7 @@ 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);
-    gettimeofday(&(lutmp.ut_tv), NULL);
+    __libc_gettimeofday(&(lutmp.ut_tv), NULL);
 
     updwtmp(_PATH_WTMP, &(lutmp));
 }
index 2970392..d904dfa 100644 (file)
@@ -9,4 +9,9 @@
 
 #include "syscalls.h"
 #include <sys/time.h>
-_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz);
+
+#ifdef __NR_gettimeofday
+#define __NR___libc_gettimeofday __NR_gettimeofday
+#endif
+_syscall2(int, __libc_gettimeofday, struct timeval *, tv, struct timezone *, tz);
+weak_alias(__libc_gettimeofday, gettimeofday);
index ea90dc2..bd68cd6 100644 (file)
@@ -18,7 +18,7 @@ time_t time(time_t * t)
        time_t result;
        struct timeval tv;
 
-       if (gettimeofday(&tv, (struct timezone *) NULL)) {
+       if (__libc_gettimeofday(&tv, (struct timezone *) NULL)) {
                result = (time_t) - 1;
        } else {
                result = (time_t) tv.tv_sec;
index 5cae0e0..a7c6e9e 100644 (file)
@@ -24,7 +24,7 @@ int utime(const char *file, const struct utimbuf *times)
                timevals[0].tv_sec = (long int) times->actime;
                timevals[1].tv_sec = (long int) times->modtime;
        } else {
-               if (gettimeofday(&timevals[0], NULL) < 0) {
+               if (__libc_gettimeofday(&timevals[0], NULL) < 0) {
                        return -1;
                }
                timevals[1] = timevals[0];
index c4225bc..0ccd8bc 100644 (file)
@@ -889,7 +889,7 @@ __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime)
        struct timespec reltime;
 
        /* Compute a time offset relative to now.  */
-       __gettimeofday (&now, NULL);
+       __libc_gettimeofday (&now, NULL);
        reltime.tv_nsec = abstime->tv_nsec - now.tv_usec * 1000;
        reltime.tv_sec = abstime->tv_sec - now.tv_sec;
        if (reltime.tv_nsec < 0) {
@@ -974,7 +974,7 @@ int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstim
            struct timespec reltime;
 
            /* Compute a time offset relative to now.  */
-           gettimeofday (&now, NULL);
+           __libc_gettimeofday (&now, NULL);
            reltime.tv_nsec = abstime->tv_nsec - now.tv_usec * 1000;
            reltime.tv_sec = abstime->tv_sec - now.tv_sec;
            if (reltime.tv_nsec < 0) {
index cf964e4..e0ebce9 100644 (file)
@@ -50,7 +50,7 @@ logout (const char *line)
       memset (ut->ut_host, 0, sizeof ut->ut_host);
 #endif
 #if _HAVE_UT_TV - 0
-      gettimeofday (&ut->ut_tv, NULL);
+      __libc_gettimeofday (&ut->ut_tv, NULL);
 #else
       time (&ut->ut_time);
 #endif
index 35d809d..1286f14 100644 (file)
@@ -36,7 +36,7 @@ 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);
-    gettimeofday(&(lutmp.ut_tv), NULL);
+    __libc_gettimeofday(&(lutmp.ut_tv), NULL);
 
     updwtmp(_PATH_WTMP, &(lutmp));
 }