http://bugs.winehq.org/show_bug.cgi?id=20681
Summary: Microsoft Visual C++ .NET 2003 INTERNAL COMPILER ERROR: regression from 1.1.29 Product: Wine Version: 1.1.32 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: critical Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: ben@salilab.org
Created an attachment (id=24704) --> (http://bugs.winehq.org/attachment.cgi?id=24704) test.cpp
We are running wine on a 32-bit Fedora 11 machine, using cl (the MSVC++ .NET 2003 command line compiler) to build our software. Since we upgraded from wine-core-1.1.29-1.fc11.i586 to wine-core-1.1.32-1.fc11.i586, cl has stopped working: it fails with an internal compiler error. Downgrading to 1.1.29 fixes the problem.
Using the attached test.cpp and boost 1.34 headers, running with wine-core-1.1.32-1.fc11.i586, we see the following:
$ cl /c test.cpp test.cpp z:\synth1\home\ben\tmp\test.cpp(14) : fatal error C1001: INTERNAL COMPILER ERROR (compiler file 'f:\vs70builds\3077\vc\Compiler\Utc\src\P2\main.c', line 182) Please choose the Technical Support command on the Visual C++ Help menu, or open the Technical Support help file for more information Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
m Files\Microsoft Visual Studio .NET 2003\VC7\bin\cl: undname.c:189: str_array_push: Assertion `a->num < 32' failed.
with 1.1.29 we see: $ cl /c test.cpp test.cpp Microsoft (R) 32-bit C/C++ Standard Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
Please let me know if you need more information.
http://bugs.winehq.org/show_bug.cgi?id=20681
--- Comment #1 from Jeff Zaroyko jeffz@jeffz.name 2009-11-12 14:23:38 --- Retest with latest git, if it's still broken then please provide the results of your regression test http://wiki.winehq.org/RegressionTesting
http://bugs.winehq.org/show_bug.cgi?id=20681
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Summary|Microsoft Visual C++ .NET |Microsoft Visual C++ .NET |2003 INTERNAL COMPILER |2003 INTERNAL COMPILER |ERROR: regression from |ERROR |1.1.29 | Severity|critical |normal
http://bugs.winehq.org/show_bug.cgi?id=20681
Eric Pouech eric.pouech@orange.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@orange.fr
--- Comment #2 from Eric Pouech eric.pouech@orange.fr 2009-11-12 14:54:40 --- to get further,
A/ edit dlls/msvcrt/undname.c, and around line 76, set #define MAX_ARRAY_ELTS 64 and recompile, and see if it helps
B/ if not, run WINEDEBUG=+msvcrt wine cl /c ..... > foo and attach here the output (or the last call to __unDName before the error
thanx
http://bugs.winehq.org/show_bug.cgi?id=20681
--- Comment #3 from Ben Webb ben@salilab.org 2009-11-12 20:02:07 --- Yes, the problem still occurs with latest git.
As per comment 2, I set MAX_ARRAY_ELTS to 64 and I am now able to run MSVC again without it crashing. Does that help you determine the cause of the problem, or would you like me to run a regression test as Jeff requested and pin it down to the actual commit?
http://bugs.winehq.org/show_bug.cgi?id=20681
--- Comment #4 from Ben Webb ben@salilab.org 2009-11-12 22:02:24 --- Regression test results:
7acd74ee0743974b5e500f43d340560899ba9eee is first bad commit commit 7acd74ee0743974b5e500f43d340560899ba9eee Author: Alexandre Julliard julliard@winehq.org Date: Thu Oct 15 13:53:14 2009 +0200
setupapi: Add support for using a wildcard in fake dll creation.
This creates fake dlls for all the files we can't find and that haven't been created already.
:040000 040000 f85fe0d5238824e85144f817679ade5a897e6a7c 988f516885a2fed474b29e836257c357e1be59ad M dlls :040000 040000 5d7282c718db30b20a155467ca20a591c731abe2 002a1574d7f638c9bbd2f57ff7174f78f3afe392 M tools
http://bugs.winehq.org/show_bug.cgi?id=20681
--- Comment #5 from Eric Pouech eric.pouech@orange.fr 2009-11-14 06:59:26 --- I'm still interested of the last call to undname (running with WINEDEBUG=+msvcrt) so that I can add a test case for this one A+
http://bugs.winehq.org/show_bug.cgi?id=20681
--- Comment #6 from Ben Webb ben@salilab.org 2009-11-14 11:33:59 --- Created an attachment (id=24736) --> (http://bugs.winehq.org/attachment.cgi?id=24736) undname-log.gz
As requested in comment 5, the output from running with WINEDEBUG=+msvcrt. I've included the entire log for completeness, but it includes only one call to unDName:
trace:msvcrt:__unDNameEx (0x107b9ee0,??0?$Foo@U?$vector_c@H$00$01$0?1$0A@$0A@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@@mpl@boost@@@@QAE@XZ,4128,0x10722e00,0x10708be0,(nil),880)
http://bugs.winehq.org/show_bug.cgi?id=20681
Eric Pouech eric.pouech@orange.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #7 from Eric Pouech eric.pouech@orange.fr 2009-11-15 15:17:42 --- thanks I sent to wine-patches a different patch - it no longer relies on a fixed size array - I included the test case A+
http://bugs.winehq.org/show_bug.cgi?id=20681
--- Comment #8 from Dmitry Timoshkov dmitry@codeweavers.com 2009-11-16 12:49:40 --- The patches have been committed.
http://bugs.winehq.org/show_bug.cgi?id=20681
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #9 from Alexandre Julliard julliard@winehq.org 2009-12-04 12:16:26 --- Closing bugs fixed in 1.1.34.