Ada Toolchain for RTEMS 4.10/LEON3

Joel Sherrill joel.sherrill at OARcorp.com
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 
> s-oscons.ads 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.

http://www.rtems.org/pipermail/rtems-tooltestresults/2010-April/000337.html

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 oarcorp.com>

         * 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 oarcorp.com>

         * 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 OARcorp.com        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: <http://lists.rtems.org/pipermail/users/attachments/20100428/adef8f47/attachment-0002.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: g-socket.adb.diff
URL: <http://lists.rtems.org/pipermail/users/attachments/20100428/adef8f47/attachment-0003.ksh>


More information about the users mailing list