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

Reply via email to