diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-10-14 22:37:11 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-10-14 22:37:11 +0000 |
commit | 8d5166fb539a4b50ecf2602cdb7f6bb105ef1d1c (patch) | |
tree | bd669a7fb5665ced5db0eaa9e93f89c6362d1ecc /time/mktime.c | |
parent | 6f100d04b0faec0d809e5d244493cb56ba9de348 (diff) | |
download | glibc-8d5166fb539a4b50ecf2602cdb7f6bb105ef1d1c.tar.gz |
Update.
1998-10-08 Paul Eggert <eggert@twinsun.com>
* time/mktime.c (my_mktime_localtime_r): Renamed from localtime_r.
Define also if HAVE_LOCALTIME_R && defined localtime_r, with
a body that merely expands localtime_r; this works around a
bug in Digital Unix 4.0A and 4.0D.
1998-10-14 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add s_ioctl.
* sysdeps/unix/sysv/linux/powerpc/tcgetattr.c: New file. Define
__ioctl to __syscall_ioctl and include Linux version of this file.
* sysdeps/unix/sysv/linux/powerpc/tcsetattr.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/ioctl.c: New file. Redirect
ioctl calls which handle struct termios.
Based on a patch by Dan Jacobowitz <drow@false.org>.
Diffstat (limited to 'time/mktime.c')
-rw-r--r-- | time/mktime.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/time/mktime.c b/time/mktime.c index 7b93f1d42e..ab4c0ad2f0 100644 --- a/time/mktime.c +++ b/time/mktime.c @@ -124,22 +124,33 @@ time_t __mktime_internal __P ((struct tm *, #ifdef _LIBC # define localtime_r __localtime_r #else -# if ! HAVE_LOCALTIME_R && ! defined localtime_r -/* Approximate localtime_r as best we can in its absence. */ -# define localtime_r my_mktime_localtime_r -static struct tm *localtime_r __P ((const time_t *, struct tm *)); +# if HAVE_LOCALTIME_R == defined localtime_r +/* Provide our own substitute for a missing or possibly broken localtime_r. */ +static struct tm *my_mktime_localtime_r __P ((const time_t *, struct tm *)); static struct tm * -localtime_r (t, tp) +my_mktime_localtime_r (t, tp) const time_t *t; struct tm *tp; { +# ifdef localtime_r + /* Digital Unix 4.0A and 4.0D have a macro localtime_r with the + standard meaning, along with an unwanted, nonstandard function + localtime_r. The placeholder function my_mktime_localtime_r + invokes the macro; use that instead of the system's bogus + localtime_r. */ + return localtime_r (t, tp); +# undef localtime_r +# else /* ! defined (localtime_r) */ + /* Approximate localtime_r as best we can in its absence. */ struct tm *l = localtime (t); if (! l) return 0; *tp = *l; return tp; +# endif /* ! defined localtime_r */ } -# endif /* ! HAVE_LOCALTIME_R && ! defined (localtime_r) */ +# define localtime_r my_mktime_localtime_r +# endif /* HAVE_LOCALTIME_R == defined localtime_r */ #endif /* ! _LIBC */ |