From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Stack checking in GNAT (was: ada compiler?)
Date: Fri, 16 Nov 2007 10:41:47 +0100
Date: 2007-11-16T10:41:47+01:00 [thread overview]
Message-ID: <87tznm1q90.fsf_-_@ludovic-brenta.org> (raw)
In-Reply-To: 87pryb2e2k.fsf@willow.rfc1149.net
Samuel Tardieu writes:
> You have two ways of doing stack checking:
>
> 1- at the GCC level by checking the stack at the entry of every
> subprogram and comparing it to a thread/task specific marker; this
> is costly
>
> 2- at the OS level by mapping a page after the stack which does not
> allow either reads or writes to the page (or, when this is not
> possible, which doesn't allow writes)
[detailed explanation]
> Does that answer your question?
Yes, thank you very much. It seems that I can enable or disable stack
checking, and select from the two methods above, by patching some
flags in System and Targparm. In System:
Stack_Check_Default : constant Boolean := False;
Stack_Check_Probes : constant Boolean := False;
Stack_Check_Default is True only on VMS.
Stack_Check_Probes is True only on VMS, IRIX, MinGW, Solaris and Tru64
Unix (it depends on the OS, not the processor).
And in Targparm.ads:
Stack_Check_Probes_On_Target : Boolean := False;
-- Indicates if stack check probes are used, as opposed to the standard
-- target independent comparison method.
(the "stack check probes" are method 2, the "standard target
independent comparison method" is method 1)
Stack_Check_Default_On_Target : Boolean := False;
-- Indicates if stack checking is on by default
I don't understand the difference between the flags in System and
those in Targparm (i.e. why are there two sets of flags, and what
happens if their values are different?). Also I am curious to know
what would be the effect of changing these flags in Debian. Can you
help?
--
Ludovic Brenta.
next prev parent reply other threads:[~2007-11-16 9:41 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-09 22:25 ada compiler? Bill Cunningham
2007-11-09 22:39 ` anon
2007-11-09 22:59 ` Bill Cunningham
2007-11-09 23:28 ` anon
2007-11-09 23:50 ` Jeffrey R. Carter
2007-11-10 0:32 ` anon
2007-11-10 4:15 ` Jeffrey Creem
2007-11-10 5:08 ` tmoran
2007-11-10 6:12 ` anon
2007-11-10 8:35 ` tmoran
2007-11-10 20:20 ` anon
2007-11-10 22:15 ` Jeffrey Creem
2007-11-11 1:01 ` anon
2007-11-11 1:14 ` (see below)
2007-11-11 2:21 ` Georg Bauhaus
2007-11-11 4:08 ` Jeffrey R. Carter
2007-11-13 13:24 ` Ludovic Brenta
2007-11-14 7:00 ` Jacob Sparre Andersen
2007-11-14 9:15 ` Georg Bauhaus
2007-11-14 10:26 ` Ludovic Brenta
2007-11-14 12:25 ` Georg Bauhaus
2007-11-14 15:09 ` Ludovic Brenta
2007-11-14 16:03 ` Georg Bauhaus
2007-11-14 16:36 ` Ludovic Brenta
2007-11-14 17:39 ` Georg Bauhaus
2007-11-14 20:40 ` Ludovic Brenta
2007-11-15 9:59 ` Georg Bauhaus
2007-11-14 17:52 ` Georg Bauhaus
2007-11-16 1:07 ` Samuel Tardieu
2007-11-16 1:58 ` tmoran
2007-11-16 9:41 ` Ludovic Brenta [this message]
2007-11-16 10:56 ` Stack checking in GNAT Samuel Tardieu
2007-11-16 13:04 ` Ludovic Brenta
2007-11-17 7:24 ` anon
2007-11-29 0:32 ` Robert A Duff
2007-11-17 1:37 ` ada compiler? Randy Brukardt
2007-11-17 1:18 ` Randy Brukardt
2007-11-29 0:41 ` Robert A Duff
2007-11-14 21:31 ` Niklas Holsti
2007-11-17 1:50 ` Randy Brukardt
2007-11-14 18:33 ` anon
2007-11-12 5:13 ` anon
2007-11-11 14:15 ` Jeffrey Creem
2007-11-13 7:11 ` Martin Krischik
2007-11-13 8:47 ` anon
2007-11-13 9:34 ` to gnat make or not to gnat make (Was: ada compiler?) Martin Krischik
2007-11-13 22:46 ` anon
2007-11-13 23:14 ` to gnat make or not to gnat make Simon Wright
2007-11-14 9:21 ` to gnat make or not to gnat make (Was: ada compiler?) Georg Bauhaus
2007-11-13 22:41 ` ada compiler? Simon Wright
2007-11-17 2:07 ` Randy Brukardt
2007-11-17 7:51 ` anon
2007-11-17 9:00 ` Pascal Obry
2007-11-17 12:24 ` Ludovic Brenta
2007-11-19 21:35 ` Randy Brukardt
2007-11-10 15:03 ` (see below)
2007-11-12 16:38 ` Adam Beneschan
2007-11-13 3:16 ` John W. Kennedy
2007-11-13 16:46 ` Adam Beneschan
2007-11-10 3:07 ` Georg Bauhaus
2007-11-13 0:20 ` adaworks
2007-11-13 22:27 ` Simon Wright
2007-11-14 17:32 ` Britt Snodgrass
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox