[Bug 36526] New: When Delphi programs (e.g. InnoSetup) start, their global variables are corrupt.

wine-bugs at winehq.org wine-bugs at winehq.org
Sun May 25 05:25:57 CDT 2014


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 at winehq.org
          Reporter: skiy at 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.

-- 
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