Arjen Markus, a PLplot development colleague of mine with access to MinGW-w64/MSYS2, reports an error box popped up with the following error message when attempting to run wxwidgets-related components of PLplot that he has built on that platform.
Mismatch between the program and library build versions detected. The library used 3.0 (wchar_t,compiler with C++ ABI 1008,wx containers,compatible with 2.8), and your program used 3.0 (wchar_t,compiler with C++ ABI 1010,wx containers,compatible with 2.8). To help him out with this error , I found from google research a number of sites including <https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html>, <https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html>, and https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-wxwidgets/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch>.
From these, it appears the fundamental issue is Arjen built PLplot
with the latest (or near latest) g++ compiler for the mingw side of this platform that is ABI incompatible with the older version of the g++ compiler used to build the wxwidgets libraries for this platform.
From the above "patch" URL, that patch apparently relaxes the strict
wxwidgets ABI compatibility requirements from ABI version 1002 through 1008, BUT (important) not beyond 1008 for the MinGW-w64/MSYS2 build of the wxwidgets libraries. IIRC, from my google research there is some debate whether such relaxation should occur at all. So you might want to extend that relaxation to 1009 and 1010, but it might be a lot safer not to do so. In fact, I tend to lean toward the strict side of that debate just on the general principle that wxwidgets is so big and complex it likely difficult to decide whether a given ABI change is going to affect users of wxwidgets or not. So assuming you are not going to extend that patch (or ideally from my point of view drop it), I think from my google research the solution to the above error is simply for Arjen to add -fabi-version=8 as a g++ option for the PLplot build to be ABI compatible with the wxwidgets library build. I believe Arjen is subscribed to this list, and will eventually let us know the results of that experiment, but in case that takes him a while to do that can someone here confirm that is the right response to the above error box message? Also, my experience is I have never encountered ABI incompatibilities like this on Linux distributions because I think they are very careful about that issue. At minimum, would the MinGW-w64/MSYS2 team be willing to designate (say with "abi-compat" in the name) links to the version of the gcc collection of compilers (on both the mingw and msys sides) that were guaranteed to be ABI compatible with the version of the gcc collection of compilers used for all official builds? In that case, if users stuck to the "abi-compat" versions (and assuming those versions were properly maintained whenever the platform developers decided to change the official gcc compiler version used to build the platform packages) that precaution should guarantee freedom from ABI incompatibility issues such as the one Arjen encountered above. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Msys2-users mailing list Msys2-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/msys2-users