[Freewx-maint] Bug#844486: Bug#844526: Bug#844486: gnuplot-qt: Mismatch between the program and library build versions with GNUTERM=wxt

Vincent Lefevre vincent at vinc17.net
Sat Nov 19 00:25:52 UTC 2016


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 <vincent at 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)
-------------- next part --------------
--- 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


More information about the Freewx-maint mailing list