Ada Toolchain for RTEMS 4.10/LEON3

Joel Sherrill joel.sherrill at
Wed Apr 28 21:17:20 UTC 2010

On 04/28/2010 04:06 PM, Peter Mendham wrote:
> Dear all,
> I have a requirement for Ada support on RTEMS 4.10 and, although I 
> know that this is not currently supported, I thought I would give it a 
> try.  I have been following, roughly, the instructions on the wiki.  
> My current build attempt is based on:
> binutils 2.201.1
> gmp 5.0.1
> mpc 0.8.1
> mpfr 2.4.2
> newlib 1.18.0
> gcc 4.5.0
> I build sparc-rtems binutils, a multilibbed native gcc with C and Ada 
> support, a multilibbed sparc-rtems gcc with C and C++ support only, 
> followed by a multilibbed sparc-rtems gcc with C, C++ and Ada 
> support.  I specify a sysroot during the cross-compile builds.  
> Predictably, everything goes wrong for me during the final step.  The 
> build drops out with errors in gcc/ada/rts/socket.c.  These seem to be 
> related to missing types (especially struct servent).  I'm guessing 
> this should come from gsocket.h, and there are some interesting 
> comments in that file about RTEMS support but I'm afraid that I don't 
> understand a word of them.
> I previously tried a build with gcc 4.4.3 and got hung up on 
> generation, again preventing socket code from compiling 
> (but Ada code this time).
> Has anyone successfully built a multilibbed Ada toolchain for recent 
> RTEMS versions?  It looks some major issues have been resolved, 
> especially since the wiki entry was written.  Can anyone offer any advice?
Yes.  :-D

I can't speak for the accuracy of the wiki at the moment but the
scripts in the gcc-testing CVS module can build it.  The trick is
to build RTEMS with networking multilib'ed and install it
and the BSP you are interested in before building Ada.

There are  two patches from the SVN head you need that were
too late for the branch.

2010-04-15  Joel Sherrill <joel.sherrill at>

         * g-socket.adb: A target can have multiple missing errno's.  This
         will result in multiple errno's being defined as -1.  Because 
of this
         we can not use a case but must use a series of if's to avoid
         a duplicate case error in GNAT.Sockets.Resolve_Error.

2010-04-13  Joel Sherrill <joel.sherrill at>

         * gsocket.h: Run-time can no longer be built without network
         OS headers available.  Changing RTEMS GNAT build procedure to
         reflect this and letting run-time build use network .h files.

> Thanks in advance,
> Peter
> SciSys UK Limited. Registered in England and Wales No. 4373530.
> Registered Office: Methuen Park, Chippenham, Wiltshire SN14 0GB, UK.
> P Before printing, please think about the environment.

Joel Sherrill, Ph.D.             Director of Research&  Development
joel.sherrill at        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
    Support Available             (256) 722-9985

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gsocket.h.diff
URL: <>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: g-socket.adb.diff
URL: <>

More information about the users mailing list