You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.5 KiB
39 lines
1.5 KiB
2 years ago
|
Description: Suppress error about mismatching C++ ABI version
|
||
|
In practice, the differences between recent ABI versions don't seem to be
|
||
|
incompatible since they apparently only affect obscure corner cases. So
|
||
|
suppress this error so we don't have to rebuild the entire wx world in one
|
||
|
go.
|
||
|
Author: Olly Betts <olly@survex.com>
|
||
|
Forwarded: no
|
||
|
Last-Update: 2017-07-26
|
||
|
|
||
|
--- a/src/common/appbase.cpp
|
||
|
+++ b/src/common/appbase.cpp
|
||
|
@@ -766,6 +766,26 @@
|
||
|
msg.Printf(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."),
|
||
|
lib.c_str(), progName.c_str(), prog.c_str());
|
||
|
|
||
|
+ int l_off = lib.Find("compiler with C++ ABI ");
|
||
|
+ int p_off = prog.Find("compiler with C++ ABI ");
|
||
|
+ if (l_off != wxNOT_FOUND && p_off != wxNOT_FOUND) {
|
||
|
+ int space;
|
||
|
+ space = lib.find(',', l_off + 22);
|
||
|
+ lib.erase(l_off, space - l_off);
|
||
|
+ space = prog.find(',', p_off + 22);
|
||
|
+ prog.erase(p_off, space - p_off);
|
||
|
+ if (lib == prog) {
|
||
|
+ // The only difference is the ABI version, which apparently only
|
||
|
+ // affect obscure cases. We used to warn here, so at least
|
||
|
+ // there was an indication of what's up if there is a problem
|
||
|
+ // due to ABI incompatibilities, but wxLogWarning() can result
|
||
|
+ // in a pop up dialog with some applications, which is just too
|
||
|
+ // intrusive, so just quietly ignore instead.
|
||
|
+ //wxLogWarning(msg.c_str());
|
||
|
+ return false;
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
wxLogFatalError(msg.c_str());
|
||
|
|
||
|
// normally wxLogFatalError doesn't return
|