From 05f732b361988d0df967c78f151ae43d4c208be0 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 8 Nov 1998 10:40:28 +0000 Subject: Update. 1998-11-05 1998 H.J. Lu * libio/iofgets.c (_IO_fgets): Don't report error if something was read in and errno is set to EAGAIN. * libio/iofgets_u.c (fgets_unlocked): Likewise. 1998-11-05 Philip Blundell * sysdeps/unix/sysv/linux/net/if_packet.h: Don't include kernel header; it defines too much. Provide a local definition of struct sockaddr_pkt and a comment advising against its use. 1998-11-06 1998 Andreas Schwab * extra-lib.mk: Avoid empty include list. 1998-11-04 Andreas Schwab * extra-lib.mk: Add support for $(lib)-shared-only-routines. * elf/Makefile (libdl-routines): Add dlopenold only if doing versioning. (libdl-shared-only-routines): New variable. 1998-11-06 Paul Eggert Don't invoke localtime_r or gmtime_r unless it's the GNU C library's localtime_r and gmtime_r; there are too many buggy implementations of localtime_r and gmtime_r out there, and it's not worth keeping track of all the different bugs. * time/mktime.c (__EXTENSIONS__): Remove. (): No need to include. * time/strftime.c: Likewise. * time/mktime.c (_POSIX_THREAD_SAFE_FUNCTIONS, HAVE_LOCALTIME_R): Remove. (my_mktime_localtime_r): Renamed from localtime_r; all uses changed. Base it on localtime unless _LIBC. * time/strftime.c (my_strftime_gmtime_r): Renamed from gmtime_r; all uses changed. (my_strftime_localtime_r): Renamed from localtime_r; all uses changed. Base them on localtime/gmtime if not _LIBC. 1998-11-07 Ulrich Drepper * sysdeps/generic/isastream.c: Always return 0 unless it is an invalid file descriptor. This makes this function actually usable. Proposed by Mark Kettenis . --- time/mktime.c | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) (limited to 'time/mktime.c') diff --git a/time/mktime.c b/time/mktime.c index 673bb48266..88ac72366a 100644 --- a/time/mktime.c +++ b/time/mktime.c @@ -25,18 +25,8 @@ # include #endif -/* Some systems require that one of these symbols be defined in - order to declare localtime_r properly. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif -#ifndef _POSIX_THREAD_SAFE_FUNCTIONS -# define _POSIX_THREAD_SAFE_FUNCTIONS 1 -#endif - #ifdef _LIBC # define HAVE_LIMITS_H 1 -# define HAVE_LOCALTIME_R 1 # define STDC_HEADERS 1 #endif @@ -47,12 +37,6 @@ # define LEAP_SECONDS_POSSIBLE 1 #endif -/* Some systems require to be included before - for localtime_r to be declared properly. */ -#if HAVE_UNISTD_H -# include -#endif - #include /* Some systems define `time_t' here. */ #include @@ -132,35 +116,23 @@ time_t __mktime_internal __P ((struct tm *, #ifdef _LIBC -# define localtime_r __localtime_r +# define my_mktime_localtime_r __localtime_r #else -# if HAVE_LOCALTIME_R == defined localtime_r -/* Provide our own substitute for a missing or possibly broken localtime_r. */ +/* If we're a mktime substitute in a GNU program, then prefer + localtime to localtime_r, since many localtime_r implementations + are buggy. */ static struct tm *my_mktime_localtime_r __P ((const time_t *, struct tm *)); static struct tm * 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 */ } -# define localtime_r my_mktime_localtime_r -# endif /* HAVE_LOCALTIME_R == defined localtime_r */ #endif /* ! _LIBC */ @@ -215,7 +187,7 @@ mktime (tp) __tzset (); #endif - return __mktime_internal (tp, localtime_r, &localtime_offset); + return __mktime_internal (tp, my_mktime_localtime_r, &localtime_offset); } /* Use CONVERT to convert *T to a broken down time in *TP. @@ -565,6 +537,6 @@ main (argc, argv) /* Local Variables: -compile-command: "gcc -DDEBUG -D__EXTENSIONS__ -DHAVE_LIMITS_H -DHAVE_LOCALTIME_R -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime" +compile-command: "gcc -DDEBUG -DHAVE_LIMITS_H -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime" End: */ -- cgit v1.2.3