* Answers for Ludovic Brenta and Georg Bauhaus (Re: ada compiler?)
@ 2007-11-15 9:33 anon
2007-11-15 10:23 ` Georg Bauhaus
0 siblings, 1 reply; 2+ messages in thread
From: anon @ 2007-11-15 9:33 UTC (permalink / raw)
1. The best way set "-fstack-check" as a default to install the gcc
source tree. And as many language packages as you want to
default using "-fstack-check". I would say skip JAVA for now.
2. Check for current GNAT or upgrade to GNU GPL version if needed
3. Configure gcc system as normal with this extra option added
--enable-fstack-check
aka
../source/configure --enable-fstack-check <other options>
4. Build GCC system the normal way as describe in manual or the way
you like, may be in stages.
Note: This way, the complete language packages define in the configure
'--enable-language="c,ada,..."' will be set to use stack checking. As
for Java you might want to skip this, since the "-fstack-check" routines
does slow down the execution and JAVA is slow enough. For languages,
that you want to use without the "stack-check" rebuild in another
directory the normal way.
The other way I stated only modifies the 'gnat1' but a lot of people here
may get upset if I show you those instructions. So, you can skip <part 1>
from the other post.
Now, the '-fstack-check' add the following three statements to the start
of each routine.
; Assembly (x86)
leal -4392(%esp),%eax
pushl %eax
call __gnat_stack_check
-- or the Ada version
AX := Stack - 4392 ; -- Insure routine has at least 4392 stack size
stack_check ( AX ) ; -- returns if AX is valid stack location
-- else result in Storage_Error exception
Note: the initial constant 4392 may be a different value on other
systems.
The 'Stack_Check' function can be found in
System.Stack_Checking.Operations.Stack_Check function
defined in the s-stchop.adb file.
For GNAT RTS, there are 4 packages, that deal with the stacks.
System.Secondary_Stack => s-secsta.ad?
System.Stack_Usage => s-stausa.ad?
System.Stack_Checking => s-stache.ad?
System.Stack_Checking.Operations => s-stchop.ad? -- core routines
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Answers for Ludovic Brenta and Georg Bauhaus (Re: ada compiler?)
2007-11-15 9:33 Answers for Ludovic Brenta and Georg Bauhaus (Re: ada compiler?) anon
@ 2007-11-15 10:23 ` Georg Bauhaus
0 siblings, 0 replies; 2+ messages in thread
From: Georg Bauhaus @ 2007-11-15 10:23 UTC (permalink / raw)
anon wrote:
> 1. The best way set "-fstack-check" as a default to install the gcc
> source tree.
Since Ludovic maintains GNAT for Debian, we have every reason to
assume he is familiar with how to build GNAT from source.
In fact, he has demonstrated how he works with the GCC sources
at an AdaCore session during FOSDEM 2006.
Debian related Ada sources are also available from a Monotone
repository hosted by Ada France, in case you want to have a look.
> 3. Configure gcc system as normal with this extra option added
>
> --enable-fstack-check
The question is, should this be done? Why? Why not?
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-11-15 10:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-15 9:33 Answers for Ludovic Brenta and Georg Bauhaus (Re: ada compiler?) anon
2007-11-15 10:23 ` Georg Bauhaus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox