Porting ZCX (not SJLJ) for GNAT ARM EABI

Luke A. Guest laguest@archeia.com
Mon Sep 27 18:04:00 GMT 2010


On Mon, 2010-09-27 at 12:33 +0200, Olivier Hainque wrote:
> Luke A. Guest wrote:
> > Well, I'm reading as much as I can regarding this, but finding it
hard
> > to work some things out.
> 
>  That's a pretty complex and very precise machinery overall.

You're not wrong.

> > I've been reading through:
> > http://gcc.gnu.org/ml/gcc/2004-03/msg01779.html and trying some
example
> > code in C++ and Ada, but it doesn't seem to match up in some places,
> > i.e. no calls into __register_frame_info() yet the libgcc_eh.so
contains
> > the function.
> 
>  There's a variety of registration functions and some targets
>  don't resort to such calls at all, see unwind-dw2-fde-glibc.c.
> 
>  A quick glance suggests that your arm-linux port might be using the
>  latter (from t-linux if I'm not mistaken, I'm not at all familiar
with
>  the port though).

I can't see any mention of unwind in the the t-linux-eabi file, I'm
probably missing something I just don't unerstand here :D

>  While I know there are arm-eabi specifics wrt unwinding, I'm really
>  not familiar with the details so I'm not sure what exactly will be
>  needed for traceback computations.
> 
>  Wouldn't tb-gcc.c "just work" (using _Unwind_Backtrace) ?

I would expect so, but again, not sure on this yet.

>  especially when that needs to be repeated in several places.

Fair enough.

> > Hopefully, I can rely on some help from you AdaCore guys?
> 
>  Some, sure :) As I said we aren't familiar with the details of the
ARM
>  EH specifics and we're not running arm-linux in-house, so ...
> 
>  Now if you get something working, we can comment on the integration
>  scheme for the Ada specific parts. 

Ok.

> > This is my first foray into GCC internals :/
> 
>  Welcome :-D
> 
>  Out of curiosity, why did you choose that particular topic (ZCX for
>  Ada on arm-linux) ? Does this just happen to seem of interest for
>  learning purposes, or is there a more specific need ?

In #Ada there are always people coming in and asking if there is an ARM
GNAT, which we always say "sort of..." ARM CPU's aren't the fastest on
the planet and not having EABI EH to help with this is something that
really needs to be done imho.

Also, with the ever increasing number of ARM CPU's out there, having Ada
on them would useful (if only to a few of us).

It makes sense to me that a language which was designed for embedded
use, doesn't get much embedded use :/ in the mainstream.

Thanks,
Luke.





More information about the Gcc mailing list