aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/pkgconf/pkgconf/0001-Minimal-tweaks-to-compile-with-Visual-C-2015.patch
blob: 3805ad3ebda00becb799df4d1148981151722888 (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
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
216
217
218
219
220
221
222
223
224
From 4d7b4d7c8e9966c593f472355607204c6c80fecb Mon Sep 17 00:00:00 2001
From: Dan Kegel <dank@kegel.com>
Date: Sun, 4 Jun 2017 19:19:55 -0700
Subject: [PATCH] Minimal tweaks to compile with Visual C 2015

Upstream-Status: Backport

Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 getopt_long.c           |  2 ++
 libpkgconf/bsdstubs.c   |  1 +
 libpkgconf/libpkgconf.h |  2 +-
 libpkgconf/path.c       | 10 +++++-----
 libpkgconf/pkg.c        | 28 +++++++++++++++++++---------
 libpkgconf/stdinc.h     |  9 +++++++--
 6 files changed, 35 insertions(+), 17 deletions(-)

diff --git a/getopt_long.c b/getopt_long.c
index afeb68d..5ce9bfd 100644
--- a/getopt_long.c
+++ b/getopt_long.c
@@ -62,7 +62,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#ifndef _WIN32
 #include <unistd.h>
+#endif
 
 #define PKGCONF_HACK_LOGICAL_OR_ALL_VALUES
 
diff --git a/libpkgconf/bsdstubs.c b/libpkgconf/bsdstubs.c
index 8f70ff3..2c000ac 100644
--- a/libpkgconf/bsdstubs.c
+++ b/libpkgconf/bsdstubs.c
@@ -17,6 +17,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <stdlib.h>
 #include <sys/types.h>
 #include <string.h>
 
diff --git a/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf.h
index 404bf0c..551d85d 100644
--- a/libpkgconf/libpkgconf.h
+++ b/libpkgconf/libpkgconf.h
@@ -310,7 +310,7 @@ void pkgconf_audit_log_dependency(pkgconf_client_t *client, const pkgconf_pkg_t
 /* path.c */
 void pkgconf_path_add(const char *text, pkgconf_list_t *dirlist, bool filter);
 size_t pkgconf_path_split(const char *text, pkgconf_list_t *dirlist, bool filter);
-size_t pkgconf_path_build_from_environ(const char *environ, const char *fallback, pkgconf_list_t *dirlist, bool filter);
+size_t pkgconf_path_build_from_environ(const char *envvarname, const char *fallback, pkgconf_list_t *dirlist, bool filter);
 bool pkgconf_path_match_list(const char *path, const pkgconf_list_t *dirlist);
 void pkgconf_path_free(pkgconf_list_t *dirlist);
 bool pkgconf_path_relocate(char *buf, size_t buflen);
diff --git a/libpkgconf/path.c b/libpkgconf/path.c
index dddb3bf..59e003e 100644
--- a/libpkgconf/path.c
+++ b/libpkgconf/path.c
@@ -20,7 +20,7 @@
 # include <sys/cygwin.h>
 #endif
 
-#ifdef HAVE_SYS_STAT_H
+#if defined(HAVE_SYS_STAT_H) && ! defined(_WIN32)
 # include <sys/stat.h>
 # define PKGCONF_CACHE_INODES
 #endif
@@ -156,12 +156,12 @@ pkgconf_path_split(const char *text, pkgconf_list_t *dirlist, bool filter)
 /*
  * !doc
  *
- * .. c:function:: size_t pkgconf_path_build_from_environ(const char *environ, const char *fallback, pkgconf_list_t *dirlist)
+ * .. c:function:: size_t pkgconf_path_build_from_environ(const char *envvarname, const char *fallback, pkgconf_list_t *dirlist)
  *
  *    Adds the paths specified in an environment variable to a path list.  If the environment variable is not set,
  *    an optional default set of paths is added.
  *
- *    :param char* environ: The environment variable to look up.
+ *    :param char* envvarname: The environment variable to look up.
  *    :param char* fallback: The fallback paths to use if the environment variable is not set.
  *    :param pkgconf_list_t* dirlist: The path list to add the path nodes to.
  *    :param bool filter: Whether to perform duplicate filtering.
@@ -169,11 +169,11 @@ pkgconf_path_split(const char *text, pkgconf_list_t *dirlist, bool filter)
  *    :rtype: size_t
  */
 size_t
-pkgconf_path_build_from_environ(const char *environ, const char *fallback, pkgconf_list_t *dirlist, bool filter)
+pkgconf_path_build_from_environ(const char *envvarname, const char *fallback, pkgconf_list_t *dirlist, bool filter)
 {
 	const char *data;
 
-	data = getenv(environ);
+	data = getenv(envvarname);
 	if (data != NULL)
 		return pkgconf_path_split(data, dirlist, filter);
 
diff --git a/libpkgconf/pkg.c b/libpkgconf/pkg.c
index 7aebd61..5dacae3 100644
--- a/libpkgconf/pkg.c
+++ b/libpkgconf/pkg.c
@@ -30,6 +30,8 @@
 #	define PKG_CONFIG_REG_KEY "Software\\pkgconfig\\PKG_CONFIG_PATH"
 #	undef PKG_DEFAULT_PATH
 #	define PKG_DEFAULT_PATH "../lib/pkgconfig;../share/pkgconfig"
+#define strncasecmp _strnicmp
+#define strcasecmp _stricmp
 #endif
 
 #define PKG_CONFIG_EXT		".pc"
@@ -134,21 +136,21 @@ static int pkgconf_pkg_parser_keyword_pair_cmp(const void *key, const void *ptr)
 static void
 pkgconf_pkg_parser_tuple_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value)
 {
-	char **dest = ((void *) pkg + offset);
+	char **dest = (char **)((char *) pkg + offset);
 	*dest = pkgconf_tuple_parse(client, &pkg->vars, value);
 }
 
 static void
 pkgconf_pkg_parser_fragment_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value)
 {
-	pkgconf_list_t *dest = ((void *) pkg + offset);
+	pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset);
 	pkgconf_fragment_parse(client, dest, &pkg->vars, value);
 }
 
 static void
 pkgconf_pkg_parser_dependency_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value)
 {
-	pkgconf_list_t *dest = ((void *) pkg + offset);
+	pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset);
 	pkgconf_dependency_parse(client, pkg, dest, value);
 }
 
