On 2017-06-27 18:22-0000 Arjen Markus wrote:

Hi Alan,



I could say "I have good news and bad news". First of all, with this latest 
version I can indeed build the wxWidgets driver without complaints, using the 64-bits 
version of MinGW-w64/MSYS2, but when I run an example I get:



[cid:image001.png@01D2EF82.D7F76F70]




I guess this means that I should be using _exactly_ the same
compiler to build PLplot as was used to build the wxWidgets libraries.
Quite possibly the easiest way is to build these libraries from
source, so that there can be no mismatch - sigh.

Hi Arjen:

I think your proposed solution would work, but I propose a much
more convenient solution below concerning this ABI incompatibility issue
that is based on some google research I did.

For the record, here is the message in that fatal error message box
image (which I will cut and paste to the MSYS2 mailing list when I
follow up there).

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).

When faced with a fatal error like that, google is your friend. Indeed, when I made a google search for the terms <"c++" abi 1008
1010>, I quickly found a discussion about how strict wxwidgets should
be concerning its default rule that C++ ABI version numbers should be
exactly identical (as you discovered above). Furthermore,
<https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html> states the
ABI versioning scheme for a relatively old version of gcc is

GCC 3.4, GCC 4.x: 1000 + n (when n>1)

If that scheme contines for the g++ versions available for
MinGW-w64/MSYS2, it appears from the above notice, that
the MinGW-w64/MSYS2 developers
built the wxwidgets libraries implicitly with -fabi-version=8, and you
built the wxwidgets components of PLplot with -fabi-version=10.
Furthermore, from
<https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html>
ABI versions 1008, 1009, 1010, and 1011 first appeared in g++ versions 4.9,
5.2, 6.1, and 7.

Finally, I found
<https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-wxwidgets/wxWidgets-3.0.2-relax-abi-compatibility-gcc.patch>
which relaxes the default strict ABI compatibility rule for wxwidgets
BUT only for the ABI range 1002-1008.  So this patch does mean the above
error will occur for your case (1008 and 1010).

In sum from this google research based on the above error message, I
am pretty sure what happened is that the MinGW-w64/MSYS2 wxwidgets
libraries were built with some g++ version from 4.9.z through g++
5.1.z, and you are building the wxwidgets components of PLplot using
g++ version 6.x.y, where x is 1 or greater.  Furthermore, from
the above Dialect options site, I believe all you have to
do to avoid this issue is specify -fabi-version=8 as a g++
option (e.g., by adding that option to the CXXFLAGS environment
variable).

I am going to follow up with a short version of this to the MSYS2
mailing list asking if setting -fabi-version=8 is the right response
to the above error message, but please go ahead and try that
experiment right away, and don't wait for their comments (if any).

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
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to