diff options
author | Werner Koch <[email protected]> | 2013-02-26 16:06:39 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2013-02-26 16:10:45 +0000 |
commit | cdae524b282ef0ea67c3880b3e0f852c84c351ce (patch) | |
tree | 71a8ab617cb314c510b2d778c6679a9e34b80f8b | |
parent | Improve missing libgpg-error reporting in configure. (diff) | |
download | gpgme-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.ac | 6 | ||||
-rw-r--r-- | src/util.h | 1 | ||||
-rw-r--r-- | src/w32-util.c | 6 |
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>" @@ -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 |