Description: Relax error about mismatching C++ ABI version to warning In practice, the differences between ABI versions 2 and 8 don't seem to be incompatible since they apparently only affect obscure corner cases. So relax this error to a warning so we don't have to rebuild the entire wx world in one go. Author: Olly Betts Forwarded: no Last-Update: 2015-06-29 --- wxwidgets3.0-3.0.2.orig/src/common/appbase.cpp +++ wxwidgets3.0-3.0.2/src/common/appbase.cpp @@ -762,6 +762,23 @@ bool wxAppConsoleBase::CheckBuildOptions 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); + lib.erase(l_off, space - l_off); + space = prog.Find(' ', l_off); + prog.erase(p_off, space - p_off); + if (lib == prog) { + // Only difference is the ABI version, which apparently only + // affect obscure cases, so just warn. + wxLogWarning(msg.c_str()); + return false; + } + } + wxLogFatalError(msg.c_str()); // normally wxLogFatalError doesn't return