MS-Windows follow-up for recent TZ-related changes

* nt/mingw-cfg.site (ac_cv_header_pthread_h)
(gl_cv_sys_struct_timespec_in_pthread_h): Force to "no", to avoid
picking up 'struct timespec' from pthread.h, if it is installed on
the user's system.  We want either the definitions from MinGW
system headers, if available, or the Gnulib replacements if not.

* nt/inc/ms-w32.h <struct timespec>: Don't define, as we now use
lib/time.h.

* lib/time.in.h: Don't let __need_* symbols affect what happens on
MinGW.  These symbols are defined by MinGW system headers, but we
don't want that to affect whether Gnulib portions of the header
are or aren't used.
This commit is contained in:
Eli Zaretskii 2015-07-27 15:16:06 +03:00
parent 075f8d9626
commit 70096743d5
3 changed files with 10 additions and 18 deletions

View file

@ -24,9 +24,11 @@
declare a few standard symbols, rather than to declare all the
symbols. Also, Solaris 8 <time.h> eventually includes itself
recursively; if that is happening, just include the system <time.h>
without adding our own declarations. */
#if (defined __need_time_t || defined __need_clock_t \
|| defined __need_timespec \
without adding our own declarations. MinGW system headers use
these symbols as well, but we don't want to exclude MinGW from the
'else' branch below. */
#if (((defined __need_time_t || defined __need_clock_t \
|| defined __need_timespec) && !defined __MINGW32__) \
|| defined _@GUARD_PREFIX@_TIME_H)
# @INCLUDE_NEXT@ @NEXT_TIME_H@

View file

@ -306,21 +306,6 @@ int _getpid (void);
#include <time.h>
#define tzname _tzname
/* 'struct timespec' is used by time-related functions in lib/ and
elsewhere, but we don't use lib/time.h where the structure is
defined. */
/* MinGW64 defines 'struct timespec' and _TIMESPEC_DEFINED in sys/types.h. */
/* Mingw.org's MinGW runtime versions 3.22 and upward define 'struct
timespec' and __struct_timespec_defined in parts/time.h, which is
included by time.h. */
#if !defined (_TIMESPEC_DEFINED) && !defined (__struct_timespec_defined)
struct timespec
{
time_t tv_sec; /* seconds */
long int tv_nsec; /* nanoseconds */
};
#endif
/* Required for functions in lib/time_r.c, since we don't use lib/time.h. */
extern struct tm *gmtime_r (time_t const * restrict, struct tm * restrict);
extern struct tm *localtime_r (time_t const * restrict, struct tm * restrict);

View file

@ -35,6 +35,11 @@ ac_cv_header_getopt_h=no
# We don't want our struct timeval replaced due to Posix conformance
gl_cv_sys_struct_timeval_tv_sec=yes
# We don't want pthread.h to be picked up just because it defines timespec
gl_cv_sys_struct_timespec_in_pthread_h=no
# Or at all...
ac_cv_header_pthread_h=no
# ACL functions are implemented in w32.c
ac_cv_search_acl_get_file="none required"
ac_cv_func_acl_get_file=yes