diff --git c/src/common/appbase.cpp w/src/common/appbase.cpp index 186d845..5b5727a 100644 --- c/src/common/appbase.cpp +++ w/src/common/appbase.cpp @@ -850,6 +850,26 @@ bool wxAppConsoleBase::CheckBuildOptions(const char *optionsSignature, 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