aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2013-02-26 16:06:39 +0000
committerWerner Koch <[email protected]>2013-02-26 16:10:45 +0000
commitcdae524b282ef0ea67c3880b3e0f852c84c351ce (patch)
tree71a8ab617cb314c510b2d778c6679a9e34b80f8b
parentImprove missing libgpg-error reporting in configure. (diff)
downloadgpgme-cdae524b282ef0ea67c3880b3e0f852c84c351ce.tar.gz
gpgme-cdae524b282ef0ea67c3880b3e0f852c84c351ce.zip
w32: Hacks for building with 32 bit mingw64.
* 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.
-rw-r--r--configure.ac6
-rw-r--r--src/util.h1
-rw-r--r--src/w32-util.c6
3 files changed, 11 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index cfe6d1b1..0fb326e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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>"
diff --git a/src/util.h b/src/util.h
index cf18099a..db8dc397 100644
--- a/src/util.h
+++ b/src/util.h
@@ -26,6 +26,7 @@
# ifdef HAVE_W32CE_SYSTEM
# include "w32-ce.h"
# else
+# include "winsock2.h"
# include "windows.h"
# endif
#endif
diff --git a/src/w32-util.c b/src/w32-util.c
index 7feaf6b9..a90f4056 100644
--- a/src/w32-util.c
+++ b/src/w32-util.c
@@ -44,7 +44,11 @@
#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