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
>
>
prev 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