Ressources on Ada & RTEMS

Joel Sherrill joel.sherrill at oarcorp.com
Thu Dec 7 14:38:35 UTC 2006


Jérôme Hugues wrote:
> Hi,
>
> I'm currently testing the Ada support in RTEMS, I've compiled so far  
> RTEMS 4.6.99.3 with binutils 2.16.1, GCC 4.1.1, everything went  
> smooth, using the information provided on the Wiki pages related to Ada.
>
> For now, I've been able to compile a simple Hello World from Ada  
> examples, it runs fine on QEmu
>
> I then tried to compile an Ada multi-tasking example, I've been stuck  
> by a strange bug,
> RTEMS reports that "Exception 13 is caught at PC 7" by one thread,
>
> This looks like a stack checking problem (AFAICT). I did work around  
> it by recompiling part of the GNAT runtime.
> Namely, I copied s-taprop.ad? in my build dir, and then run gnatmake - 
> a to force partial recompilation of the elements of the run-time that  
> depends on this package.
>
> This sounds rather strange. It is clearly a dirty hack, but it is  
> working.
>
> I'm therefore looking for any resources on compiling Ada programms  
> for RTEMS. It seems the provided examples are not up to date with  
> other makefiles (e.g. those provided for the C examples). do you have  
> any pointers ?
>   

Sounds like you are building the same way the adatests in the tree were 
built
the last time I looked.  The Ada run-time is NOT built multilib like the 
rest
of the libraries.  So it is quite likely that the run-time built by 
default is using
cpu cflags that are not compatible with  those used to compile your 
application.

Did you save logs of building your toolset?  It would be interesting to 
compare
the gcc flags used then to those used when you compiled it with your 
application.

Long term, the right solution is for the Ada run-time to be built 
multilib lilke the
other libraries (e.g. libc.a, libm,a, libgcc.a, etc.).  That is a gcc 
project and no
one has volunteered YET. :)

So I think what you are doing is correct given the current state of the 
world.
I am a bit surprised that this is happening on the i386 but it is a 
known issue
across all targets.

--joel
> Thanks
>
>   




More information about the users mailing list