On 2012-12-28 10:22-0800 Alan W. Irwin wrote:
[...Let's] leave it like this. Wine-1.5.20 has introduced an obvious regression for an important Windows app (the MinGW gcc compiler for Windows) that has been working for years for prior Wine versions.
Grant communicated to me off list that he was able to replicate the regression for Wine-1.5.20, but he also found (as did Boyd) the regression had (inadvertently?) been solved for a recent wine-git version. Grant's results were for MinGW-4.7.2.
I have just now confirmed for MinGW-4.7.0 that Wine-1.5.20 had the issue, but wine-1.5.20-104-g0004788 (or one of the 103 commits before that) solves it. So although using the Wine platform to build software doesn't work for Wine-1.5.20, building and testing software (notably shapelib, PLplot, ephcom, and te_gen using cmake.exe/MinGW/MSYS) works well for 1.5.19, and from my simple test of gcc for recent Wine git, it is certainly looking good for the next Wine release as well!
Grant also told me that gcc had no obvious issues for wine-1.5.20 when invoked directly with wine. Instead he had to follow my wineconsole + bash method for invoking gcc to confirm the issue for wine-1.5.20.
The following is my recipe for that gcc invocation method if anyone here wants to bisect to find the commit between 1.5.19 and 1.5.20 that created the issue, and the commit between 1.5.20 and wine-1.5.20-104-g0004788 that solved it:
(1) Download and install a recent MinGW/MSYS using the automatic installer, mingw-get-inst-20120426.exe that is accessible at https://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/mingw-.... Check the GUI box to get the latest versions. Some time ago I installed 4.7.0 this way, and Grant's experience is that now installs 4.7.2. Include MSYS in the install, and install to a unique prefix (rather than a wine system file location). (I did that to make sure I could easily change between wine versions using different PATH and WINEPREFIX values.)
(2) Make a bash "source" script to set up the PATH so that wine can find MinGW and MSYS where you installed them in the above step. Here is my version of that script:
irwin@raven> cat set_mingw_msys_path.wine_sh export MINGW_VERSION=4.7.0 MINGW_PREFIX=/z/home/wine/newstart/MinGW_$MINGW_VERSION PATH=$MINGW_PREFIX/msys/1.0/bin/:$PATH PATH=$MINGW_PREFIX/bin/:$PATH
(3) Get into a wineconsole environment
wineserver -p wineconsole --backend=curses MinGW_4.7.0/msys/1.0/bin/bash.exe
(4) Attempt to compile a "hello-world" programme from that environment
bash.exe-3.1$ source set_mingw_msys_path.wine_sh bash.exe-3.1$ gcc hello_world.c
On wine-1.5.20, this immediately creates an GUI error box. When you exit from that error box, a very long error message is displayed in the wineconsole terminal. In contrast to this bad behaviour of gcc on wine-1.5.20, for both wine-1.5.19 and wine-1.5.20-104-g0004788 this simple test compilation succeeds without issues and you can then run the resulting executable with
bash.exe-3.1$ ./a.exe Hello World
And now back to getting my forthcoming releases of ephcom and te_gen out the door this next weekend.
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 __________________________