Control: tags -1 patch On 2016-11-17 15:37:13 +0200, Adrian Bunk wrote: > On Thu, Nov 17, 2016 at 09:41:07AM +0100, Vincent Lefevre wrote: > > A warning can be very annoying (e.g. because it mixes with other output > > to the terminal) and possibly break scripts that don't expect output to > > stderr. If this is not expected to work, then an error like upstreams's > > behavior is the right thing to do (there is a real issue, and the user > > must make sure that it gets fixed). Otherwise a warning isn't needed, > > except in some debug mode for developers or andvanced users (but such > > a mode would not be the default). > > Yes, this is what should be done.
Removing the wxLogWarning(msg.c_str()); line from the warn-for-compiler-abi-mismatch.patch patch (and updating the comment) is sufficient. This gives the attached patch. -- Vincent Lefèvre <vinc...@vinc17.net> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
--- wxwidgets3.0-3.0.2.orig/src/common/appbase.cpp +++ wxwidgets3.0-3.0.2/src/common/appbase.cpp @@ -762,6 +762,22 @@ 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. + return false; + } + } + wxLogFatalError(msg.c_str()); // normally wxLogFatalError doesn't return