Suppress error about mismatching C++ ABI version
authorOlly Betts <olly@survex.com>
Fri, 24 Feb 2023 00:23:10 +0000 (19:23 -0500)
committerScott Talbert <swt@techie.net>
Fri, 24 Feb 2023 00:23:10 +0000 (19:23 -0500)
Forwarded: no
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

index 87a3f970ba3855be182749881125c09e8c1d5553..d0fe392ecf59f86944a0442e2ca981a4eda4f2a5 100644 (file)
@@ -850,6 +850,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);