forked from git-for-windows/MINGW-packages
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfix-mingw-w64-definitions.patch
215 lines (191 loc) · 7.43 KB
/
fix-mingw-w64-definitions.patch
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
diff -Naur blender/extern/libmv/libmv/numeric/numeric.h blender-pp/extern/libmv/libmv/numeric/numeric.h
--- blender/extern/libmv/libmv/numeric/numeric.h 2014-01-14 08:17:56.878600000 +0400
+++ blender-pp/extern/libmv/libmv/numeric/numeric.h 2014-01-14 07:08:38.425600000 +0400
@@ -33,7 +33,7 @@
#include <Eigen/QR>
#include <Eigen/SVD>
-#if !defined(__MINGW64__)
+#if !defined(__MINGW64_VERSION_MAJOR)
# if defined(_WIN32) || defined(__APPLE__) || \
defined(__FreeBSD__) || defined(__NetBSD__)
static void sincos(double x, double *sinx, double *cosx) {
@@ -41,7 +41,7 @@
*cosx = cos(x);
}
# endif
-#endif // !__MINGW64__
+#endif // !__MINGW64_VERSION_MAJOR
#if (defined(WIN32) || defined(WIN64)) && !defined(__MINGW32__)
inline long lround(double d) {
diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.cc blender-pp/extern/libmv/third_party/glog/src/windows/port.cc
--- blender/extern/libmv/third_party/glog/src/windows/port.cc 2014-01-14 08:17:57.112600000 +0400
+++ blender-pp/extern/libmv/third_party/glog/src/windows/port.cc 2014-01-14 07:08:38.441200000 +0400
@@ -56,7 +56,7 @@
return _vsnprintf(str, size-1, format, ap);
}
-#ifndef __MINGW64__
+#ifndef __MINGW64_VERSION_MAJOR
int snprintf(char *str, size_t size, const char *format, ...) {
va_list ap;
va_start(ap, format);
diff -Naur blender/extern/libmv/third_party/glog/src/windows/port.h blender-pp/extern/libmv/third_party/glog/src/windows/port.h
--- blender/extern/libmv/third_party/glog/src/windows/port.h 2014-01-14 08:17:57.112600000 +0400
+++ blender-pp/extern/libmv/third_party/glog/src/windows/port.h 2014-01-14 09:28:32.204400000 +0400
@@ -74,17 +74,19 @@
#pragma warning(disable:4244 4251 4355 4715 4800 4996)
/* file I/O */
-#define PATH_MAX 1024
#define access _access
#define getcwd _getcwd
#define open _open
#define read _read
#define write _write
-#define lseek _lseek
#define close _close
#define popen _popen
#define pclose _pclose
+#ifndef __MINGW64_VERSION_MAJOR
+#define lseek _lseek
+#define PATH_MAX 1024
#define R_OK 04 /* read-only (for access()) */
+#endif
#define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
#ifndef __MINGW32__
enum { STDIN_FILENO = 0, STDOUT_FILENO = 1, STDERR_FILENO = 2 };
@@ -126,7 +128,9 @@ extern int safe_vsnprintf(char *str, size_t size,
#define DEFAULT_TEMPLATE_ROOTDIR ".."
// ----------------------------------- SYSTEM/PROCESS
+#ifndef __MINGW64_VERSION_MAJOR
typedef int pid_t;
+#endif
#define getpid _getpid
#include <BaseTsd.h>
@@ -135,6 +139,7 @@ typedef SSIZE_T ssize_t;
#endif // _MSC_VER
// ----------------------------------- THREADS
+#if !defined(WIN_PTHREADS_H)
typedef DWORD pthread_t;
typedef DWORD pthread_key_t;
typedef LONG pthread_once_t;
@@ -158,6 +163,7 @@ inline struct tm* localtime_r(const time_t* timep, struct tm* result) {
return result;
#endif
}
+#endif
inline char* strerror_r(int errnum, char* buf, size_t buflen) {
#if __MINGW32__
--- blender/intern/cycles/util/util_optimization.h.orig 2014-01-16 13:42:33.581600000 +0400
+++ blender/intern/cycles/util/util_optimization.h 2014-01-16 13:48:43.330200000 +0400
@@ -76,7 +76,6 @@
* We assume __KERNEL_SSEX__ flags to have been defined at this point */
/* SSE intrinsics headers */
-#ifndef FREE_WINDOWS64
#ifdef _MSC_VER
#include <intrin.h>
@@ -95,17 +94,6 @@
#endif
-#else
-
-/* MinGW64 has conflicting declarations for these SSE headers in <windows.h>.
- * Since we can't avoid including <windows.h>, better only include that */
-#define NOGDI
-#define NOMINMAX
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-#endif
-
#endif
#endif
diff -Naur blender/intern/cycles/util/util_types.h blender-pp/intern/cycles/util/util_types.h
--- blender/intern/cycles/util/util_types.h 2014-01-14 08:17:57.658600000 +0400
+++ blender-pp/intern/cycles/util/util_types.h 2014-01-14 08:47:39.800000000 +0400
@@ -48,7 +48,7 @@
#define ccl_device_inline static inline __attribute__((always_inline))
#define ccl_align(...) __attribute__((aligned(__VA_ARGS__)))
-#ifndef FREE_WINDOWS64
+#ifndef __MINGW64_VERSION_MAJOR
#define __forceinline inline __attribute__((always_inline))
#endif
#define ccl_try_align(...) __attribute__((aligned(__VA_ARGS__)))
diff -Naur blender/intern/ghost/intern/GHOST_SystemWin32.cpp blender-pp/intern/ghost/intern/GHOST_SystemWin32.cpp
--- blender/intern/ghost/intern/GHOST_SystemWin32.cpp 2014-01-14 08:17:57.767800000 +0400
+++ blender-pp/intern/ghost/intern/GHOST_SystemWin32.cpp 2014-01-14 07:08:38.441200000 +0400
@@ -828,7 +828,7 @@
// send motion. Mark as 'sent' so motion will always get dispatched.
eventSent = true;
-#if defined(_MSC_VER) || defined(FREE_WINDOWS64)
+#if defined(_MSC_VER) || defined(FREE_WINDOWS64) || defined(__MINGW64_VERSION_MAJOR)
// using Microsoft compiler & header files
// they invented the RawInput API, so this version is (probably) correct.
// MinGW64 also works fine with this
diff -Naur blender/intern/ghost/intern/GHOST_SystemWin32.h blender-pp/intern/ghost/intern/GHOST_SystemWin32.h
--- blender/intern/ghost/intern/GHOST_SystemWin32.h 2014-01-14 08:17:57.767800000 +0400
+++ blender-pp/intern/ghost/intern/GHOST_SystemWin32.h 2014-01-14 07:08:38.456800000 +0400
@@ -37,7 +37,7 @@
#error WIN32 only!
#endif // WIN32
-#ifndef __MINGW64__
+#ifndef __MINGW64_VERSION_MAJOR
#define _WIN32_WINNT 0x501 // require Windows XP or newer
#endif
#define WIN32_LEAN_AND_MEAN
diff -Naur blender/intern/ghost/intern/GHOST_TaskbarWin32.h blender-pp/intern/ghost/intern/GHOST_TaskbarWin32.h
--- blender/intern/ghost/intern/GHOST_TaskbarWin32.h 2014-01-14 08:17:57.783400000 +0400
+++ blender-pp/intern/ghost/intern/GHOST_TaskbarWin32.h 2014-01-14 07:08:38.456800000 +0400
@@ -8,7 +8,7 @@
#error WIN32 only!
#endif // WIN32
-#ifndef __MINGW64__
+#ifndef __MINGW64_VERSION_MAJOR
#define _WIN32_WINNT 0x501 // require Windows XP or newer
#endif
#define WIN32_LEAN_AND_MEAN
diff -Naur blender/intern/ghost/intern/GHOST_WindowWin32.cpp blender-pp/intern/ghost/intern/GHOST_WindowWin32.cpp
--- blender/intern/ghost/intern/GHOST_WindowWin32.cpp 2014-01-14 08:17:57.783400000 +0400
+++ blender-pp/intern/ghost/intern/GHOST_WindowWin32.cpp 2014-01-14 07:08:38.456800000 +0400
@@ -29,6 +29,12 @@
*/
#define _USE_MATH_DEFINES
+
+#if defined(WITH_GL_EGL)
+# include "GHOST_ContextEGL.h"
+#else
+# include "GHOST_ContextWGL.h"
+#endif
#include "GHOST_WindowWin32.h"
#include "GHOST_SystemWin32.h"
@@ -36,12 +41,6 @@
#include "GHOST_ContextNone.h"
#include "utfconv.h"
#include "utf_winfunc.h"
-
-#if defined(WITH_GL_EGL)
-# include "GHOST_ContextEGL.h"
-#else
-# include "GHOST_ContextWGL.h"
-#endif
#include <math.h>
diff -Naur blender/source/blender/blenlib/BLI_winstuff.h blender-pp/source/blender/blenlib/BLI_winstuff.h
--- blender/source/blender/blenlib/BLI_winstuff.h 2014-01-14 08:18:15.661000000 +0400
+++ blender-pp/source/blender/blenlib/BLI_winstuff.h 2014-01-14 07:08:38.456800000 +0400
@@ -92,7 +92,9 @@
#endif
/* defines for using ISO C++ conformant names */
+#ifndef __MINGW32__
#define snprintf _snprintf
+#endif
#if defined(_MSC_VER) || (defined(FREE_WINDOWS) && !defined(FREE_WINDOWS64))
# define R_OK 4
@@ -115,9 +117,9 @@
# define tell(fd) _telli64(fd)
#endif
-/* mingw using _SSIZE_T_ to declare ssize_t type */
-#ifndef _SSIZE_T_
-# define _SSIZE_T_
+/* mingw using _SSIZE_T_DEFINED to declare ssize_t type */
+#ifndef _SSIZE_T_DEFINED
+# define _SSIZE_T_DEFINED
/* python uses HAVE_SSIZE_T */
# ifndef HAVE_SSIZE_T
# define HAVE_SSIZE_T 1