Since msvcmaker doesn't support msvc4.0, I'm trying to install msvc6.0 under wine. (Yeah, I know, I should run it under windows, but I'm stubborn.)
Interestingly, the setup program puts itself in the background. This means you have to be careful to check with ps that you don't have old wines laying around from the last run, and when logging, you have to make sure all wine processes have exited, else your log file isn't complete yet.
Unfortunately, setup fails fairly early.
When emulating win9x, it fails before presenting a dialog box -- with a page fault reading from a file handle returned from CreateFile. It looks like it's doing an assembly string search on the Windows file structure pointed to by the handle! I wonder why. Maybe it was an easy way to prevent people from running under Wine :-) We may have to hack wine to make handles be valid pointers; I wonder what magic bytes setup is looking for there.
When emulating winnt or winxp, it gets a bit further, but dies with a null pointer access. Oddly enough, adding --debugmsg +relay lets it proceed. It insists on installing Microsoft VM for Java, then tries to reboot. Restarting wine d:setup (this time without --debugmsg) continues properly for a while, but eventually crashes.
Whenever it crashes in winnt/xp, it leaves one or more windowless wcmd's running the following script:
:Repeat del "E:\vs60wiz.exe" if exist "E:\vs60wiz.exe" goto Repeat del "C:\WINDOWS\DEL4056.BAT"
in a loop, chewing up huge amounts of CPU time.
On Saturday 04 January 2003 02:42 pm, Dan Kegel wrote:
:Repeat
del "E:\vs60wiz.exe" if exist "E:\vs60wiz.exe" goto Repeat del "C:\WINDOWS\DEL4056.BAT"
It's probably relying on the file being locked. I wonder, is it "niced" in Windows? Lame.
Greg Turner wrote:
On Saturday 04 January 2003 02:42 pm, Dan Kegel wrote:
:Repeat
del "E:\vs60wiz.exe" if exist "E:\vs60wiz.exe" goto Repeat del "C:\WINDOWS\DEL4056.BAT"
It's probably relying on the file being locked. I wonder, is it "niced" in Windows? Lame.
Hmm. I guess I could log how the setup program created that process...
I wonder if this is related to the fact I can run the program with relay on, but not relay off. Maybe with relay on, the file doesn't get deleted until after the last time it's needed...? - Dan
"Dan" == Dan Kegel dank@kegel.com writes:
Dan> Whenever it crashes in winnt/xp, it leaves one or more windowless Dan> wcmd's running the following script:
Dan> :Repeat del "E:\vs60wiz.exe" if exist "E:\vs60wiz.exe" goto Repeat Dan> del "C:\WINDOWS\DEL4056.BAT"
Dan> in a loop, chewing up huge amounts of CPU time.
Try my patch Cc: wine-patches@winehq.com Subject: Re: [RESENT] Batch support for CreateProcess (2 of 3) Date: Fri, 6 Dec 2002 23:06:05 +0100
Uwe Bonnes wrote:
"Dan" == Dan Kegel dank@kegel.com writes:
Dan> Whenever it crashes in winnt/xp, it leaves one or more windowless Dan> wcmd's running the following script: Dan> :Repeat del "E:\vs60wiz.exe" if exist "E:\vs60wiz.exe" goto Repeat Dan> del "C:\WINDOWS\DEL4056.BAT" Dan> in a loop, chewing up huge amounts of CPU time.
Try my patch Cc: wine-patches@winehq.com Subject: Re: [RESENT] Batch support for CreateProcess (2 of 3)
Hey, that seems to get rid of the leftover wcmd's! - Dan
Back in January, I wrote:
... I'm trying to install msvc6.0 under wine. ...
When emulating win9x, it fails before presenting a dialog box ...
It still does this, but I understand the problem now: a --debugmsg +all reveals it's crashing because the HKLM\Software\Microsoft\Windows\CurrentVersion\VersionNumber registry key is missing (Ender posted about this problem in Sept '02).
When emulating winnt or winxp, it gets a bit further, but dies with a null pointer access.
Not sure why, but two months later, cvs wine gets past this fine; it installs the Microsoft VM for Java with following fixme's and err's:
fixme:process:CreateProcessA (D:\ie4\msjavx86.exe,...): NORMAL_PRIORITY_CLASS ignored fixme:win32:PE_CreateModule Security directory ignored fixme:process:CreateProcessA (E:\IXP000.TMP\javatrig.exe,...): NORMAL_PRIORITY_CLASS ignored fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "E:\IXP000.TMP\javaie30.cab" fixme:cabinet:process_files (basecab == ^0x80a97c0): Memory leak. err:setupapi:SetupDefaultQueueCallbackA copy error 5 "E:\IXP000.TMP\regsvr32.exe" -> "C:\WINDOWS\SYSTEM\regsvr32.exe" fixme:process:CreateProcessA (E:\IXP000.TMP\cryptsys.exe,...): NORMAL_PRIORITY_CLASS ignored fixme:process:CreateProcessA (E:\IXP000.TMP\cryptsys.exe,...): CREATE_DEFAULT_ERROR_MODE ignored fixme:win32:PE_CreateModule Security directory ignored fixme:ntdll:NtOpenProcessToken (0xffffffff,0x00000008,0x40552724): stub fixme:ntdll:NtQueryInformationToken (0xcafe,2,(nil),0,0x4055272c): stub fixme:ntdll:NtQueryInformationToken (0xcafe,2,0x40260770,12,0x4055272c): stub err:setupapi:SetupDefaultQueueCallbackA copy error 5 "E:\IXP001.TMP\regsvr32.exe" -> "C:\WINDOWS\SYSTEM\regsvr32.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\runvm.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\SYSTEM\javasntx.dll" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\Java\Classes\ClassR.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\Java\Classes\jdbc.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\Java\Classes\DxaR.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\Java\Classes\Dx3R.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\Java\Classes\CABR.exe" err:setupapi:SetupDefaultQueueCallbackA delete error 2 "C:\WINDOWS\Java\Classes\AFCR.exe" fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "E:\IXP000.TMP\javabase.cab"
and "reboots". Running 'wine d:/setup' again resumes, and it runs properly at first.
The first anomaly is that if you click on the "View Readme" button, it does a ShellExecuteA(0, "open", "d:\readme.htm",...) which fails (since we don't install an open handler for .htm files), and says "You must have an HTML viewer, like Microsoft Internet Explorer, installed before you can view the readme."
The next one was that install failed very late (after installation) with the error "Setup could not open the file: 'C:\WINDOWS\SYSTEM\REGSVR32.EXE'"
After that, it always failed for me with an error saying "Visual Studio 6.0 Setup was not completed successfully." It crashes when you click 'ok', but the stack isn't terribly useful (it dies with a write to address 4 in MSSETUP.DLL.FFree+0x88). The following fixmes might be related:
fixme:font:CreateScalableFontResourceA (0,"C:\WINDOWS\vssetup.for","C:\WINDOWS\vssetup.ttf",(null)): stub fixme:ntdll:NtOpenThreadToken (0xfffffffe,0x00000008,0x00000000,0x4055241c): stub fixme:ntdll:NtQueryInformationToken (0xcafe,2,(nil),0,0x40552418): stub fixme:ntdll:NtQueryInformationToken (0xcafe,2,0x405523f0,12,0x40552418): stub fixme:ntdll:NtOpenThreadToken (0xfffffffe,0x00000008,0x00000000,0x40552268): stub fixme:ntdll:NtQueryInformationToken (0xcafe,2,(nil),0,0x40552264): stub fixme:ntdll:NtQueryInformationToken (0xcafe,2,0x4055223c,12,0x40552264): stub
I've even tried wiping out ~/c and ~/.wine, and reinstalling wine, but still no joy. I've only gotten the installer to work mostly right once.
Whenever it crashes in winnt/xp, it leaves one or more windowless wcmd's running the following script:
:Repeat del "E:\vs60wiz.exe" if exist "E:\vs60wiz.exe" goto Repeat del "C:\WINDOWS\DEL4056.BAT"
in a loop, chewing up huge amounts of CPU time.
This problem's still here. Earlier, applying the patch http://www.winehq.com/hypermail/wine-patches/2002/12/0052.html seemed to fix it, but Alexander didn't like that patch, and applied something cleaner. So who knows...
Anyway, it looks like we're not tremendously close to running msvc6's installer :-(
That's it for playtime for me today. - Dan
Anyway, it looks like we're not tremendously close to running msvc6's installer :-(
I have no problem running it in win98 emulation, as long as the registry key I've mentioned before it set AND you are running in Desktop mode. I've had the cpu problem only when running in Managed myself.
- Ender