@@ -238,7 +240,7 @@ pkgconf_pkg_validate(const pkgconf_client_t *client, const pkgconf_pkg_t *pkg)
 
 	for (i = 0; i < PKGCONF_ARRAY_SIZE(pkgconf_pkg_validations); i++)
 	{
-		char **p = ((void *) pkg + pkgconf_pkg_validations[i].offset);
+		char **p = (char **)((char *) pkg + pkgconf_pkg_validations[i].offset);
 
 		if (*p != NULL)
 			continue;
@@ -587,7 +589,7 @@ pkgconf_scan_all(pkgconf_client_t *client, void *data, pkgconf_pkg_iteration_fun
 
 #ifdef _WIN32
 static pkgconf_pkg_t *
-pkgconf_pkg_find_in_registry_key(const pkgconf_client_t *client, HKEY hkey, const char *name)
+pkgconf_pkg_find_in_registry_key(pkgconf_client_t *client, HKEY hkey, const char *name)
 {
 	pkgconf_pkg_t *pkg = NULL;
 
@@ -1048,8 +1050,12 @@ typedef struct {
 
 static const pkgconf_pkg_provides_vermatch_rule_t pkgconf_pkg_provides_vermatch_rules[] = {
 	[PKGCONF_CMP_ANY] = {
-		.rulecmp = {},
-		.depcmp = {},
+		.rulecmp = {
+			[PKGCONF_CMP_ANY]			= pkgconf_pkg_comparator_none,
+                },
+		.depcmp = {
+			[PKGCONF_CMP_ANY]			= pkgconf_pkg_comparator_none,
+                },
 	},
 	[PKGCONF_CMP_LESS_THAN] = {
 		.rulecmp = {
@@ -1121,7 +1127,9 @@ static const pkgconf_pkg_provides_vermatch_rule_t pkgconf_pkg_provides_vermatch_
 			[PKGCONF_CMP_EQUAL]			= pkgconf_pkg_comparator_eq,
 			[PKGCONF_CMP_NOT_EQUAL]			= pkgconf_pkg_comparator_ne
 		},
-		.depcmp = {},
+		.depcmp = {
+			[PKGCONF_CMP_ANY]			= pkgconf_pkg_comparator_none,
+                },
 	},
 	[PKGCONF_CMP_NOT_EQUAL] = {
 		.rulecmp = {
@@ -1133,7 +1141,9 @@ static const pkgconf_pkg_provides_vermatch_rule_t pkgconf_pkg_provides_vermatch_
 			[PKGCONF_CMP_EQUAL]			= pkgconf_pkg_comparator_ne,
 			[PKGCONF_CMP_NOT_EQUAL]			= pkgconf_pkg_comparator_eq
 		},
-		.depcmp = {},
+		.depcmp = {
+			[PKGCONF_CMP_ANY]			= pkgconf_pkg_comparator_none,
+                },
 	},
 };
 
diff --git a/libpkgconf/stdinc.h b/libpkgconf/stdinc.h
index 58cc6c7..ac7e53c 100644
--- a/libpkgconf/stdinc.h
+++ b/libpkgconf/stdinc.h
@@ -24,9 +24,7 @@
 #include <stdbool.h>
 #include <stdarg.h>
 #include <string.h>
-#include <dirent.h>
 #include <sys/types.h>
-#include <unistd.h>
 #include <stdint.h>
 
 #ifdef _WIN32
@@ -34,8 +32,15 @@
 # include <windows.h>
 # include <malloc.h>
 # define PATH_DEV_NULL	"nul"
+# ifndef ssize_t
+#  include <BaseTsd.h>
+#  define ssize_t SSIZE_T
+# endif
+# include "win-dirent.h"
 #else
 # define PATH_DEV_NULL	"/dev/null"
+# include <dirent.h>
+# include <unistd.h>
 #endif
 
 #endif
-- 
2.4.0