summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-10-19 20:10:18 +0000
committerEric Andersen <andersen@codepoet.org>2004-10-19 20:10:18 +0000
commit7e2b221be1bae211b580ea1204dc7c54b2684abd (patch)
treeeda4e5658779c094fde56643d4f57464f092b945
parentb4f49294526ceadbc4194ec7efb9af04f1e6e577 (diff)
downloaduClibc-alpine-7e2b221be1bae211b580ea1204dc7c54b2684abd.tar.bz2
uClibc-alpine-7e2b221be1bae211b580ea1204dc7c54b2684abd.tar.xz
Peter S. Mazinger writes:
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
-rw-r--r--include/sys/time.h5
-rw-r--r--libc/inet/rpc/auth_unix.c4
-rw-r--r--libc/inet/rpc/create_xid.c2
-rw-r--r--libc/misc/time/clock_gettime.c2
-rw-r--r--libc/misc/time/ftime.c2
-rw-r--r--libc/misc/time/time.c2
-rw-r--r--libc/misc/utmp/wtent.c2
-rw-r--r--libc/sysdeps/linux/common/gettimeofday.c7
-rw-r--r--libc/sysdeps/linux/common/time.c2
-rw-r--r--libc/sysdeps/linux/common/utime.c2
-rw-r--r--libpthread/linuxthreads/pthread.c4
-rw-r--r--libutil/logout.c2
-rw-r--r--libutil/logwtmp.c2
13 files changed, 24 insertions, 14 deletions
diff --git a/include/sys/time.h b/include/sys/time.h
index f051d58c4..d51de1b8f 100644
--- a/include/sys/time.h
+++ b/include/sys/time.h
@@ -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. */
diff --git a/libc/inet/rpc/auth_unix.c b/libc/inet/rpc/auth_unix.c
index 3e14ba2a5..6fe89048b 100644
--- a/libc/inet/rpc/auth_unix.c
+++ b/libc/inet/rpc/auth_unix.c
@@ -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);
diff --git a/libc/inet/rpc/create_xid.c b/libc/inet/rpc/create_xid.c
index cbb961e4d..8d8a34070 100644
--- a/libc/inet/rpc/create_xid.c
+++ b/libc/inet/rpc/create_xid.c
@@ -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;
}
diff --git a/libc/misc/time/clock_gettime.c b/libc/misc/time/clock_gettime.c
index 550cf4dc4..b71a8ac2d 100644
--- a/libc/misc/time/clock_gettime.c
+++ b/libc/misc/time/clock_gettime.c
@@ -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);
}
diff --git a/libc/misc/time/ftime.c b/libc/misc/time/ftime.c
index 24789c9eb..cd7d7f9e2 100644
--- a/libc/misc/time/ftime.c
+++ b/libc/misc/time/ftime.c
@@ -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;
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index ac2fe5926..dbd72b064 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -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;
diff --git a/libc/misc/utmp/wtent.c b/libc/misc/utmp/wtent.c
index ef5663feb..9556ff338 100644
--- a/libc/misc/utmp/wtent.c
+++ b/libc/misc/utmp/wtent.c
@@ -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));
}
diff --git a/libc/sysdeps/linux/common/gettimeofday.c b/libc/sysdeps/linux/common/gettimeofday.c
index 297039243..d904dfa71 100644
--- a/libc/sysdeps/linux/common/gettimeofday.c
+++ b/libc/sysdeps/linux/common/gettimeofday.c
@@ -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);
diff --git a/libc/sysdeps/linux/common/time.c b/libc/sysdeps/linux/common/time.c
index ea90dc2e7..bd68cd6e8 100644
--- a/libc/sysdeps/linux/common/time.c
+++ b/libc/sysdeps/linux/common/time.c
@@ -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;
diff --git a/libc/sysdeps/linux/common/utime.c b/libc/sysdeps/linux/common/utime.c
index 5cae0e0ea..a7c6e9e68 100644
--- a/libc/sysdeps/linux/common/utime.c
+++ b/libc/sysdeps/linux/common/utime.c
@@ -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];
diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c
index c4225bce8..0ccd8bcf4 100644
--- a/libpthread/linuxthreads/pthread.c
+++ b/libpthread/linuxthreads/pthread.c
@@ -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) {
diff --git a/libutil/logout.c b/libutil/logout.c
index cf964e4dd..e0ebce98c 100644
--- a/libutil/logout.c
+++ b/libutil/logout.c
@@ -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
diff --git a/libutil/logwtmp.c b/libutil/logwtmp.c
index 35d809d96..1286f140d 100644
--- a/libutil/logwtmp.c
+++ b/libutil/logwtmp.c
@@ -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));
}