On 31/03/11 4:08 PM, Brian Davis wrote:

> 
>  Again, I don't think either change addresses the actual problem,
> but is just padding things enough to prevent the memory exception
> caused by the actual problem(s).
> 
>  FWIW, change fragments for the stack debug edits follow below.
> 
> Brian
> 
> stack crash debugging patches to 0.29.1
> built on WinXP, GNAT GPL 2010
> 
> ortho/mcode/ortho_code-x86-flags_windows.ads
> 
> -   Stack_Boundary : constant Unsigned_32 := 2 ** 3;
> +   Stack_Boundary : constant Unsigned_32 := 2 ** 4;

This is already

Stack_Boundary : constant Unsigned_32 := 2 ** 4;

in ortho_code-x86-flags-macosx.ads

> 
> 
> ortho/mcode/ortho_code-x86-emits.adb
> 
> +      -- BMD add extra padding to stack frame before alignment
> +      -- still crashes on win32 / align 8
> +      Frame_Size := Frame_Size + 8;
> +
>        --  Align.
>        Frame_Size := (Frame_Size + X86.Flags.Stack_Boundary - 1)
>          and not (X86.Flags.Stack_Boundary - 1);
> 
The appears to be used to operate the stack in the runtime model.  It's done
by direct code generation.  I'd guess this is a size mismatch with something
in the Ada run time, maybe a change in argument count at some point in time.

The difference in the hello world/moon I was seeing under Mac OS X probably
implies a different number and/or set of stack operations.

The date shown on http://ghdl.free.fr/download.html for the last working
Windows version,  ghdl-installer-0.26.exe is May 2006 while the linux 0.26
was in April 2007.  There were a lot of changes in the code base during that
interval, as well as in gcc.  I'm using a gnat from MacAda from 2008.

I'll give the Frame_Size increase a try.  It may be worth building mcode in
Linux, too.




_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to