summaryrefslogtreecommitdiff
path: root/libmysqlclient/mingw.patch
blob: 5b72872f3a98d0c65396d0bd6870e8d1c3e2f1e2 (plain)
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
diff --git a/libmysqlclient/mysql/mysql/m_ctype.h b/libmysqlclient/mysql/mysql/m_ctype.h
index d59bb12..a0afe7a 100644
--- a/libmysqlclient/mysql/mysql/m_ctype.h
+++ b/libmysqlclient/mysql/mysql/m_ctype.h
@@ -235,7 +235,7 @@ typedef struct MY_COLLATION_HANDLER {
                  const char *wildstr, const char *wildend, int escape,
                  int w_one, int w_many);
 
-  int (*strcasecmp)(const CHARSET_INFO *, const char *, const char *);
+  int (*strcasecmp_)(const CHARSET_INFO *, const char *, const char *);
 
   uint (*strstr)(const CHARSET_INFO *, const char *b, size_t b_length,
                  const char *s, size_t s_length, my_match_t *match,
@@ -681,7 +681,7 @@ values < 0x7F. */
   ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j)))
 #define my_wildcmp(cs, s, se, w, we, e, o, m) \
   ((cs)->coll->wildcmp((cs), (s), (se), (w), (we), (e), (o), (m)))
-#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b)))
+#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp_((s), (a), (b)))
 #define my_charpos(cs, b, e, num) \
   (cs)->cset->charpos((cs), (const char *)(b), (const char *)(e), (num))
 
diff --git a/libmysqlclient/mysql/mysql/my_dir.h b/libmysqlclient/mysql/mysql/my_dir.h
index c179ad8..c4656b7 100644
--- a/libmysqlclient/mysql/mysql/my_dir.h
+++ b/libmysqlclient/mysql/mysql/my_dir.h
@@ -36,9 +36,11 @@
 /* Defines for my_dir and my_stat */
 
 #ifdef _WIN32
+#ifndef __MINGW32__
 #define S_IROTH _S_IREAD
 #define S_IFIFO _S_IFIFO
 #endif
+#endif
 
 #define MY_S_IFMT S_IFMT     /* type of file */
 #define MY_S_IFDIR S_IFDIR   /* directory */
diff --git a/libmysqlclient/mysql/mysql/mysql/components/services/my_io_bits.h b/libmysqlclient/mysql/mysql/mysql/components/services/my_io_bits.h
index f561189..270d859 100644
--- a/libmysqlclient/mysql/mysql/mysql/components/services/my_io_bits.h
+++ b/libmysqlclient/mysql/mysql/mysql/components/services/my_io_bits.h
@@ -49,8 +49,12 @@
 
 typedef int File; /* File descriptor */
 #ifdef _WIN32
+#ifdef __MINGW32__
+typedef mode_t MY_MODE;
+#else
 typedef int MY_MODE;
 typedef int mode_t;
+#endif
 typedef int socket_len_t;
 typedef SOCKET my_socket;
 #else
diff --git a/libmysqlclient/mysql/mysys/my_thr_init.cc b/libmysqlclient/mysql/mysys/my_thr_init.cc
index b041de3..ba10464 100644
--- a/libmysqlclient/mysql/mysys/my_thr_init.cc
+++ b/libmysqlclient/mysql/mysys/my_thr_init.cc
@@ -373,7 +373,13 @@ static void my_sigabrt_handler(int sig) { __debugbreak(); }
 
 static void install_sigabrt_handler() {
   /*abort() should not override our exception filter*/
+
+  // Requires msvcrt90 or later but forcing this in a library is
+  // probably not a good idea.
+  //
+#ifndef __MINGW32__
   _set_abort_behavior(0, _CALL_REPORTFAULT);
+#endif
   signal(SIGABRT, my_sigabrt_handler);
 }
 #endif
diff --git a/libmysqlclient/mysql/mysys/stacktrace.cc b/libmysqlclient/mysql/mysys/stacktrace.cc
index c941bf7..9f7e443 100644
--- a/libmysqlclient/mysql/mysys/stacktrace.cc
+++ b/libmysqlclient/mysql/mysys/stacktrace.cc
@@ -536,12 +536,16 @@ void my_create_minidump(const char *name, HANDLE process, DWORD pid) {
 }
 
 void my_safe_puts_stderr(const char *val, size_t len) {
+#ifndef __MINGW32__
   __try {
+#endif
     my_write_stderr(val, len);
     my_safe_printf_stderr("%s", "\n");
+#ifndef __MINGW32__
   } __except (EXCEPTION_EXECUTE_HANDLER) {
     my_safe_printf_stderr("%s", "is an invalid string pointer\n");
   }
+#endif
 }
 #endif /* _WIN32 */