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
