From 4d80c2a3590e592a053c8caceebf2ffa81fcd1fb Mon Sep 17 00:00:00 2001 From: Olly Betts Date: Tue, 6 May 2025 18:00:13 -0400 Subject: [PATCH] Suppress error about mismatching C++ ABI version Forwarded: not-needed Last-Update: 2022-07-18 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. Gbp-Pq: Name warn-for-compiler-abi-mismatch.patch --- src/common/appbase.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/common/appbase.cpp b/src/common/appbase.cpp index 4c30c5f..31a6408 100644 --- a/src/common/appbase.cpp +++ b/src/common/appbase.cpp @@ -867,6 +867,26 @@ bool wxAppConsoleBase::CheckBuildOptions(const char *optionsSignature, wxString prog = wxString::FromAscii(optionsSignature); wxString progName = wxString::FromAscii(componentName); + 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(wxT("Mismatch between the program and library build versions detected.\nThe library used %s,\nand %s used %s."), lib, progName, prog); -- 2.30.2