Ada Language Support in sparc-rtems-gdb

Joel Sherrill <joel@OARcorp.com> joel.sherrill at OARcorp.com
Wed Sep 22 17:37:23 UTC 2004


Chris Caudle wrote:
> What is the history of Ada on RTEMS?  Was it required for the original U.S. Army project because of Department of Defence software requirements?
> I notice the timeline mentions C and Ada implementation in RTEMS version 3.  Was that just support for Ada applications, or was RTEMS itself actually written in Ada?
> 
> Just curious of the history.

RTEMS was originally written in C targeting MC68020 on an MVME135 board.
The DoD had the dreaded Ada mandate back then so eventually we had to
try to integrate it as an Ada library and run-time option.  We
succeeded (with pain) with an MV68020 Ada toolset but failed
to integrate the i386 port with an Ada compiler a year later.
The Ada compilers back then were EXTREMELY proprietary and had
their own unique object file formats.  You were all but guaranteed
that external high-level language code would not link right
with Ada code.

[Sidenote: They were also slow and we certainly didn't like
leaving the Motorola UNIX or Interative PC UNIX boxen to
use the Vax/VMS to compile.  Shudder...]

The solution was to provide C and Ada implementations of RTEMS.
For a while, there were two complete implementations of RTEMS -- in
C and Ada.  Eventually, C users showed up in quantity, Ada users
were a small user base for RTEMS even then compared to C.
About this itime the GNAT project started.  We were already using
GNU tools (I ported glibc 1.x to a bare board before this) by
then so it seemed a natural solution.  This is in the 1993-4
and RTEMS 3.2.x timeframe.

We decided that GNAT had to be able to link with GCC compiled C
code so focused on adding POSIX threads to RTEMS.  That was the
clear and obvious way GNAT was going to have portable threading.
So we started implementing POSIX threads before GNAT had a
run-time design. We kept compiling the Ada RTEMS implementation
with GNAT 2.x (yes that old) and when gnat got to the 3.0[345]
range, we starting integrating RTEMS as an alternate run-time.

That became the official Ada solution.  Army funding ended
about that time but as a crowning touch on the Army RTEMS
Project, OAR paid for the validation certificate for GNAT/RTEMS
on the ERC32.  It seemed like icing on the cake at the time.

We have kept Ada working as best we can in spite of the small
user base and headaches because after all these years, we
still hear a voice in the corner reminding us that the original
goal for RTEMS was to have a freely available real-time OS
for use with Ada.  The Ada run-times were expensive and the
Army didn't like tracking licenses.  Ironically the cost to
track the licenses for a 20-30 year system is worse than the
licenses themselves.

I think that covers most of the details.  Remember RTEMS has roots
back to the 1988 timeframe.  I have worked on RTEMS since 1989.

--joel

> -- Chris Caudle
> 





More information about the users mailing list