http://bugs.winehq.org/show_bug.cgi?id=32440
Bug #: 32440 Summary: The Secret of Monkey Island Special Edition crashes on start (Wine compiled with -O2 cflag) Product: Wine Version: 1.5.19 Platform: x86 OS/Version: Linux Status: NEW Keywords: regression Severity: normal Priority: P2 Component: gdi32 AssignedTo: wine-bugs@winehq.org ReportedBy: gyebro69@gmail.com CC: julliard@winehq.org Classification: Unclassified Regression SHA1: 351e58318ab453d88efb236bc350099d2c151634
Created attachment 42797 --> http://bugs.winehq.org/attachment.cgi?id=42797 terminal output
I have the non-Steam version of the game, and it crashes very early after starting (before the Securom dialog asking for the serial number could appear). I'm used to compiling Wine with CFLAGS="-g -gdwarf-2 -O2", and the crash occurs with that optimization setting. If I compile Wine without optimization CFLAGS="-g -gdwarf-2 -O0" then the game starts correctly. Also, If I launch the game with certain WINEDEBUG environment variable set (e.g. WINEDEBUG=+font) and compiled with -O2, then the game starts fine.
The problem appeared after 351e58318ab453d88efb236bc350099d2c151634 is the first bad commit commit 351e58318ab453d88efb236bc350099d2c151634 Author: Alexandre Julliard julliard@winehq.org Date: Tue Dec 11 16:52:43 2012 +0100
gdi32: Fix text justification to properly handle logical coordinates.
:040000 040000 be35b776d5d11e49d985507c76a7624e7bf9ef5a 61a3a2568b21046e1eb94e40c5581c0dcfb2c84e M dlls
Fedora 17 gcc version 4.7.2 20120921 (Red Hat 4.7.2-2) (GCC) wine-1.5.19-104-g1d1cb52
No demo available. Let me know what would be of help.
http://bugs.winehq.org/show_bug.cgi?id=32440
--- Comment #1 from Alexandre Julliard julliard@winehq.org 2012-12-13 14:37:50 CST --- You could try a +relay trace, but it sounds more like a timing issue unrelated to that patch.
http://bugs.winehq.org/show_bug.cgi?id=32440
--- Comment #2 from GyB gyebro69@gmail.com 2012-12-13 23:42:35 CST --- (In reply to comment #1)
You could try a +relay trace, but it sounds more like a timing issue unrelated to that patch.
The game starts normally with +relay, too.
It is Securom that is broken, I have a few games containing Securom v7.41 and .42, and now they all crash with this
pushl 0x0(%edx)
backtrace. Games with previous Securom version (v7.34,.35,.38) are still able to start. If I replace the original game executable with an 'unofficial' one, then the game starts normally. Reverting commit 351e58318... also works around the crash.
There has been a particular demo version for Plants vs. Zombies that contained Securom v7.42, and that version crashes in the same way on my system. Unfortunately the website doesn't store the demo any more, so I uploaded the installer here, in case you'd like to reproduce the problem: https://docs.google.com/open?id=0B-tTbLKBl-tOS2NrbUJWeHJHV0U
plants_vs_zombies_-_game_of_the_year_edition_1000165001_setup.exe md5sum: c257379ed33481ea84198fddf8bf1c6c
http://bugs.winehq.org/show_bug.cgi?id=32440
--- Comment #3 from Alexandre Julliard julliard@winehq.org 2012-12-14 04:13:45 CST --- It doesn't crash here, and I don't see any calls to the text justification functions. I expect it's just a code generation issue, maybe causing different stack usage or something like that. You could try moving stuff around to see what part of the change causes the problem.
http://bugs.winehq.org/show_bug.cgi?id=32440
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression |download Component|gdi32 |-unknown Summary|The Secret of Monkey Island |The Secret of Monkey Island |Special Edition crashes on |Special Edition crashes on |start (Wine compiled with |start (GCC 4.7.x breaks |-O2 cflag) |certain Securom versions) Regression SHA1|351e58318ab453d88efb236bc35 | |0099d2c151634 |
--- Comment #4 from GyB gyebro69@gmail.com 2012-12-14 14:09:28 CST --- (In reply to comment #3)
You could try moving stuff around to see what part of the change causes the problem.
I don't quite know what you mean by that. In the meantime I compiled various gcc versions(4.6.3, 4.7.0, 4.7.2) and found that the crash didn't occur when Wine was compiled with gcc 4.6.3, but the problem exists with gcc 4.7.0 or 4.7.2, so it's not a real regression in Wine.
http://bugs.winehq.org/show_bug.cgi?id=32440
--- Comment #5 from GyB gyebro69@gmail.com 2012-12-17 12:50:31 CST --- I remembered commenting on bug #32407 a few days ago. Looking at the backtrace in both bugs you can see some similarities. The strange is, I didn't have the problem at the time...but now I have, and can reproduce the crash in Tales of Monkey Island (but only after commit 351e58318..., not with 1.5.19). The two games are different, I have both from Telltale Games, and they both contain Securom 7.41. This makes me think that this one and bug #32407 are possibly about the same problem.
http://bugs.winehq.org/show_bug.cgi?id=32440
GyB gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |4adfb787f4e8c36a37ce1d53a7e | |6df16d03ecd8a Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #6 from GyB gyebro69@gmail.com 2012-12-17 22:12:31 CST --- All those games that were affected start fine in wine-1.5.19-186-g1cd0c4a. The fix came in the form of http://source.winehq.org/git/wine.git/commitdiff/4adfb787f4e8c36a37ce1d53a7e...
Marking as fixed, thanks.
http://bugs.winehq.org/show_bug.cgi?id=32440
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org 2012-12-21 13:28:48 CST --- Closing bugs fixed in 1.5.20.