comp.lang.ada
 help / color / mirror / Atom feed
From: anon@anon.org (anon)
Subject: Re: How do I go about creating a minimal GNAT runtime?
Date: Sun, 01 Mar 2009 19:13:53 GMT
Date: 2009-03-01T19:13:53+00:00	[thread overview]
Message-ID: <R7Bql.409687$Mh5.142056@bgtnsc04-news.ops.worldnet.att.net> (raw)
In-Reply-To: Hhlql.13834$D32.13784@flpi146.ffdc.sbc.com

You need to understand what this person means by "minimal GNAT runtime"
system. From his web site, he means no Linux, Windows or other OS, aka 
the Ada program is the OS and all libraries must be static.  That is, 
until he creates a dynamic or shared library loader, but that means he 
first must build a storage device driver with a file system.

A problem with GNAT and this design is that GNAT uses around 50 packages 
to build and maintain the Exceptions with the compiler forcing a number 
of these packages to be loaded. And some of these packages uses C files 
which uses the C "os_exit" and "abort" routines (OS based) to handle the 
unhanded exceptions which these files must be converted to Ada and the 
OS links be replaced. And some of these C files can exceed 4,000 lines 
of code with comments.

Also, if your talking about the GNAT Ada RTL well there are over 650 
packages in the Ada 2005 version that one has to check and may have to be 
rewrite just to take out the OS links. That around 400K for Ada 95, a lot 
more for the Ada 2005 specs of source code without comments to go 
through as stateed in some runtime documentation that is around. Then you 
have to add some code to handle the hardware exceptions that's normally 
deal with by the OS.

All of this means it a big job.  This could help to explain why Adacores 
charges $15K per years for someone to get those special runtime system 
with GNAT PRO series. 


In <Hhlql.13834$D32.13784@flpi146.ffdc.sbc.com>, Dimonax <dimonax@nospam.net> writes:
>On Fri, 27 Feb 2009 17:42:17 -0600, Randy Brukardt wrote:
> 
>> For Windows, things are bigger, but not that much. I see a 70K
>> executable for a simple test program left behind in one of my test
>> directories. That program uses Text_IO but not any tasking (tasking is
>> automatically omitted from the executable if not used). The tasking
>> runtime would push the size up to (I think) about 150K.
>> 
>>                                    Randy.
>
>The easiest way to knock down the size of an Ada binary, that I know of, 
>is just to use shared libraries instead of static linking. Of course that 
>isnt always an option, but on systems where its supported you might want 
>to give it a try.
>
>Dimonax
>




  reply	other threads:[~2009-03-01 19:13 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-24 20:47 How do I go about creating a minimal GNAT runtime? Lucretia
2009-01-25 11:13 ` Ludovic Brenta
2009-01-25 11:18   ` Ludovic Brenta
2009-01-25 14:00     ` Lucretia
2009-01-25 14:00   ` Lucretia
2009-01-25 19:43     ` Ludovic Brenta
2009-01-25 20:30 ` xavier grave
2009-01-26  6:52 ` anon
2009-01-26 21:36 ` anon
2009-02-10  2:34 ` Exceptions (was Re: How do I go about creating a minimal GNAT runtime?) anon
2009-02-16  1:41 ` How do I go about creating a minimal GNAT runtime? Hibou57 (Yannick Duchêne)
2009-02-21  9:11 ` Dimonax
2009-02-21 16:41   ` anon
2009-02-21 21:14     ` Dimonax
2009-02-22  1:36       ` anon
2009-02-27 23:42   ` Randy Brukardt
2009-03-01  1:12     ` Dimonax
2009-03-01 19:13       ` anon [this message]
2009-03-02 22:07         ` Randy Brukardt
2009-03-03  2:00           ` anon
2009-03-03 22:23             ` lucretia
2009-03-04  0:03               ` anon
2009-03-11 12:54   ` gautier_niouzes
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox