w32: Hacks for building with 32 bit mingw64.
authorWerner Koch <wk@gnupg.org>
Tue, 26 Feb 2013 16:06:39 +0000 (17:06 +0100)
committerWerner Koch <wk@gnupg.org>
Tue, 26 Feb 2013 16:10:45 +0000 (17:10 +0100)
* configure.ac (INSERT__TYPEDEFS_FOR_GPGME_H): Add hacks for 32 bit
mingw64.
* src/util.h [W32]: Include winsock2.h before windows to make mingw64
happy.
* src/w32-util.c (_WIN32_IE): Need to use 5.1 for mingw64.
--

It is not clear to me what mingw64 wants to achieve with their POSIX
hacks. In particular the off64_t stuff looks quite strange given that
Windows has a pretty stable API for close to 2 decades.  Thus I can't
say whether it will really work when build with that toolchain.

configure.ac
src/util.h
src/w32-util.c

index cfe6d1b..0fb326e 100644 (file)
@@ -287,8 +287,12 @@ typedef long off_t;
 typedef __int64 ssize_t;"
    else
       INSERT__TYPEDEFS_FOR_GPGME_H="/* Typedefs for the 32 bit W32 API.  */
+#ifndef _OFF_T_DEFINED   /* Defined by newer mingw32 toolkits.  */
 typedef long off_t;
-typedef long ssize_t;"
+#endif
+#ifndef _SSIZE_T_DEFINED /* Defined by newer mingw32 toolkits.  */
+typedef long ssize_t;
+#endif"
    fi
 else
    INSERT__TYPEDEFS_FOR_GPGME_H="#include <sys/types.h>"
index cf18099..db8dc39 100644 (file)
@@ -26,6 +26,7 @@
 # ifdef HAVE_W32CE_SYSTEM
 #  include "w32-ce.h"
 # else
+#  include "winsock2.h"
 #  include "windows.h"
 # endif
 #endif
index 7feaf6b..a90f405 100644 (file)
 #include <fcntl.h>
 #include <io.h>
 
-#define _WIN32_IE 0x0400 /* Required for SHGetSpecialFolderPathA.  */
+#if __MINGW64_VERSION_MAJOR >= 2
+# define _WIN32_IE 0x0501 /* Required by mingw64 toolkit.  */
+#else
+# define _WIN32_IE 0x0400 /* Required for SHGetSpecialFolderPathA.  */
+#endif
 
 /* We need to include the windows stuff here prior to shlobj.h so that
    we get the right winsock version.  This is usually done in util.h