summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2021-05-07 13:49:59 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-05-09 23:30:16 +0100
commit3f93502b27c04ea1fc1c44355a537c04166149f0 (patch)
tree7ce93240f0b233600aa094d9cf9c2163eee52b58
parent48c64d609bcc8066c81898bce9e6e935b3dc1756 (diff)
downloadpoky-3f93502b27c04ea1fc1c44355a537c04166149f0.tar.gz
swig: Upgrade to 4.0.2
Drop backports and refresh patches to apply on 4.x series (From OE-Core rev: 5c7923e79c2411a0a36e540a8b894d399ad04aa7) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch330
-rw-r--r--meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch179
-rw-r--r--meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch13
-rw-r--r--meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch7
-rw-r--r--meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch191
-rw-r--r--meta/recipes-devtools/swig/swig/determinism.patch8
-rw-r--r--meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch36
-rw-r--r--meta/recipes-devtools/swig/swig_3.0.12.bb13
-rw-r--r--meta/recipes-devtools/swig/swig_4.0.2.bb7
9 files changed, 15 insertions, 769 deletions
diff --git a/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch b/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch
deleted file mode 100644
index 885c395614..0000000000
--- a/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch
+++ /dev/null
@@ -1,330 +0,0 @@
1From 1a5aadcd66e85c63d228bfd811a521d617c22a38 Mon Sep 17 00:00:00 2001
2From: Patrick Schneider <patrick.schneider@meetnow.eu>
3Date: Thu, 13 Apr 2017 15:02:53 +0200
4Subject: [PATCH] Add Node 7.x aka V8 5.2+ support
5
6* Use WeakCallbackInfo instead of WeakCallbackData
7* Use GetPrivate instead of GetHiddenValue
8* Adopted new signature for SetWeak to support destructor calling
9* SetAccessor deprecation fixed
10* Proper version checks where applicable
11
12Upstream-Status: Submitted [https://github.com/swig/swig/pull/968]
13
14Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
15---
16 Lib/javascript/v8/javascriptcode.swg | 27 +++++++++++++++++-----
17 Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++---
18 Lib/javascript/v8/javascriptinit.swg | 16 +++++++++++--
19 Lib/javascript/v8/javascriptrun.swg | 40 ++++++++++++++++++++++++++++-----
20 4 files changed, 95 insertions(+), 17 deletions(-)
21
22diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
23index fb7d55c..b8c5089 100644
24--- a/Lib/javascript/v8/javascriptcode.swg
25+++ b/Lib/javascript/v8/javascriptcode.swg
26@@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
27 SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
28 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
29 static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
30-#else
31+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
32 static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
33 v8::Local<v8::Object> object = data.GetValue();
34 SWIGV8_Proxy *proxy = data.GetParameter();
35+#else
36+ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
37+ SWIGV8_Proxy *proxy = data.GetParameter();
38 #endif
39
40 if(proxy->swigCMemOwn && proxy->swigCObject) {
41@@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
42 }
43 delete proxy;
44
45+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
46 object.Clear();
47+#endif
48
49 #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
50 object.Dispose();
51@@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
52 object.Dispose(isolate);
53 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
54 object->Dispose(isolate);
55-#else
56+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
57 object->Dispose();
58 #endif
59 }
60@@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
61 SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
62 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
63 static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
64-#else
65+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
66 static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
67 v8::Local<v8::Object> object = data.GetValue();
68 SWIGV8_Proxy *proxy = data.GetParameter();
69+#else
70+static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
71+ SWIGV8_Proxy *proxy = data.GetParameter();
72 #endif
73
74 if(proxy->swigCMemOwn && proxy->swigCObject) {
75@@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
76 object->Dispose(isolate);
77 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
78 object->Dispose();
79-#else
80+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
81 object.Clear();
82 #endif
83 }
84@@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
85 * ----------------------------------------------------------------------------- */
86 %fragment("js_getter", "templates")
87 %{
88+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
89 static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
90+#else
91+static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
92+#endif
93 SWIGV8_HANDLESCOPE();
94
95 v8::Handle<v8::Value> jsresult;
96@@ -233,8 +245,11 @@ fail:
97 * ----------------------------------------------------------------------------- */
98 %fragment("js_setter", "templates")
99 %{
100-static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value,
101- const SwigV8PropertyCallbackInfoVoid &info) {
102+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
103+static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
104+#else
105+static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
106+#endif
107 SWIGV8_HANDLESCOPE();
108
109 $jslocals
110diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
111index 091467d..7461079 100644
112--- a/Lib/javascript/v8/javascripthelpers.swg
113+++ b/Lib/javascript/v8/javascripthelpers.swg
114@@ -6,11 +6,16 @@ typedef v8::InvocationCallback SwigV8FunctionCallback;
115 typedef v8::AccessorGetter SwigV8AccessorGetterCallback;
116 typedef v8::AccessorSetter SwigV8AccessorSetterCallback;
117 typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid;
118-#else
119+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
120 typedef v8::FunctionCallback SwigV8FunctionCallback;
121 typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback;
122 typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback;
123 typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
124+#else
125+typedef v8::FunctionCallback SwigV8FunctionCallback;
126+typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback;
127+typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback;
128+typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid;
129 #endif
130
131 /**
132@@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
133 */
134 SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
135 SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
136+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
137 obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
138+#else
139+ obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
140+#endif
141 }
142
143-SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value,
144- const SwigV8PropertyCallbackInfoVoid& info)
145+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
146+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
147+#else
148+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
149+#endif
150 {
151 char buffer[256];
152 char msg[512];
153 int res;
154
155+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
156 property->WriteUtf8(buffer, 256);
157 res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
158+#else
159+ v8::Local<v8::String> sproperty;
160+ if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) {
161+ sproperty->WriteUtf8(buffer, 256);
162+ res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
163+ }
164+ else {
165+ res = -1;
166+ }
167+#endif
168
169 if(res<0) {
170 SWIG_exception(SWIG_ERROR, "Tried to write read-only variable.");
171diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
172index 34befa7..86008d9 100644
173--- a/Lib/javascript/v8/javascriptinit.swg
174+++ b/Lib/javascript/v8/javascriptinit.swg
175@@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
176 v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
177 v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
178 assert(!mod.IsEmpty());
179+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
180 global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
181+#else
182+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
183+ global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod);
184+#endif
185 }
186
187 SWIGRUNTIME swig_module_info *
188 SWIG_V8_GetModule(void *) {
189 v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
190+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
191 v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
192+#else
193+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
194+ v8::Local<v8::Value> moduleinfo;
195+ if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo))
196+ return 0;
197+#endif
198
199- if (moduleinfo.IsEmpty())
200+ if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined())
201 {
202 // It's not yet loaded
203 return 0;
204@@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) {
205
206 v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo);
207
208- if (moduleinfo_extern.IsEmpty())
209+ if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined())
210 {
211 // Something's not right
212 return 0;
213diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
214index 5ac52a5..30002c0 100644
215--- a/Lib/javascript/v8/javascriptrun.swg
216+++ b/Lib/javascript/v8/javascriptrun.swg
217@@ -193,8 +193,10 @@ public:
218 void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
219 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
220 void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
221-#else
222+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
223 void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
224+#else
225+ void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
226 #endif
227 };
228
229@@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
230 SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
231 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
232 SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
233-#else
234+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
235 SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
236 SWIGV8_Proxy *proxy = data.GetParameter();
237+#else
238+SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
239+ SWIGV8_Proxy *proxy = data.GetParameter();
240 #endif
241
242 delete proxy;
243@@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
244 } else {
245 cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
246 }
247-#else
248+#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
249 if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
250 cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
251 } else {
252 cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor);
253 }
254+#else
255+ if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
256+ cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter);
257+ } else {
258+ cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter);
259+ }
260 #endif
261
262 #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
263@@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
264
265 v8::Handle<v8::Object> objRef = valRef->ToObject();
266 if(objRef->InternalFieldCount() < 1) return false;
267+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
268 v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
269+#else
270+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
271+ v8::Local<v8::Value> flag;
272+ if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag))
273+ return false;
274+#endif
275 return (flag->IsBoolean() && flag->BooleanValue());
276 }
277
278@@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
279 SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
280 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
281 SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
282-#else
283+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
284 SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
285 v8::Local<v8::Object> object = data.GetValue();
286 SwigV8PackedData *cdata = data.GetParameter();
287+#else
288+SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) {
289+ SwigV8PackedData *cdata = data.GetParameter();
290 #endif
291
292 delete cdata;
293@@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob
294 object->Dispose(isolate);
295 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
296 object->Dispose();
297-#else
298+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
299 object.Clear();
300 #endif
301 }
302@@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
303 // v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
304 v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
305
306+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
307 obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
308+#else
309+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
310+ obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true));
311+#endif
312
313 #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511)
314 obj->SetPointerInInternalField(0, cdata);
315@@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
316 cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
317 #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
318 cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
319-#else
320+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
321 cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
322 // v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
323+#else
324+ cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter);
325 #endif
326
327 #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
328--
3292.9.5
330
diff --git a/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch b/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch
deleted file mode 100644
index f4ed782a82..0000000000
--- a/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch
+++ /dev/null
@@ -1,179 +0,0 @@
1From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
2From: William S Fulton <wsf@fultondesigns.co.uk>
3Date: Sun, 17 Sep 2017 19:02:55 +0100
4Subject: [PATCH 1/2] Fix generated code for constant expressions containing
5 wchar_t L literals.
6
7Such as:
8 # define __WCHAR_MAX (0x7fffffff + L'\0')
9
10Reported on swig-user mailing list.
11---
12 CHANGES.current | 5 +++++
13 Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
14 Examples/test-suite/csharp/preproc_constants_runme.cs | 2 ++
15 Examples/test-suite/d/preproc_constants_c_runme.1.d | 2 ++
16 Examples/test-suite/d/preproc_constants_c_runme.2.d | 2 ++
17 Examples/test-suite/d/preproc_constants_runme.1.d | 2 ++
18 Examples/test-suite/d/preproc_constants_runme.2.d | 2 ++
19 Examples/test-suite/php/preproc_constants_c_runme.php | 2 ++
20 Examples/test-suite/php/preproc_constants_runme.php | 2 ++
21 Examples/test-suite/php5/preproc_constants_c_runme.php | 2 ++
22 Examples/test-suite/php5/preproc_constants_runme.php | 2 ++
23 Examples/test-suite/preproc_constants.i | 3 +++
24 Source/CParse/parser.y | 2 +-
25 13 files changed, 29 insertions(+), 2 deletions(-)
26
27Upstream-Status: Backport
28[https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6]
29Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
30
31diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
32index 76c684d..1c28e49 100644
33--- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
34+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
35@@ -61,7 +61,8 @@ public class runme {
36 assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
37 assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
38 assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
39-
40+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
41+ assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
42 }
43 static void assert(bool assertion) {
44 if (!assertion)
45diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
46index 9fae591..6b02e30 100644
47--- a/Examples/test-suite/csharp/preproc_constants_runme.cs
48+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
49@@ -60,6 +60,8 @@ public class runme {
50 assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
51 assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
52 assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
53+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
54+ assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
55
56 }
57 static void assert(bool assertion) {
58diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
59index d846c71..2b349af 100644
60--- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
61+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
62@@ -61,4 +61,6 @@ void main() {
63 static assert(is(int == typeof(EXPR_LAND())));
64 static assert(is(int == typeof(EXPR_LOR())));
65 static assert(is(double == typeof(EXPR_CONDITIONAL())));
66+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
67+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
68 }
69diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
70index 9bdbb93..1bac525 100644
71--- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
72+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
73@@ -61,4 +61,6 @@ void main() {
74 static assert(is(int == typeof(EXPR_LAND())));
75 static assert(is(int == typeof(EXPR_LOR())));
76 static assert(is(double == typeof(EXPR_CONDITIONAL())));
77+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
78+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
79 }
80diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
81index 009405f..f743f48 100644
82--- a/Examples/test-suite/d/preproc_constants_runme.1.d
83+++ b/Examples/test-suite/d/preproc_constants_runme.1.d
84@@ -60,4 +60,6 @@ void main() {
85 static assert(is(bool == typeof(EXPR_LAND())));
86 static assert(is(bool == typeof(EXPR_LOR())));
87 static assert(is(double == typeof(EXPR_CONDITIONAL())));
88+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
89+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
90 }
91diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
92index 2d92ef0..0d96c37 100644
93--- a/Examples/test-suite/d/preproc_constants_runme.2.d
94+++ b/Examples/test-suite/d/preproc_constants_runme.2.d
95@@ -60,4 +60,6 @@ void main() {
96 static assert(is(bool == typeof(EXPR_LAND())));
97 static assert(is(bool == typeof(EXPR_LOR())));
98 static assert(is(double == typeof(EXPR_CONDITIONAL())));
99+ static assert(is(int == typeof(EXPR_WCHAR_MAX())));
100+ static assert(is(int == typeof(EXPR_WCHAR_MIN())));
101 }
102diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
103index af9b76e..e59fe18 100644
104--- a/Examples/test-suite/php/preproc_constants_c_runme.php
105+++ b/Examples/test-suite/php/preproc_constants_c_runme.php
106@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
107 check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
108 check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
109 check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
110+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
111+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
112
113 ?>
114diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
115index 5c9119b..8e117ea 100644
116--- a/Examples/test-suite/php/preproc_constants_runme.php
117+++ b/Examples/test-suite/php/preproc_constants_runme.php
118@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
119 check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
120 check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
121 check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
122+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
123+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
124
125 ?>
126diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
127index 1ea0195..d978fab 100644
128--- a/Examples/test-suite/php5/preproc_constants_c_runme.php
129+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
130@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
131 check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
132 check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
133 check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
134+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
135+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
136
137 ?>
138diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
139index fb9ee4f..7527026 100644
140--- a/Examples/test-suite/php5/preproc_constants_runme.php
141+++ b/Examples/test-suite/php5/preproc_constants_runme.php
142@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
143 check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
144
145 check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
146+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
147+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
148
149 ?>
150diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
151index 3a999ad..16b44c9 100644
152--- a/Examples/test-suite/preproc_constants.i
153+++ b/Examples/test-suite/preproc_constants.i
154@@ -87,6 +87,9 @@
155 #define EXPR_LOR 0xFF || 1
156 #define EXPR_CONDITIONAL true ? 2 : 2.2
157
158+#define EXPR_WCHAR_MAX (0x7fffffff + L'\0')
159+#define EXPR_WCHAR_MIN (-EXPR_WCHAR_MAX - 1)
160+
161 #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
162 #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
163 #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
164diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
165index 2e92cd0..273dadb 100644
166--- a/Source/CParse/parser.y
167+++ b/Source/CParse/parser.y
168@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
169 * ----------------------------------------------------------------------------- */
170
171 static int promote_type(int t) {
172- if (t <= T_UCHAR || t == T_CHAR) return T_INT;
173+ if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
174 return t;
175 }
176
177--
1782.9.5
179
diff --git a/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch b/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
index 81df3e264f..f27f80ea18 100644
--- a/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
+++ b/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
@@ -13,13 +13,11 @@ http://sourceforge.net/mailarchive/message.php?msg_id=29179733
13 Source/Modules/main.cxx | 24 ++++++++++++++++++++++-- 13 Source/Modules/main.cxx | 24 ++++++++++++++++++++++--
14 1 file changed, 22 insertions(+), 2 deletions(-) 14 1 file changed, 22 insertions(+), 2 deletions(-)
15 15
16diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
17index d2f5d3b..cbb0a12 100644
18--- a/Source/Modules/main.cxx 16--- a/Source/Modules/main.cxx
19+++ b/Source/Modules/main.cxx 17+++ b/Source/Modules/main.cxx
20@@ -26,6 +26,11 @@ char cvsroot_main_cxx[] = "$Id$"; 18@@ -25,6 +25,11 @@
21 #include "cparse.h"
22 #include <ctype.h> 19 #include <ctype.h>
20 #include <errno.h>
23 #include <limits.h> // for INT_MAX 21 #include <limits.h> // for INT_MAX
24+#ifndef _WIN32 22+#ifndef _WIN32
25+#include <cstddef> 23+#include <cstddef>
@@ -29,7 +27,7 @@ index d2f5d3b..cbb0a12 100644
29 27
30 // Global variables 28 // Global variables
31 29
32@@ -902,9 +907,9 @@ int SWIG_main(int argc, char *argv[], Language *l) { 30@@ -934,9 +939,9 @@ int SWIG_main(int argc, char *argv[], co
33 31
34 // Check for SWIG_LIB environment variable 32 // Check for SWIG_LIB environment variable
35 if ((c = getenv("SWIG_LIB")) == (char *) 0) { 33 if ((c = getenv("SWIG_LIB")) == (char *) 0) {
@@ -40,7 +38,7 @@ index d2f5d3b..cbb0a12 100644
40 if (!(GetModuleFileName(0, buf, MAX_PATH) == 0 || (p = strrchr(buf, '\\')) == 0)) { 38 if (!(GetModuleFileName(0, buf, MAX_PATH) == 0 || (p = strrchr(buf, '\\')) == 0)) {
41 *(p + 1) = '\0'; 39 *(p + 1) = '\0';
42 SwigLib = NewStringf("%sLib", buf); // Native windows installation path 40 SwigLib = NewStringf("%sLib", buf); // Native windows installation path
43@@ -914,7 +919,22 @@ int SWIG_main(int argc, char *argv[], Language *l) { 41@@ -946,7 +951,22 @@ int SWIG_main(int argc, char *argv[], co
44 if (Len(SWIG_LIB_WIN_UNIX) > 0) 42 if (Len(SWIG_LIB_WIN_UNIX) > 0)
45 SwigLibWinUnix = NewString(SWIG_LIB_WIN_UNIX); // Unix installation path using a drive letter (for msys/mingw) 43 SwigLibWinUnix = NewString(SWIG_LIB_WIN_UNIX); // Unix installation path using a drive letter (for msys/mingw)
46 #else 44 #else
@@ -64,6 +62,3 @@ index d2f5d3b..cbb0a12 100644
64 #endif 62 #endif
65 } else { 63 } else {
66 SwigLib = NewString(c); 64 SwigLib = NewString(c);
67--
681.7.9.5
69
diff --git a/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch b/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
index 1b1128acab..114de7ed94 100644
--- a/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
+++ b/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
@@ -9,11 +9,9 @@ Upstream-Status: pending
9 configure.ac | 38 +++++++------------------------------- 9 configure.ac | 38 +++++++-------------------------------
10 1 file changed, 7 insertions(+), 31 deletions(-) 10 1 file changed, 7 insertions(+), 31 deletions(-)
11 11
12diff --git a/configure.ac b/configure.ac
13index 0c984b7..6edcec1 100644
14--- a/configure.ac 12--- a/configure.ac
15+++ b/configure.ac 13+++ b/configure.ac
16@@ -70,38 +70,14 @@ AC_MSG_RESULT([$with_pcre]) 14@@ -52,38 +52,14 @@ AC_MSG_RESULT([$with_pcre])
17 15
18 dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script 16 dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script
19 if test x"${with_pcre}" = xyes ; then 17 if test x"${with_pcre}" = xyes ; then
@@ -59,6 +57,3 @@ index 0c984b7..6edcec1 100644
59 57
60 58
61 dnl CCache 59 dnl CCache
62--
631.9.3
64
diff --git a/meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch b/meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch
deleted file mode 100644
index a91385916c..0000000000
--- a/meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch
+++ /dev/null
@@ -1,191 +0,0 @@
1From b6c0ef4b8f6e5c089ac7104b3aaba8f1d17b8b82 Mon Sep 17 00:00:00 2001
2From: Olly Betts <olly@survex.com>
3Date: Mon, 11 Jun 2018 15:51:53 +1200
4Subject: [PATCH] [Python] Fix new GCC8 warnings in generated code
5
6Avoid casts between incompatible function types where possible (when
7keyword args are in use, it is not possible to avoid such warnings as
8they are inherent in the design of Python's C API in that particular
9case). Fixes #1259.
10
11Upstream-Status: Backport
12[https://github.com/swig/swig/commit/7f9883011029674553a2a4b623d459f02b512458]
13
14Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
15---
16 Lib/python/pyinit.swg | 4 ++--
17 Lib/python/pyrun.swg | 34 ++++++++++++++++++++++++++--------
18 Source/Modules/python.cxx | 26 +++++++++++++-------------
19 3 files changed, 41 insertions(+), 23 deletions(-)
20
21diff --git a/Lib/python/pyinit.swg b/Lib/python/pyinit.swg
22index 2cc5828..6bf68c1 100644
23--- a/Lib/python/pyinit.swg
24+++ b/Lib/python/pyinit.swg
25@@ -368,8 +368,8 @@ SWIG_init(void) {
26 (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
27 };
28 static SwigPyGetSet thisown_getset_closure = {
29- (PyCFunction) SwigPyObject_own,
30- (PyCFunction) SwigPyObject_own
31+ SwigPyObject_own,
32+ SwigPyObject_own
33 };
34 static PyGetSetDef thisown_getset_def = {
35 (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
36diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
37index ab1237f..3d0b1b3 100644
38--- a/Lib/python/pyrun.swg
39+++ b/Lib/python/pyrun.swg
40@@ -465,6 +465,14 @@ SwigPyObject_repr(SwigPyObject *v, PyObject *args)
41 return repr;
42 }
43
44+/* We need a version taking two PyObject* parameters so it's a valid
45+ * PyCFunction to use in swigobject_methods[]. */
46+SWIGRUNTIME PyObject *
47+SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
48+{
49+ return SwigPyObject_repr((SwigPyObject*)v);
50+}
51+
52 SWIGRUNTIME int
53 SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
54 {
55@@ -594,11 +602,7 @@ SwigPyObject_append(PyObject* v, PyObject* next)
56 }
57
58 SWIGRUNTIME PyObject*
59-#ifdef METH_NOARGS
60-SwigPyObject_next(PyObject* v)
61-#else
62 SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
63-#endif
64 {
65 SwigPyObject *sobj = (SwigPyObject *) v;
66 if (sobj->next) {
67@@ -633,6 +637,20 @@ SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
68 return SWIG_Py_Void();
69 }
70
71+#ifdef METH_NOARGS
72+static PyObject*
73+SwigPyObject_disown2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
74+{
75+ return SwigPyObject_disown(v);
76+}
77+
78+static PyObject*
79+SwigPyObject_acquire2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
80+{
81+ return SwigPyObject_acquire(v);
82+}
83+#endif
84+
85 SWIGINTERN PyObject*
86 SwigPyObject_own(PyObject *v, PyObject *args)
87 {
88@@ -673,12 +691,12 @@ SwigPyObject_own(PyObject *v, PyObject *args)
89 #ifdef METH_O
90 static PyMethodDef
91 swigobject_methods[] = {
92- {(char *)"disown", (PyCFunction)SwigPyObject_disown, METH_NOARGS, (char *)"releases ownership of the pointer"},
93- {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS, (char *)"acquires ownership of the pointer"},
94+ {(char *)"disown", (PyCFunction)SwigPyObject_disown2, METH_NOARGS, (char *)"releases ownership of the pointer"},
95+ {(char *)"acquire", (PyCFunction)SwigPyObject_acquire2,METH_NOARGS, (char *)"acquires ownership of the pointer"},
96 {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
97 {(char *)"append", (PyCFunction)SwigPyObject_append, METH_O, (char *)"appends another 'this' object"},
98 {(char *)"next", (PyCFunction)SwigPyObject_next, METH_NOARGS, (char *)"returns the next 'this' object"},
99- {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_NOARGS, (char *)"returns object representation"},
100+ {(char *)"__repr__",(PyCFunction)SwigPyObject_repr2, METH_NOARGS, (char *)"returns object representation"},
101 {0, 0, 0, 0}
102 };
103 #else
104@@ -689,7 +707,7 @@ swigobject_methods[] = {
105 {(char *)"own", (PyCFunction)SwigPyObject_own, METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
106 {(char *)"append", (PyCFunction)SwigPyObject_append, METH_VARARGS, (char *)"appends another 'this' object"},
107 {(char *)"next", (PyCFunction)SwigPyObject_next, METH_VARARGS, (char *)"returns the next 'this' object"},
108- {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"},
109+ {(char *)"__repr__",(PyCFunction)SwigPyObject_repr, METH_VARARGS, (char *)"returns object representation"},
110 {0, 0, 0, 0}
111 };
112 #endif
113diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
114index a6801fc..72eaa77 100644
115--- a/Source/Modules/python.cxx
116+++ b/Source/Modules/python.cxx
117@@ -1109,7 +1109,7 @@ public:
118 * ------------------------------------------------------------ */
119 int add_pyinstancemethod_new() {
120 String *name = NewString("SWIG_PyInstanceMethod_New");
121- Printf(methods, "\t { (char *)\"%s\", (PyCFunction)%s, METH_O, NULL},\n", name, name);
122+ Printf(methods, "\t { \"%s\", %s, METH_O, NULL},\n", name, name);
123 Delete(name);
124 return 0;
125 }
126@@ -2479,17 +2479,17 @@ public:
127 if (!kw) {
128 if (n && funpack) {
129 if (num_required == 0 && num_arguments == 0) {
130- Printf(methods, "\t { (char *)\"%s\", (PyCFunction)%s, METH_NOARGS, ", name, function);
131+ Printf(methods, "\t { \"%s\", %s, METH_NOARGS, ", name, function);
132 } else if (num_required == 1 && num_arguments == 1) {
133- Printf(methods, "\t { (char *)\"%s\", (PyCFunction)%s, METH_O, ", name, function);
134+ Printf(methods, "\t { \"%s\", %s, METH_O, ", name, function);
135 } else {
136- Printf(methods, "\t { (char *)\"%s\", %s, METH_VARARGS, ", name, function);
137+ Printf(methods, "\t { \"%s\", %s, METH_VARARGS, ", name, function);
138 }
139 } else {
140- Printf(methods, "\t { (char *)\"%s\", %s, METH_VARARGS, ", name, function);
141+ Printf(methods, "\t { \"%s\", %s, METH_VARARGS, ", name, function);
142 }
143 } else {
144- Printf(methods, "\t { (char *)\"%s\", (PyCFunction) %s, METH_VARARGS | METH_KEYWORDS, ", name, function);
145+ Printf(methods, "\t { \"%s\", (PyCFunction)%s, METH_VARARGS|METH_KEYWORDS, ", name, function);
146 }
147
148 if (!n) {
149@@ -3857,7 +3857,7 @@ public:
150 if (shadow) {
151 if (builtin) {
152 String *rname = SwigType_namestr(real_classname);
153- Printf(builtin_methods, " { \"__disown__\", (PyCFunction) Swig::Director::swig_pyobj_disown< %s >, METH_NOARGS, \"\" },\n", rname);
154+ Printf(builtin_methods, " { \"__disown__\", Swig::Director::swig_pyobj_disown< %s >, METH_NOARGS, \"\" },\n", rname);
155 Delete(rname);
156 } else {
157 String *symname = Getattr(n, "sym:name");
158@@ -4694,13 +4694,13 @@ public:
159 int argcount = Getattr(n, "python:argcount") ? atoi(Char(Getattr(n, "python:argcount"))) : 2;
160 String *ds = have_docstring(n) ? cdocstring(n, AUTODOC_FUNC) : NewString("");
161 if (check_kwargs(n)) {
162- Printf(builtin_methods, " { \"%s\", (PyCFunction) %s, METH_VARARGS|METH_KEYWORDS, (char *) \"%s\" },\n", symname, wname, ds);
163+ Printf(builtin_methods, " { \"%s\", (PyCFunction)%s, METH_VARARGS|METH_KEYWORDS, \"%s\" },\n", symname, wname, ds);
164 } else if (argcount == 0) {
165- Printf(builtin_methods, " { \"%s\", (PyCFunction) %s, METH_NOARGS, (char *) \"%s\" },\n", symname, wname, ds);
166+ Printf(builtin_methods, " { \"%s\", %s, METH_NOARGS, \"%s\" },\n", symname, wname, ds);
167 } else if (argcount == 1) {
168- Printf(builtin_methods, " { \"%s\", (PyCFunction) %s, METH_O, (char *) \"%s\" },\n", symname, wname, ds);
169+ Printf(builtin_methods, " { \"%s\", %s, METH_O, \"%s\" },\n", symname, wname, ds);
170 } else {
171- Printf(builtin_methods, " { \"%s\", (PyCFunction) %s, METH_VARARGS, (char *) \"%s\" },\n", symname, wname, ds);
172+ Printf(builtin_methods, " { \"%s\", %s, METH_VARARGS, \"%s\" },\n", symname, wname, ds);
173 }
174 Delete(fullname);
175 Delete(wname);
176@@ -4801,10 +4801,10 @@ public:
177 Append(pyflags, "METH_VARARGS");
178 if (have_docstring(n)) {
179 String *ds = cdocstring(n, AUTODOC_STATICFUNC);
180- Printf(builtin_methods, " { \"%s\", (PyCFunction) %s, %s, (char *) \"%s\" },\n", symname, wname, pyflags, ds);
181+ Printf(builtin_methods, " { \"%s\", (PyCFunction)%s, %s, \"%s\" },\n", symname, wname, pyflags, ds);
182 Delete(ds);
183 } else {
184- Printf(builtin_methods, " { \"%s\", (PyCFunction) %s, %s, \"\" },\n", symname, wname, pyflags);
185+ Printf(builtin_methods, " { \"%s\", (PyCFunction)%s, %s, \"\" },\n", symname, wname, pyflags);
186 }
187 Delete(fullname);
188 Delete(wname);
189--
1902.7.4
191
diff --git a/meta/recipes-devtools/swig/swig/determinism.patch b/meta/recipes-devtools/swig/swig/determinism.patch
index 8ffb4bce8e..84c399182a 100644
--- a/meta/recipes-devtools/swig/swig/determinism.patch
+++ b/meta/recipes-devtools/swig/swig/determinism.patch
@@ -5,11 +5,9 @@ Upstream-Status: Inappropriate [OE reproducibiity fix upstream unlikely to take]
5RP 2021/3/1 5RP 2021/3/1
6 6
7 7
8Index: swig-3.0.12/Source/Modules/main.cxx 8--- a/Source/Modules/main.cxx
9=================================================================== 9+++ b/Source/Modules/main.cxx
10--- swig-3.0.12.orig/Source/Modules/main.cxx 10@@ -642,7 +642,6 @@ static void getoptions(int argc, char *a
11+++ swig-3.0.12/Source/Modules/main.cxx
12@@ -636,7 +636,6 @@ void SWIG_getoptions(int argc, char *arg
13 } 11 }
14 } else if (strcmp(argv[i], "-version") == 0) { 12 } else if (strcmp(argv[i], "-version") == 0) {
15 fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); 13 fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version());
diff --git a/meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch b/meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch
deleted file mode 100644
index 10e4afd1ba..0000000000
--- a/meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 9825fcbab5c4ddd867432f9922bebfbec7b78af0 Mon Sep 17 00:00:00 2001
2From: Mark Dufour <m.dufour@kopano.com>
3Date: Tue, 14 Feb 2017 10:34:37 +0100
4Subject: [PATCH] [Coverity] fix issue reported for SWIG_Python_FixMethods
5
6Fix Coverity issue reported for SWIG_Python_FixMethods:
7
8"buffer_size: Calling strncpy with a source string whose length
9(10 chars) is greater than or equal to the size argument (10)
10will fail to null-terminate buff."
11
12The issue is only reported for the "swig_ptr: " line, but for
13consistency we replace both occurrences of strncpy with memcpy.
14---
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16Upstream-Status: Backport [https://github.com/swig/swig/pull/898]
17
18 Lib/python/pyinit.swg | 4 ++--
19 1 file changed, 2 insertions(+), 2 deletions(-)
20
21Index: swig-3.0.12/Lib/python/pyinit.swg
22===================================================================
23--- swig-3.0.12.orig/Lib/python/pyinit.swg
24+++ swig-3.0.12/Lib/python/pyinit.swg
25@@ -306,9 +306,9 @@ SWIG_Python_FixMethods(PyMethodDef *meth
26 char *ndoc = (char*)malloc(ldoc + lptr + 10);
27 if (ndoc) {
28 char *buff = ndoc;
29- strncpy(buff, methods[i].ml_doc, ldoc);
30+ memcpy(buff, methods[i].ml_doc, ldoc);
31 buff += ldoc;
32- strncpy(buff, "swig_ptr: ", 10);
33+ memcpy(buff, "swig_ptr: ", 10);
34 buff += 10;
35 SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
36 methods[i].ml_doc = ndoc;
diff --git a/meta/recipes-devtools/swig/swig_3.0.12.bb b/meta/recipes-devtools/swig/swig_3.0.12.bb
deleted file mode 100644
index 090aaa8112..0000000000
--- a/meta/recipes-devtools/swig/swig_3.0.12.bb
+++ /dev/null
@@ -1,13 +0,0 @@
1require ${BPN}.inc
2
3SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \
4 file://0001-configure-use-pkg-config-for-pcre-detection.patch \
5 file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \
6 file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \
7 file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \
8 file://0001-Fix-generated-code-for-constant-expressions-containi.patch \
9 file://determinism.patch \
10 "
11SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c"
12SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d"
13
diff --git a/meta/recipes-devtools/swig/swig_4.0.2.bb b/meta/recipes-devtools/swig/swig_4.0.2.bb
new file mode 100644
index 0000000000..718ad89a5d
--- /dev/null
+++ b/meta/recipes-devtools/swig/swig_4.0.2.bb
@@ -0,0 +1,7 @@
1require ${BPN}.inc
2
3SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \
4 file://0001-configure-use-pkg-config-for-pcre-detection.patch \
5 file://determinism.patch \
6 "
7SRC_URI[sha256sum] = "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"