#1 2014-10-11 00:21:30

sjerinic
Member
Registered: 2013-02-11
Posts: 51

Problem on some WinXP machine

After changes from 01.10.2014 in SynCommons.pas, the clients have reported to me that the mormot client application can not be started on some Windows XP machines.

Old code:
  {$ifndef FPC}
  {$ifndef DOPATCHTRTL}
  if DebugHook=0 then // patch VCL/RTL only outside debugging
  {$endif}
    InitRedirectCode;
  {$endif}

changed into:
{$ifndef FPC}
  {$ifdef DOPATCHTRTL}
  if DebugHook=0 then // patch VCL/RTL only outside debugging
    InitRedirectCode;
  {$endif}
  {$endif}

I see that others have noticed this problem. Can we expect an update that will permanently solve this problem?

Best regards!

Offline

#2 2014-10-11 08:32:46

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 13,182
Website

Re: Problem on some WinXP machine

In fact, InitRedirectCode is doing some low-level hack to replace some low-level Delphi RTL with faster ASM functions.
Usually, just NOT defining DOPATCHTRTL in the application is OK, if you want not to patch the content.
The current implementation do already include some welcome modification: if DOPATCHRTL is not defined (which is the default), no patch would be applied.
If DOPATCHTRTL is defined, patch will be applied. But this is not the default.

IMHO we need to identify which patch is faulty, not disable the whole patching feature.
We used some of the patch since years with great stability...

What is the "error"?
What is the CPU used?
What is your compiler used?
Do you have any log file, including line numbers?
Did you define DOPATCHTRTL in your code?

If the patches have stability issues, we need to fix them.
Not just disable them.

If you want not the patch to be applied, ensure DOPATCHRTL is not defined for your project.

Offline

Board footer

Powered by FluxBB