http://bugs.winehq.org/show_bug.cgi?id=36526
Bug ID: 36526 Summary: When Delphi programs (e.g. InnoSetup) start, their global variables are corrupt. Product: Wine Version: 1.4.1 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: kernel32 Assignee: wine-bugs@winehq.org Reporter: skiy@skiy.co.za
Created attachment 48611 --> http://bugs.winehq.org/attachment.cgi?id=48611 A simple test case, described how to use it already.
I have noticed that, when I write a Delphi program on my system, it will often crash. Like this: 1. I write source code 2. I compile using: wine dcc32 MyProgram.dpr 3. I run program: wine MyProgram 50% of time the Wine debugger starts. The problem changes *randomly* when I change compiler switches, for example Stack Frames = on/off, Optimization = on/off. Those are Delphi switches.
When I run other peoples programs the problem might be the same, example: InnoSetup always crashes. That's another Delphi app.
When I run other peoples, or my own, C++ programs, everything is fine!
I have tried to pinpoint the error: My conclusion, since InnoSetup wizards crash during initialization, is that the global variables are corrupted.
A global variable is like: when you declare something *outside* of a function. They are supposed to be set to zero in Delphi. I have attached proof that they are not. Like this: 1. I wrote SHR.pas 2. I did: wine dcc32 SHR.pas 3. I run: wine SHR.exe 60 Program reports incorrect log information: R = Random number! 4. I run same file on Windows: R = 0, which is correct.
If you can't see R, type Hello and press enter.
Summary: The global memory block does not get zeromem() run on it, under wine. No idea why.
http://bugs.winehq.org/show_bug.cgi?id=36526
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|kernel32 |-unknown Severity|major |normal
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com --- Do you have this problem when building with Lazarus? Please attach a source file too, and update Wine - 1.4.1 is very old, try with latest dev release 1.7.19.
http://bugs.winehq.org/show_bug.cgi?id=36526
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- Oh, another thing to test is to compare generated binaries produced on Windows and with Wine.
http://bugs.winehq.org/show_bug.cgi?id=36526
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
I can't reproduce this, works for me.
--- snip --- $ wine ./SHR.exe 60 <pressed enter> madness
monkeys R = 0 random set to 60 --- snip ---
--- snip --- $ wine ./SHR.exe 60 <pressed enter> madness
monkeys R = 0 random set to 27 --- snip ---
It's as Nikolay said: you're using an outdated Wine version which is no longer supported. Upgrade.
Regards
http://bugs.winehq.org/show_bug.cgi?id=36526
--- Comment #4 from skiy@skiy.co.za --- Created attachment 48612 --> http://bugs.winehq.org/attachment.cgi?id=48612 Trying to install InnoSetup.
I am just showing InnoSetup failing here.
Anyway, I tested Lazarus version of my program, and it runs O.K.
I guess this bug is limited to Delphi (InnoSetup is compiled with new version of Delphi.)
Tried to use SHR.exe compiled on Winodws, but same problem.
http://bugs.winehq.org/show_bug.cgi?id=36526
--- Comment #5 from skiy@skiy.co.za --- Could you please download and try InnoSetup just to make sure?
http://bugs.winehq.org/show_bug.cgi?id=36526
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer URL| |http://files.jrsoftware.org | |/is/5/isetup-5.5.4-unicode. | |exe
--- Comment #6 from Anastasius Focht focht@gmx.net --- Hello skiy,
it's pointless to post further problems unless you updated to recent Wine version!
FYI your example 'isetup-5.5.4-unicode.exe' (http://files.jrsoftware.org/is/5/isetup-5.5.4-unicode.exe) installs/runs fine here.
There is nothing to fix in Wine here.
$ wine --version wine-1.7.19-56-gee13e10
Regards
http://bugs.winehq.org/show_bug.cgi?id=36526
--- Comment #7 from skiy@skiy.co.za --- Thank you very much.
http://bugs.winehq.org/show_bug.cgi?id=36526
skiy@skiy.co.za changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |UPSTREAM
--- Comment #8 from skiy@skiy.co.za --- It is just my Wine version.
http://bugs.winehq.org/show_bug.cgi?id=36526
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|UPSTREAM |FIXED
--- Comment #9 from Anastasius Focht focht@gmx.net --- Hello skiy,
not 'upstream' since this was fixed in newer Wine versions.
There were some unfortunate choices of package maintainers to bundle distro releases with outdated Wine versions (with newer stable Wine available at that time), causing much grief and lots of wasted time to both, users and developers.
Regards
https://bugs.winehq.org/show_bug.cgi?id=36526
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.20.