]> git.eshelyaron.com Git - emacs.git/commitdiff
MS-Windows follow-up for recent TZ-related changes
authorEli Zaretskii <eliz@gnu.org>
Mon, 27 Jul 2015 12:16:06 +0000 (15:16 +0300)
committerEli Zaretskii <eliz@gnu.org>
Mon, 27 Jul 2015 12:16:06 +0000 (15:16 +0300)
* 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.

lib/time.in.h
nt/inc/ms-w32.h
nt/mingw-cfg.site

index a983f498e519c6f9920786239e819f1676c88f9f..1adfe92539856c2e7ba3691c022b0867c02ec7cd 100644 (file)
    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@
index bfa5bb5e14916a0d865446c5e970d064b77dda5f..4fb32df0c07d0de848ae9418262ef1441e27c9cb 100644 (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);
index 0be24dde12f3f9a0782c427fc1fdf6af8a1f2a57..05034fedd4889d8a9c93ce28b1b84c76b2fb112a 100644 (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