comp.lang.ada
 help / color / mirror / Atom feed
From: anon@anon.org (anon)
Subject: Re: runtime systems
Date: Sun, 04 May 2008 05:57:34 GMT
Date: 2008-05-04T05:57:34+00:00	[thread overview]
Message-ID: <ifcTj.288474$cQ1.286521@bgtnsc04-news.ops.worldnet.att.net> (raw)
In-Reply-To: 5b8b9ed2-e03b-4f97-8666-9a11a5450a32@w74g2000hsh.googlegroups.com

In <5b8b9ed2-e03b-4f97-8666-9a11a5450a32@w74g2000hsh.googlegroups.com>, emconuk <emconuk@googlemail.com> writes:
>Hello.
>
>I would like to find out some more about available Ada runtime
>systems.
>
>I know that Adacore have a runtime system ported to various cross
>platforms (but I can't figure out its licensing), and I know about the
>other commercial offerings from GHS and Aonix.  I'm also aware of
>MarteOS and RTEMS as possible non-commericial offerings.
>

First, for commercial Ada(s). Most Ada vendors are Intel/Mac systems.
There are others such as IBM versions which can be use on AIX, Linux, 
or Windows systems.

Now, for non-commericial Ada most programmers use GNAT.

For "GNAT Ada 2005" and a number of "GNAT Ada 95" versions, the 
license is GPL 2 which has been updated to GPL 3 in a number of ports. 
All ports of the compiler must also be under GPL 2 or 3 and open source 
only (see "GNAT Technology FAQ" at libre.adacore.com). 


As for MarteOS and RTEMS OSs they use GNAT as their main language and 
have ported the existing GNAT RTL to fit their code. But the bootstrap 
and startup code is still written in C and ASM. License is GPL 2 or 3.


>
>However, I would like to hear about any other solutions out there.  I
>used to use xd-ada and it had quite a simple little rts that could be
>customised for different hardware platforms.  I don't want an OS - I
>just want to hear about baremetal runtime systems.
>
>For example, I really like the look of the latest Gaisler Reasearch
>LEON3 processor and perhaps other FPGA soft-cores.  Anyone have a non-
>commericial Ada rts running on those type of platforms ?
>



As for a new RTL.  The GNAT RTL uses both Ada and interface C 
routines to link into the OS which must be rewritten. The C code is 
used because Ada and GNAT does not support conditional compiling.

The RTL is only part of the problem the main isuue is the compiler.

The GNAT compiler uses a two phases compiler system to generate 
code. The main compiler program is called GNAT1 and starts in file 
"gnat1drv.adb" which translates the Ada source code into the target 
processor assembly code.  This is done by GNAT1 first calling the 
frontend compiler ("Frontend.adb") which is written in Ada (no 
modification is needed). Then if code is to be generated, GNAT1 
calls the Backend routine ("back_end.adb") which in turn calls a C 
routine (GNAT GIGI) found in file "trans.c" to perform the source code 
generation for the object computer (major modification is needed to 
produce code for new processor). (Up to 500K lines of code). Then the 
second phase is to call the an assembler (GCC "as") to processor the 
object code for that processor if GNAT1 finishes with no errors (must 
have or write a ported version of the GCC "as"). These two phases are 
perform at the request of the GCC "gcc" compiler.

So, first look for a GCC C compiler package for the processor that you 
wish to use. This package should have the GCC C compiler "gcc", an 
assembler "as" as well as the linker "ln" with libraries. And if your 
luck you may find an GNAT Ada port or links to an Ada project, there.


>
>thanks.
>Martyn
>
>




      parent reply	other threads:[~2008-05-04  5:57 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-03 19:35 runtime systems emconuk
2008-05-04  2:51 ` Lucretia
2008-05-04 16:44   ` Ed Falis
2008-05-04 19:08     ` Lucretia
2008-05-04  5:57 ` anon [this message]
replies disabled

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