[Bug 33546] New: MSVC 2012 C compiler (cl.exe) fails/crashes

wine-bugs at winehq.org wine-bugs at winehq.org
Wed May 8 18:15:50 CDT 2013


http://bugs.winehq.org/show_bug.cgi?id=33546

             Bug #: 33546
           Summary: MSVC 2012 C compiler (cl.exe) fails/crashes
           Product: Wine
           Version: 1.5.29
          Platform: x86-64
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P2
         Component: -unknown
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: wine at martin.st
    Classification: Unclassified


For MSVC 2010, the plain C compiler binary (cl.exe) has worked just fine when
run in wine, if extracted from an existing installation of MSVC. For MSVC 2012,
the compiler binary fails/crashes. The exact reason is still unknown, but it
seems like the compiler corrupts the heap at some point.

To reproduce, copy the following files from an MSVC 2012 installation:

>From Microsoft Visual Studio 11.0\Common7\IDE:
mspdb110.dll

>From Microsoft Visual Studio 11.0\VC\bin:
cl.exe
c1.dll
c2.dll
1033/clui.dll

And optionally from Microsoft Visual Studio
11.0\VC\redist\x86\Microsoft.VC110.CRT:
msvcr110.dll
msvcp110.dll


Then using these files, try to compile a simple C file containing:

int main(int argc, char* argv[]) {
        return 0;
}

wine cl.exe -c test.c



This currently ends with the following error:
err:seh:setup_exception_record stack overflow 848 bytes in thread 0009 eip
f74e847d esp 00230fe0 stack 0x230000-0x231000-0x330000

If the native msvcr110.dll isn't used, this fails due to some unimplemented
function. Stubs for these can be added by the crude, proof of concept patches
attached, which also gets rid of a number of other fixmes printed. The third
patch adds calls _heapchk() after each memset, to pinpoint one particular
memset call (with length parameter 0x6f0) that seems to corrupt the heap. The
actual cause for this is still unknown though.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list