http://bugs.winehq.org/show_bug.cgi?id=19783
Summary: Visual C++ 2005 Express: building Firefox: mt.exe crashes while linking mkdepend Product: Wine Version: 1.1.27 Platform: PC OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: kernel32 AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
To reproduce the first time:
First, get the tools and source code. The scripts run on Windows - that's why they use cygwin! - but I'll show how to run them on Wine here.
wget http://kegel.com/wine/vc2005x.sh wget http://kegel.com/wine/firefox-download-and-build.sh wget http://winezeug.googlecode.com/svn/trunk/winetricks sh winetricks -q dotnet20 msxml6 cygwin
In the cygwin setup dialog, select cabextract, wget, and mercurial.
sh vc2005x.sh sh firefox-download-and-build.sh
Then start a wineconsole (so msys doesn't explode): cd ~/.wine/drive_c/mozilla-build wineconsole cmd
Then inside that wineconsole, start a mozilla msys bash shell with visual C/mozilla env settings:
start-msvc8-wine.bat
And inside *that*, cd to the source directory and do the build: $ cd /c/demo/firefox-191src $ make -f client.mk
This will churn happily for about 20 minutes before it bumps into a real need for mt.exe, and then crash:
make[1]: Entering directory `/c/demo/firefox-191src/ff-dbg/config/mkdepend' link -NOLOGO -OUT:mkdepend.exe -PDB:mkdepend.pdb host_cppsetup.obj host_ifparser.obj host_include.obj host_main.obj host_parse.obj host_pr.obj ... 0037:Call KERNEL32.BeginUpdateResourceW(00158e30 L"C:\demo\firefox-191src\ff-dbg\config\mkdepend\mkdepend.exe",00000000) ret=01051d26 0037:Ret KERNEL32.BeginUpdateResourceW() retval=0014d8e2 ret=01051d26 0037:Call KERNEL32.UpdateResourceW(0014d8e2,00000018,00000001,00000409,0015c318,00000152) ret=01051d76 0037:Ret KERNEL32.UpdateResourceW() retval=00000001 ret=01051d76 0037:Call KERNEL32.EndUpdateResourceW(0014d8e2,00000000) ret=01051db0 trace:seh:raise_exception code=c0000005 flags=0 addr=0x7ee22a14 ip=7ee22a14 tid=0037 ... Unhandled exception: page fault on read access to 0xcd4eb404 in 32-bit code (0x7ee22a14). Backtrace: =>0 0x7ee22a14 write_raw_resources+0x454(updates=0x13b4b0) [dlls/kernel32/resource.c:1038] in kernel32 (0x0033f8b8) 1 0x7ee23969 EndUpdateResourceW+0xf9(hUpdate=0x13b492, fDiscard=0) [dlls/kernel32/resource.c:1635] in kernel32 (0x0033f8e8) 2 0x01051db0 in mt (+0x51db0) (0x0033f8f8) ... 0x7ee22a14 write_raw_resources+0x454 [dlls/kernel32/resource.c:1038] in kernel32: movl 0x4(%eax),%edx 1038 p = address_from_rva( base, mapping_size, data->OffsetToData, data->Size );
To reproduce quickly after initial run:
cd ~/.wine/drive_c/mozilla-build wineconsole cmd
In wineconsole: start-msvc8-wine.bat cd /c/demo/firefox-191src/ff-dbg/config make
(You can set WINEDBUG when running make; the output will come out on the terminal where you started wineconsole.)
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #1 from Dan Kegel dank@kegel.com 2009-08-18 21:52:47 --- Oh, you probably need patchutils in the cygwin setup dialog, too.
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #2 from Dan Kegel dank@kegel.com 2009-08-18 22:57:05 --- Cheesy workaround: replace mt.exe with a dummy that just exits with zero status. That lets the build get a lot further.
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #3 from Dan Kegel dank@kegel.com 2009-08-18 23:54:52 --- With the fake mt.exe, the build churns for a while building nspr... then tries to use mkdepend, which promptly falls over with a "R6034: An application has made an attempt to load the C runtime library..." probably because it was built with the fake mt.
(Here are commands to make fake pdbs to get past a firefox build problem; you have to do that to see mkdepend crash: touch ~/.wine/drive_c/demo/firefox-191src/ff-dbg/nsprpub/pr/src/nspr4.pdb touch ~/.wine/drive_c/demo/firefox-191src/ff-dbg/nsprpub/lib/ds/plds4.pdb touch ~/.wine/drive_c/demo/firefox-191src/ff-dbg/nsprpub/lib/libc/src/plc4.pdb )
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #4 from Dan Kegel dank@kegel.com 2009-08-29 19:36:15 --- Revised repro instructions. Takes about two hours to do from scratch with a fast connection and a fast computer.
wget http://kegel.com/wine/winetricks sh winetricks -q cygwin vc2005express psdk2003
In the cygwin setup dialog, select cabextract, wget, mercurial, and patchutils
Then start a wineconsole and run the following hodgepodge of scripts ($ is shown for system prompt, c$ for cygwin prompt, m$ for msys prompt,
for cmd prompt):
$ wineconsole cmd
cd \cygwin cygwin.bat
c$ wget http://kegel.com/wine/firefox-download-and-build.sh c$ sh firefox-download-and-build.sh c$ exit
cd \mozilla-build start-msvc8-wine.bat
m$ cd /c/cygwin/firefox-191src m$ make -f client.mk
To re-reproduce quickly:
start-msvc8-wine.bat
m$ cd /c/demo/firefox-191src/ff-dbg/config/mkdepend m$ rm mkdepend.exe m$ make
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #5 from Dan Kegel dank@kegel.com 2009-08-29 21:11:46 --- Oh, and the cheezy workaround is to just copy true.exe over mkdepend.exe and continue:
m$ cp /c/mozilla-build/msys/bin/true.exe ff-dbg/config/mkdepend/mkdepend.exe m$ cd ff-dbg m$ make
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #6 from Dan Kegel dank@kegel.com 2009-08-29 21:19:48 --- Probably also have to do m$ touch ff-dbg/config/mkdepend/mkdepend.pdb
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #7 from Dan Kegel dank@kegel.com 2009-08-29 21:31:04 --- Oddly, a second mkdepend.exe is built in js/src/config/mkdepend. It seems to get built ok, but mt.exe is lurking in the background and has the file open, so the build breaks later when that mkdepend.exe can't be read (since mt.exe still has it open):
make[5]: Entering directory `/c/cygwin/firefox-191src/ff-dbg/js/src/config/mkdepend' /c/mozilla-build/moztools/bin/nsinstall -m 755 mkdepend.exe ../../../../dist/host/bin nsinstall: cannot copy mkdepend.exe to ........\dist\host\bin\mkdepend.exe: Sharing violation
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #8 from Dan Kegel dank@kegel.com 2009-09-13 21:37:11 --- I uploaded a 43MB rzip'd tarball to http://kegel.com/wine/bug19783-built.tar.rz containing c:/firefox-191src as built shortly after the time of the error. See c:/firefox-191src/client.log for a log of the problem happening. Perhaps this will let the problem be reproduced without running the whole build script from the start.
http://bugs.winehq.org/show_bug.cgi?id=19783
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #9 from Alexandre Julliard julliard@winehq.org 2009-09-24 10:54:40 --- Fixed by 9f28d9a171c34552ba9040d5b499190af4225af8.
http://bugs.winehq.org/show_bug.cgi?id=19783
--- Comment #10 from Dan Kegel dank@kegel.com 2009-09-24 23:30:46 --- Sho' 'nuff.
http://bugs.winehq.org/show_bug.cgi?id=19783
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org 2009-09-25 12:25:51 --- Closing bugs fixed in 1.1.30.