diff options
Diffstat (limited to 'meta/recipes-devtools/swig/swig')
4 files changed, 26 insertions, 463 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 @@ -From 1a5aadcd66e85c63d228bfd811a521d617c22a38 Mon Sep 17 00:00:00 2001 -From: Patrick Schneider <patrick.schneider@meetnow.eu> -Date: Thu, 13 Apr 2017 15:02:53 +0200 -Subject: [PATCH] Add Node 7.x aka V8 5.2+ support - -* Use WeakCallbackInfo instead of WeakCallbackData -* Use GetPrivate instead of GetHiddenValue -* Adopted new signature for SetWeak to support destructor calling -* SetAccessor deprecation fixed -* Proper version checks where applicable - -Upstream-Status: Submitted [https://github.com/swig/swig/pull/968] - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> ---- - Lib/javascript/v8/javascriptcode.swg | 27 +++++++++++++++++----- - Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++--- - Lib/javascript/v8/javascriptinit.swg | 16 +++++++++++-- - Lib/javascript/v8/javascriptrun.swg | 40 ++++++++++++++++++++++++++++----- - 4 files changed, 95 insertions(+), 17 deletions(-) - -diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg -index fb7d55c..b8c5089 100644 ---- a/Lib/javascript/v8/javascriptcode.swg -+++ b/Lib/javascript/v8/javascriptcode.swg -@@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v - SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) { --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { - v8::Local<v8::Object> object = data.GetValue(); - SWIGV8_Proxy *proxy = data.GetParameter(); -+#else -+ static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { -+ SWIGV8_Proxy *proxy = data.GetParameter(); - #endif - - if(proxy->swigCMemOwn && proxy->swigCObject) { -@@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat - } - delete proxy; - -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - object.Clear(); -+#endif - - #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) - object.Dispose(); -@@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat - object.Dispose(isolate); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100) - object->Dispose(isolate); --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - object->Dispose(); - #endif - } -@@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v - SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) { --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { - v8::Local<v8::Object> object = data.GetValue(); - SWIGV8_Proxy *proxy = data.GetParameter(); -+#else -+static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { -+ SWIGV8_Proxy *proxy = data.GetParameter(); - #endif - - if(proxy->swigCMemOwn && proxy->swigCObject) { -@@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat - object->Dispose(isolate); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - object->Dispose(); --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - object.Clear(); - #endif - } -@@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat - * ----------------------------------------------------------------------------- */ - %fragment("js_getter", "templates") - %{ -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) { -+#else -+static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) { -+#endif - SWIGV8_HANDLESCOPE(); - - v8::Handle<v8::Value> jsresult; -@@ -233,8 +245,11 @@ fail: - * ----------------------------------------------------------------------------- */ - %fragment("js_setter", "templates") - %{ --static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, -- const SwigV8PropertyCallbackInfoVoid &info) { -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) -+static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) { -+#else -+static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) { -+#endif - SWIGV8_HANDLESCOPE(); - - $jslocals -diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg -index 091467d..7461079 100644 ---- a/Lib/javascript/v8/javascripthelpers.swg -+++ b/Lib/javascript/v8/javascripthelpers.swg -@@ -6,11 +6,16 @@ typedef v8::InvocationCallback SwigV8FunctionCallback; - typedef v8::AccessorGetter SwigV8AccessorGetterCallback; - typedef v8::AccessorSetter SwigV8AccessorSetterCallback; - typedef v8::AccessorInfo SwigV8PropertyCallbackInfoVoid; --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - typedef v8::FunctionCallback SwigV8FunctionCallback; - typedef v8::AccessorGetterCallback SwigV8AccessorGetterCallback; - typedef v8::AccessorSetterCallback SwigV8AccessorSetterCallback; - typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid; -+#else -+typedef v8::FunctionCallback SwigV8FunctionCallback; -+typedef v8::AccessorNameGetterCallback SwigV8AccessorGetterCallback; -+typedef v8::AccessorNameSetterCallback SwigV8AccessorSetterCallback; -+typedef v8::PropertyCallbackInfo<void> SwigV8PropertyCallbackInfoVoid; - #endif - - /** -@@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char - */ - SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol, - SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) { -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter); -+#else -+ obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter); -+#endif - } - --SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, -- const SwigV8PropertyCallbackInfoVoid& info) -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) -+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info) -+#else -+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info) -+#endif - { - char buffer[256]; - char msg[512]; - int res; - -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - property->WriteUtf8(buffer, 256); - res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); -+#else -+ v8::Local<v8::String> sproperty; -+ if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) { -+ sproperty->WriteUtf8(buffer, 256); -+ res = sprintf(msg, "Tried to write read-only variable: %s.", buffer); -+ } -+ else { -+ res = -1; -+ } -+#endif - - if(res<0) { - SWIG_exception(SWIG_ERROR, "Tried to write read-only variable."); -diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg -index 34befa7..86008d9 100644 ---- a/Lib/javascript/v8/javascriptinit.swg -+++ b/Lib/javascript/v8/javascriptinit.swg -@@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) { - v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global(); - v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module); - assert(!mod.IsEmpty()); -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod); -+#else -+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data")); -+ global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod); -+#endif - } - - SWIGRUNTIME swig_module_info * - SWIG_V8_GetModule(void *) { - v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global(); -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data")); -+#else -+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data")); -+ v8::Local<v8::Value> moduleinfo; -+ if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo)) -+ return 0; -+#endif - -- if (moduleinfo.IsEmpty()) -+ if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined()) - { - // It's not yet loaded - return 0; -@@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) { - - v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo); - -- if (moduleinfo_extern.IsEmpty()) -+ if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined()) - { - // Something's not right - return 0; -diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg -index 5ac52a5..30002c0 100644 ---- a/Lib/javascript/v8/javascriptrun.swg -+++ b/Lib/javascript/v8/javascriptrun.swg -@@ -193,8 +193,10 @@ public: - void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy); --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data); -+#else -+ void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data); - #endif - }; - -@@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val - SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) { --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) { - SWIGV8_Proxy *proxy = data.GetParameter(); -+#else -+SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) { -+ SWIGV8_Proxy *proxy = data.GetParameter(); - #endif - - delete proxy; -@@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw - } else { - cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor); - } --#else -+#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { - cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor); - } else { - cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor); - } -+#else -+ if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) { -+ cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter); -+ } else { -+ cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter); -+ } - #endif - - #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) -@@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) { - - v8::Handle<v8::Object> objRef = valRef->ToObject(); - if(objRef->InternalFieldCount() < 1) return false; -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__")); -+#else -+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); -+ v8::Local<v8::Value> flag; -+ if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag)) -+ return false; -+#endif - return (flag->IsBoolean() && flag->BooleanValue()); - } - -@@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist - SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) { --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) { - v8::Local<v8::Object> object = data.GetValue(); - SwigV8PackedData *cdata = data.GetParameter(); -+#else -+SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) { -+ SwigV8PackedData *cdata = data.GetParameter(); - #endif - - delete cdata; -@@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob - object->Dispose(isolate); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - object->Dispose(); --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - object.Clear(); - #endif - } -@@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf - // v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW(); - v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW(); - -+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true)); -+#else -+ v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__")); -+ obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true)); -+#endif - - #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511) - obj->SetPointerInInternalField(0, cdata); -@@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf - cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete); - #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION) - cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete); --#else -+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2) - cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete); - // v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete); -+#else -+ cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter); - #endif - - #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710) --- -2.9.5 - 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 deleted file mode 100644 index 81df3e264f..0000000000 --- a/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a4a0440a644c6c5e5da096efe3cf05ba309a284f Mon Sep 17 00:00:00 2001 -From: "NODA, Kai" <nodakai@gmail.com> -Date: Sun, 22 Apr 2012 17:01:02 +0900 -Subject: [PATCH] Use /proc/self/exe for "swig -swiglib" on non-Win32 - platforms. - -If it wasn't found, then fall back to a fixed string just as before. - -Upstream-Status: Submitted -http://sourceforge.net/mailarchive/message.php?msg_id=29179733 - ---- - Source/Modules/main.cxx | 24 ++++++++++++++++++++++-- - 1 file changed, 22 insertions(+), 2 deletions(-) - -diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx -index d2f5d3b..cbb0a12 100644 ---- a/Source/Modules/main.cxx -+++ b/Source/Modules/main.cxx -@@ -26,6 +26,11 @@ char cvsroot_main_cxx[] = "$Id$"; - #include "cparse.h" - #include <ctype.h> - #include <limits.h> // for INT_MAX -+#ifndef _WIN32 -+#include <cstddef> -+#include <unistd.h> // for readlink -+#include <sys/stat.h> // for stat -+#endif - - // Global variables - -@@ -902,9 +907,9 @@ int SWIG_main(int argc, char *argv[], Language *l) { - - // Check for SWIG_LIB environment variable - if ((c = getenv("SWIG_LIB")) == (char *) 0) { -+ char *p; - #if defined(_WIN32) - char buf[MAX_PATH]; -- char *p; - if (!(GetModuleFileName(0, buf, MAX_PATH) == 0 || (p = strrchr(buf, '\\')) == 0)) { - *(p + 1) = '\0'; - SwigLib = NewStringf("%sLib", buf); // Native windows installation path -@@ -914,7 +919,22 @@ int SWIG_main(int argc, char *argv[], Language *l) { - if (Len(SWIG_LIB_WIN_UNIX) > 0) - SwigLibWinUnix = NewString(SWIG_LIB_WIN_UNIX); // Unix installation path using a drive letter (for msys/mingw) - #else -- SwigLib = NewString(SWIG_LIB); -+ char buf[PATH_MAX]; -+ if (0 < ::readlink("/proc/self/exe", buf, sizeof(buf)) && -+ (p = ::strstr(buf, "/bin/swig"))) { -+ int major, minor, patch; -+ const int ret = ::sscanf(VERSION, "%d.%d.%d", &major, &minor, &patch); -+ if (3 == ret) { -+ const ::ptrdiff_t dir_part_len = p - buf; -+ ::snprintf(p, PATH_MAX - dir_part_len, "/share/swig/%d.%d.%d", major, minor, patch); -+ struct ::stat stat_res; -+ if (0 == ::stat(buf, &stat_res) && S_ISDIR(stat_res.st_mode)) { -+ SwigLib = NewString(buf); -+ } -+ } -+ } -+ if (NULL == SwigLib) -+ SwigLib = NewString(SWIG_LIB); - #endif - } else { - SwigLib = NewString(c); --- -1.7.9.5 - 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 deleted file mode 100644 index 1b1128acab..0000000000 --- a/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 5c4d6d8538994d5fe9b3b46bfafaf0a605e3bda6 Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen.kooi@linaro.org> -Date: Tue, 17 Jun 2014 08:18:17 +0200 -Subject: [PATCH] configure: use pkg-config for pcre detection - -Signed-off-by: Koen Kooi <koen.kooi@linaro.org> -Upstream-Status: pending ---- - configure.ac | 38 +++++++------------------------------- - 1 file changed, 7 insertions(+), 31 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 0c984b7..6edcec1 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -70,38 +70,14 @@ AC_MSG_RESULT([$with_pcre]) - - dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script - if test x"${with_pcre}" = xyes ; then -- AC_MSG_CHECKING([whether to use local PCRE]) -- local_pcre_config=no -- if test -z $PCRE_CONFIG; then -- if test -f `pwd`/pcre/pcre-swig-install/bin/pcre-config; then -- PCRE_CONFIG=`pwd`/pcre/pcre-swig-install/bin/pcre-config -- local_pcre_config=$PCRE_CONFIG -- fi -- fi -- AC_MSG_RESULT([$local_pcre_config]) --fi --AS_IF([test "x$with_pcre" != xno], -- [AX_PATH_GENERIC([pcre], -- [], dnl Minimal version of PCRE we need -- accept any -- [], dnl custom sed script for version parsing is not needed -- [AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) -- LIBS="$LIBS $PCRE_LIBS" -- CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS" -- ], -- [AC_MSG_FAILURE([ -- Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions) -- library package. This dependency is needed for configure to complete, -- Either: -- - Install the PCRE developer package on your system (preferred approach). -- - Download the PCRE source tarball, build and install on your system -- as you would for any package built from source distribution. -- - Use the Tools/pcre-build.sh script to build PCRE just for SWIG to statically -- link against. Run 'Tools/pcre-build.sh --help' for instructions. -- (quite easy and does not require privileges to install PCRE on your system) -- - Use configure --without-pcre to disable regular expressions support in SWIG -- (not recommended).]) -- ]) -+ PKG_CHECK_MODULES([PCRE], [libpcre], [ -+ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) -+ LIBS="$LIBS $PCRE_LIBS" -+ CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS" -+ ], [ -+ AC_MSG_WARN([$PCRE_PKG_ERRORS]) - ]) -+fi - - - dnl CCache --- -1.9.3 - diff --git a/meta/recipes-devtools/swig/swig/determinism.patch b/meta/recipes-devtools/swig/swig/determinism.patch new file mode 100644 index 0000000000..9c49414ad7 --- /dev/null +++ b/meta/recipes-devtools/swig/swig/determinism.patch @@ -0,0 +1,26 @@ +From 28648b3873d83e26bd19b64ce2c0a41ced9292d3 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <richard.purdie@linuxfoundation.org> +Date: Mon, 1 Mar 2021 00:11:10 +0000 +Subject: [PATCH] swig: Fix reproducibility issue + +Remove the compiler commandline/platform from the compiled binary as this +breaks reproducibilty. + +Upstream-Status: Inappropriate [OE reproducibiity fix upstream unlikely to take] +RP 2021/3/1 +--- + Source/Modules/main.cxx | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx +index de0a512..ac9e825 100644 +--- a/Source/Modules/main.cxx ++++ b/Source/Modules/main.cxx +@@ -638,7 +638,6 @@ static void getoptions(int argc, char *argv[]) { + } + } else if (strcmp(argv[i], "-version") == 0) { + fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version()); +- fprintf(stdout, "\nCompiled with %s [%s]\n", SWIG_CXX, SWIG_PLATFORM); + fprintf(stdout, "\nConfigured options: %cpcre\n", + #ifdef HAVE_PCRE + '+' |