On 2014-05-13 18:38-0700 Alan W. Irwin wrote:

> On 2014-05-13 11:15-0700 Alan W. Irwin wrote:
>
>> Note, I have never gotten a downloaded binary version of GTK+ to work
>> properly with PLplot on MinGW/Wine because of ABI incompatibility
>> issues (my fairly recent version of MinGW was always ABI inconsistent
>> with the typically extremely old version of MinGW used to build GTK+),
>> but maybe I will finally get lucky this time.  Anyhow, so far so good,
>> and more later as this experiment on Wine unfolds.
>
> Hi Walt:
>
> Six hours later (because the builds of PLplot dependencies on Wine are
> really slow for the reasons I mentioned and one false start that
> wasted a couple of hours) I finally got to the point of building
> PLplot using the "MinGW Makefiles" generator against epa_built
> versions of all its dependencies other than the GTK+ stack and the
> official 32-bit binary version of GTK+ for Windows which is supposed
> to be compatible with MinGW.
>
> The result verified the PLplot "MinGW Makefiles" build-system issue that Walt 
> found
> previously on Microsoft Windows (which also verifies once again that
> Wine is a fairly reliable but slow! Windows test platform); for some
> strange reason parts of the GTK+ stack are being found by pkg-config but
> other parts are not being found so the overall effect is the cairo
> devices are all being dropped.  This pkg-config result works fine on
> Linux so the whole thing is quite a puzzle.
>
> I will look further at this tomorrow (Wednesday) now I have confirmed
> this Windows platform PLplot build-system (or perhaps pkg-config)
> issue for the PLplot pango/cairo stack dependencies.

The issue turned out to be due to a GTK+ pkg-config configuration file bug
where -lm is automatically added to the library links, e.g.,

bash.exe-3.1$ pkg-config --libs pangocairo
-Lz:/home/wine/gtkplus/3.6.4/lib -lpangocairo-1.0 -lcairo
-lpangoft2-1.0 -lfreetype -lfontconfig -lpangowin32-1.0 -lgdi32
-lpango-1.0 -lm -lgobject-2.0 -lglib-2.0 -lintl

But the math library does not exist separately on Windows platforms so
-lm should not be part of the link flags delivered by "pkg-config
--libs pangocairo" (or the results of the equivalent CMake command
which uses pkg-config internally).

As a workaround (revision 13116) for this gtk+ bug, I have filtered
-lm out of the above library flags for the Windows case (where the
cmake MATH_LIB variable is false).  As a result of this fix, cmake now
configures the cairo device without issues for the "MinGW Makefiles"
generator!

After that fix, I also ran into a number of additional minor build
system issues for the "MinGW Makefiles" case and the cairo device
driver case.  (The reason those issues existed is because that
combination had not been tried in years.) I believe all of those
issues are fixed now (revision 13119), and, for example, I can build
(N.B. you must use the -DTEST_DYNDRIVERS=OFF cmake option) and run the
wincairo device by hand without issues.

So Walt, you should be able to do that now as well, but please let
me know if you spot any other issue.  And thanks for being persistent
with this issue so I finally fixed it!  :-)

To everyone here, all preliminary indications are that (at least with
MinGW-4.7.2 which is the version I am using) the official 32-bit
binary download of cairo works well without ABI issues with PLplot.
This is a first for me.  :-)

I am now following up this cairo device driver success on MinGW by
starting a comprehensive interactive and non-interactive test on Wine
using the "MinGW Makefiles" generator and MSYS (a special version
without sh.exe in the PATH, see cmake/epa_build/README for how to
achieve that and why it is necessary).  The PLplot dependencies for
this test will be the binary download of gtk+ + epa_build of
everything else.  This test should take overnight on Wine, but it
should take roughly one-half hour on Microsoft Windows if anyone is
interested in following the directions in cmake/epa_build/README.

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
__________________________

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Plplot-general mailing list
Plplot-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-general

Reply via email to