[wine-devel] Re: [SOLVED] wine-1.5.20 regression compared to 1.5.19 and previous; MinGW/gcc 4.7.0 segfaults under wineconsole

Alan W. Irwin irwin at beluga.phys.uvic.ca
Wed Jan 2 17:09:10 CST 2013


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-get-inst-20120426/.
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 at 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
__________________________



More information about the wine-devel mailing list