]> granicus.if.org Git - curl/commitdiff
Windows: fixes for MinGW targeting Windows Vista
authorMarcel Raad <Marcel.Raad@teamviewer.com>
Sun, 7 Oct 2018 19:46:56 +0000 (21:46 +0200)
committerMarcel Raad <Marcel.Raad@teamviewer.com>
Tue, 9 Oct 2018 06:33:45 +0000 (08:33 +0200)
Classic MinGW has neither InitializeCriticalSectionEx nor
GetTickCount64, independent of the target Windows version.

Closes https://github.com/curl/curl/pull/3113

lib/curl_threads.h
lib/timeval.c
src/tool_util.c
tests/server/util.c

index 9e0d14a30d9a693201fcc328fdbc0810bece32ec..2a93644c56bb992e712244d21e8341c45351c925 100644 (file)
@@ -38,7 +38,8 @@
 #  define curl_thread_t          HANDLE
 #  define curl_thread_t_null     (HANDLE)0
 #  if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_VISTA) || \
-      (_WIN32_WINNT < _WIN32_WINNT_VISTA)
+      (_WIN32_WINNT < _WIN32_WINNT_VISTA) || \
+      (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR))
 #    define Curl_mutex_init(m)   InitializeCriticalSection(m)
 #  else
 #    define Curl_mutex_init(m)   InitializeCriticalSectionEx(m, 0, 1)
index bcb571a7c068fc100e0940db6927d833d812a6df..dce1a761e81d0439dda1c9cc6d4d37000112abac 100644 (file)
@@ -33,7 +33,8 @@ struct curltime Curl_now(void)
   */
   struct curltime now;
 #if !defined(_WIN32_WINNT) || !defined(_WIN32_WINNT_VISTA) || \
-    (_WIN32_WINNT < _WIN32_WINNT_VISTA)
+    (_WIN32_WINNT < _WIN32_WINNT_VISTA) || \
+    (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR))
   DWORD milliseconds = GetTickCount();
   now.tv_sec = milliseconds / 1000;
   now.tv_usec = (milliseconds % 1000) * 1000;
index 875411e3bb72d167dc23af3d1099a7d0957fc22e..1a5b773e2aef52c3b3c74401aeed783159c94eec 100644 (file)
@@ -40,7 +40,8 @@ struct timeval tvnow(void)
   ** is typically in the range of 10 milliseconds to 16 milliseconds.
   */
   struct timeval now;
-#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600) && \
+    (!defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR))
   ULONGLONG milliseconds = GetTickCount64();
 #else
   DWORD milliseconds = GetTickCount();
index df681968de7e7fbbd4efb5eea90e97ebacfd8d0c..07ef63ee1ff52bc2754576a9bdbfea6a11b30a38 100644 (file)
@@ -414,7 +414,8 @@ static struct timeval tvnow(void)
   ** is typically in the range of 10 milliseconds to 16 milliseconds.
   */
   struct timeval now;
-#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600) && \
+    (!defined(__MINGW32__) || defined(__MINGW64_VERSION_MAJOR))
   ULONGLONG milliseconds = GetTickCount64();
 #else
   DWORD milliseconds = GetTickCount();