1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
This file is part of MXE.
See index.html for further information.
From 147c86d57e45bc3d4cafddbde00c447ea4610c47 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Mon, 3 Jun 2013 11:24:12 +0200
Subject: [PATCH 1/2] avoid accidental inclusion of old winsock.h
taken from http://permalink.gmane.org/gmane.comp.encryption.gpg.libgcrypt.devel/2834
/src/gcrypt.h.in:# include <winsock2.h> implicitly includes
windows.h. Avoid including windows.h explicitly before
winsock2.h, to avoid implicit inclusion of conflicting winsock.h
from windows.h.
diff --git a/random/rndw32.c b/random/rndw32.c
index f8a83b6..d6c8e34 100644
--- a/random/rndw32.c
+++ b/random/rndw32.c
@@ -78,7 +78,6 @@
#include <stdint.h>
#endif
-#include <windows.h>
#include "types.h"
diff --git a/src/ath.h b/src/ath.h
index 8769551..1d6be15 100644
--- a/src/ath.h
+++ b/src/ath.h
@@ -24,7 +24,6 @@
#include <config.h>
#ifdef _WIN32
-# include <windows.h>
#else /* !_WIN32 */
# ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
diff --git a/tests/benchmark.c b/tests/benchmark.c
index 106e01b..d7a6188 100644
--- a/tests/benchmark.c
+++ b/tests/benchmark.c
@@ -25,7 +25,6 @@
#include <time.h>
#include <stdarg.h>
#ifdef _WIN32
-#include <windows.h>
#else
#include <sys/times.h>
#endif
--
1.8.4.5
From 446a9c19d4c307e319a08633c08b2f62e69230fa Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Fri, 7 Feb 2014 21:22:10 +0100
Subject: [PATCH 2/2] mingw-w64 compatibility
diff --git a/mpi/generic/mpi-asm-defs.h b/mpi/generic/mpi-asm-defs.h
index 13424e2..74a7501 100644
--- a/mpi/generic/mpi-asm-defs.h
+++ b/mpi/generic/mpi-asm-defs.h
@@ -1,8 +1,11 @@
/* This file defines some basic constants for the MPI machinery. We
* need to define the types on a per-CPU basis, so it is done with
* this file here. */
+#ifdef _WIN64
+#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG_LONG)
+#else
#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG)
-
+#endif
diff --git a/mpi/mpi-internal.h b/mpi/mpi-internal.h
index e75b7c6..a0f45e4 100644
--- a/mpi/mpi-internal.h
+++ b/mpi/mpi-internal.h
@@ -168,6 +168,12 @@ typedef int mpi_size_t; /* (must be a signed type) */
} while (0)
+#ifdef _WIN64
+#define ATTR_ABI __attribute__ ((sysv_abi))
+#else
+#define ATTR_ABI
+#endif
+
/*-- mpiutil.c --*/
#define mpi_alloc_limb_space(n,f) _gcry_mpi_alloc_limb_space((n),(f))
mpi_ptr_t _gcry_mpi_alloc_limb_space( unsigned nlimbs, int sec );
@@ -186,7 +192,7 @@ void _gcry_mpi_lshift_limbs( gcry_mpi_t a, unsigned int count );
mpi_limb_t _gcry_mpih_add_1(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb );
mpi_limb_t _gcry_mpih_add_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_ptr_t s2_ptr, mpi_size_t size);
+ mpi_ptr_t s2_ptr, mpi_size_t size) ATTR_ABI;
mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
mpi_ptr_t s2_ptr, mpi_size_t s2_size);
@@ -194,7 +200,7 @@ mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_siz
mpi_limb_t _gcry_mpih_sub_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb );
mpi_limb_t _gcry_mpih_sub_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_ptr_t s2_ptr, mpi_size_t size);
+ mpi_ptr_t s2_ptr, mpi_size_t size) ATTR_ABI;
mpi_limb_t _gcry_mpih_sub(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
mpi_ptr_t s2_ptr, mpi_size_t s2_size);
@@ -216,9 +222,9 @@ struct karatsuba_ctx {
void _gcry_mpih_release_karatsuba_ctx( struct karatsuba_ctx *ctx );
mpi_limb_t _gcry_mpih_addmul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_size_t s1_size, mpi_limb_t s2_limb);
+ mpi_size_t s1_size, mpi_limb_t s2_limb) ATTR_ABI;
mpi_limb_t _gcry_mpih_submul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_size_t s1_size, mpi_limb_t s2_limb);
+ mpi_size_t s1_size, mpi_limb_t s2_limb) ATTR_ABI;
void _gcry_mpih_mul_n( mpi_ptr_t prodp, mpi_ptr_t up, mpi_ptr_t vp,
mpi_size_t size);
mpi_limb_t _gcry_mpih_mul( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t usize,
@@ -235,7 +241,7 @@ void _gcry_mpih_mul_karatsuba_case( mpi_ptr_t prodp,
/*-- mpih-mul_1.c (or xxx/cpu/ *.S) --*/
mpi_limb_t _gcry_mpih_mul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
- mpi_size_t s1_size, mpi_limb_t s2_limb);
+ mpi_size_t s1_size, mpi_limb_t s2_limb) ATTR_ABI;
/*-- mpih-div.c --*/
mpi_limb_t _gcry_mpih_mod_1(mpi_ptr_t dividend_ptr, mpi_size_t dividend_size,
@@ -249,9 +255,9 @@ mpi_limb_t _gcry_mpih_divmod_1( mpi_ptr_t quot_ptr,
/*-- mpih-shift.c --*/
mpi_limb_t _gcry_mpih_lshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
- unsigned cnt);
+ unsigned cnt) ATTR_ABI;
mpi_limb_t _gcry_mpih_rshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
- unsigned cnt);
+ unsigned cnt) ATTR_ABI;
/* Define stuff for longlong.h. */
diff --git a/random/rndw32.c b/random/rndw32.c
index d6c8e34..b3e34f9 100644
--- a/random/rndw32.c
+++ b/random/rndw32.c
@@ -886,7 +886,7 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t,
{
HANDLE handle;
FILETIME creationTime, exitTime, kernelTime, userTime;
- DWORD minimumWorkingSetSize, maximumWorkingSetSize;
+ SIZE_T minimumWorkingSetSize, maximumWorkingSetSize;
handle = GetCurrentThread ();
GetThreadTimes (handle, &creationTime, &exitTime,
diff --git a/src/libgcrypt.def b/src/libgcrypt.def
index 031b941..2f440c7 100644
--- a/src/libgcrypt.def
+++ b/src/libgcrypt.def
@@ -1,3 +1,4 @@
+EXPORTS
;; libgcrypt.defs - Exported symbols for W32
;; Copyright (C) 2003, 2007 Free Software Foundation, Inc.
;;
@@ -22,7 +23,6 @@
;; never be changed. Also check libgcrypt.vers and visibility.h.
-EXPORTS
gcry_check_version @1
gcry_control @2
--
1.8.4.5
|