This executable was generated 2014-03-25
using 7.4.1 go32v2 libgdb and using
make distclean all OPT="-n -gsl -O-"
at fpcsrc level,
on 2.6.4 source files with four modifications:
1) in rtl/go32v2/initc.pp
   to fix an error in the calling of C .dtor section functions
   (committed to trunk in 27281).
2) in  compiler/browcol.pas to avoid a range check error,
   (committed to trunk in 22947).
3) in ide/fpsymbol.pas to avoid
   an infinite recursion when Globals are displayed with GDB window
   while the debuggee is running.
   (committed to trunk 27284)
   (1-3 merged to fixes_2_6 in 27298).

4) in ide/fpmwnd.inc to avoid RTE 219 if compiled with -CR.
  (committed to trunk in 27305, merged to fixes_2_6 in 27316).


Enjoy, and please report any remaining problem,

Pierre Muller

Note that you can try to debug the IDE
by runnning it directly from a go32v2 GDB executable.
(The changes are mostly local without long range
line number changes, so that using official 2.6.4 Free Pascal
source should work).

You should also be able to recompile this executable after applying
the three patches below, with the same cvommand line as above.
if you add -dNOVESA to OPT, you would end up with
a go32v2 executable that can start in a remote Windows XP
session (unlike the included binary).


Context diffs below:

*** ..\rtl\go32v2\initc.bak	Sat May 21 10:42:41 2005
--- ..\rtl\go32v2\initc.pp	Tue Mar 25 10:04:52 2014
***************
*** 72,78 ****
         exit;
       already_done:=bss_count;
       f:=dtor[0];
!      nb:=((cardinal(last_dtor)-cardinal(first_dtor)) div sizeof(pointer));
       for i:=1 to nb do
         begin
            f();
--- 72,78 ----
         exit;
       already_done:=bss_count;
       f:=dtor[0];
!      nb:=((cardinal(@last_dtor)-cardinal(@first_dtor)) div sizeof(pointer));
       for i:=1 to nb do
         begin
            f();
*** \fpc264.rc1\fpcsrc\compiler\browcol.pas	Sun Oct 17 21:58:22 2010
--- ..\compiler\browcol.pas	Thu Mar 27 15:47:48 2014
***************
*** 48,54 ****
      sfObject        = $00000002;
      sfClass         = $00000004;
      sfPointer       = $00000008;
!     sfHasMemInfo    = $80000000;

  type
      TStoreCollection = object(TStringCollection)
--- 48,54 ----
      sfObject        = $00000002;
      sfClass         = $00000004;
      sfPointer       = $00000008;
!     sfHasMemInfo    = $40000000;

  type
      TStoreCollection = object(TStringCollection)
*** fpsymbol.bak        Tue Jan 10 22:59:46 2012
--- fpsymbol.pas	Tue Mar 25 17:51:07 2014
***************
*** 551,561 ****
      DisposeStr(St);
    if assigned(Expr) then
      begin
        p:=Debugger^.GetValue(Expr^);
        St:=NewStr(GetPChar(p));
        if assigned(p) then
          StrDispose(p);
-       GDBI:=Debugger^.RunCount;
      end;
  {$endif ndef NODEBUG}
  {$endif BROWSERCOL}
--- 551,562 ----
      DisposeStr(St);
    if assigned(Expr) then
      begin
+       { avoid infinite recursion here }
+       GDBI:=Debugger^.RunCount;
        p:=Debugger^.GetValue(Expr^);
        St:=NewStr(GetPChar(p));
        if assigned(p) then
          StrDispose(p);
      end;
  {$endif ndef NODEBUG}
  {$endif BROWSERCOL}
*** fpmwnd.bak	Sun Jul 20 22:37:50 2008
--- fpmwnd.inc	Thu Mar 27 15:30:50 2014
***************
*** 78,84 ****
      hcCalcWindow   : S:=PCalculator(P)^.GetTitle(MaxLen);
      hcBrowserWindow: S:=PBrowserWindow(P)^.GetTitle(MaxLen);
      hcCompilerMessagesWindow,
!     hcMessagesWindow:S:=PMessagesWindow(P)^.GetTitle(MaxLen);
      hcGDBWindow,
      hcDisassemblyWindow,
      hcWatchesWindow,
--- 78,84 ----
      hcCalcWindow   : S:=PCalculator(P)^.GetTitle(MaxLen);
      hcBrowserWindow: S:=PBrowserWindow(P)^.GetTitle(MaxLen);
      hcCompilerMessagesWindow,
!     hcMessagesWindow:S:=PFPWindow(P)^.GetTitle(MaxLen);
      hcGDBWindow,
      hcDisassemblyWindow,
      hcWatchesWindow,
