Hi Steve: Thanks for your contributions to this thread. More below in context.
On Wed, 26 Jun 2013 11:32:28 +0000 "Schwartz, Steven J" <s.schwa...@imperial.ac.uk> wrote: > Alan, Arjen, et al., > > I have been following this thread, and the parallel ones re Cygwin build and > also build_project, with some interest. We ship a binary Windows version of > our QSAS software (which includes the Qt libraries and a somewhat > stripped-down version of plplot which only drives our own version of the > qt-widgets device). This seems to work fine. As I have succumbed to the > corporate Windows pressure I no longer use linux so have spent more time > exploring aspects of Windows builds. I'm a novice in Cygwin, mingw, and msys. > > QSAS builds under msys. We/I don't build Qt from source (but if Alan has a > foolproof way to do that I'd consider having a go). So I use the last Qt4 > binary system provided by Qt, namely 4.8.4. This was built against mingw 4.4, > and there are various discussion-group posts suggesting that compiling > against this binary Qt requires using the same version of mingw. That is my understanding as well. But MinGW-4.4 is really old with lots of known issues. This is the motivation behind my wanting to provide the means of building Qt4 directly from source using the MinGW version chosen by the user (4.7.2 in my case). > Luckily (?) > someone out there made a zipped file with mingw 4.4.0 available for precisely > that reason. This I access via the msys layer (which is needed for some or > other reason, rather than just building directly in mingw. I have noticed > that other modules we use didn't interface correctly when built directly from > mingw for probably subtle reasons, so I have stuck to always working in an > msys window/environment). We don't use cmake (and have ceased using configure > - preferring a relatively simple and transparent build shell-script. The > script builds the necessary bits of plplot alongside other 3rd party modules > and the rest of QSAS). > > I have tried to build a more complete plplot against this configuration, > namely: > > Windows 7 > Qt 4.8.4 binary > Mingw 4.4.0 > Msys (current version) > Cmake 2.8.11 (windows) > > The build almost completes normally, but test-drv-info crashes dealing with > the qt drivers. The windows crash report shows that the error occurred in > libgcc_s_dw2-1.dll. This issue on Windows platforms is well known, and it might be worth your while to search the archive of this mailing list for discussions of it. What is going on is that test-drv-info attempts to do _exactly_ what the PLplot library does in dynamically loading the device drivers and testing the results of that dynamic load, but for some reason test-drv-info succeeds but with a non-zero return code that indicates some sort of internal failure while the equivalent code in the PLplot library succeeds but with a zero return code (for an application linked to that library) indicating complete success. It's a very strange issue which we have just not been able to figure out. There is only a workaround for it now which is to specify -DTEST_DYNDRIVERS=OFF, but if the QSAS team could figure this out it would be nice to drop that workaround. After all, it does make sense to run a simple test of dynamic loading of our devices to make sure the linking has been done properly before attempting to use PLplot It is also somewhat ironic that the test fails (on some devices depending on subtle linking issues which appear to be intermittent) on Windows while the actual use always succeeds. > Nonetheless everything appears to have been built and > installs ok. The native plplot drivers (wingcc, ps,psc, svg) run fine. The Qt > ones enjoy mixed success. Sometimes they crash in the same way, other times > they run fine (small changes to the source files - looks like some memory > issues). My experience is MinGW-4.7.x is more reliable than previous versions so I attribute the qt device driver run-time crashes you are encountering to your (forced) use of MinGW-4.4. > The qt ps and pdf files always generate a portrait page with the > plot spilling off the right hand edge of the page. On Linux I have just run examples/c/x01c -dev epsqt -o test.eps and examples/c/x01c -dev pdfqt -o test.pdf In both cases, the results are in landscape mode (according to the gv viewer) and look fine. The results on Windows that you report are obviously not as good so if/when I get Qt4 and PLplot built with MinGW-4.7.2, I will do a detailed comparison of qt results on Wine with the equivalents on Linux to see whether I encounter a similar issues to what you have found. > I've not tried to > install the extra bits to try to build other drivers such as wxWidgets, > cairo, etc., and do not need them. To be honest, the bare wingcc and psc > drivers are adequate for my testing needs, with my main work done via QSAS. > [There is a separate notion here about what a "minimal binary plplot" > distribution might contain, which risks everyone chipping in their one > additional driver and binding until you get back to the full distribution > :-)] Exactly. :-) A build script that has options to build a light version of PLplot or the complete version makes sense from the build-time perspective, but for binary distribution I think only the complete version makes sense because of the widely varying needs of users. In response to other things you have said, it is certainly encouraging for us that the QSAS team distributes binary versions of their software (including your own special form of PLplot build) without any showstopper issues. I anticipate no technical showstoppers via the CMake-based approach so the only potential showstopper I can see for our own binary distribution of PLplot is security concerns. How do you deal with the security implications of distributing binaries? 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 __________________________ ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel