Porting ZCX (not SJLJ) for GNAT ARM EABI
Olivier Hainque
hainque@adacore.com
Mon Sep 27 11:48:00 GMT 2010
Hello Luke,
Luke A. Guest wrote:
> I'm having a look into getting DWARF2 exceptions (ZCX) working on ARM.
Thanks :-)
> Any pointers would be gratefully received. I'm fairly sure I know where
> to start.
A few general points, jic.
The first thing will be to adjust your target system.ads to
have GCC_ZCX_Support := True, then use the gnatlib-zcx Makefile
target, with essentially two effects: adjust your target system.ads
further to switch the GCC_ZCX_Support to True as well, and arrange
to build/link with the "-gcc" variants of a-exexpr.adb and raise.c.
The system.ads changes control the compiler to declare eh regions, produce
dwarf eh info etc.
The use of -gcc variants is for the runtime library, switching to the
libgcc services for exception propagations.
raise-gcc.c hosts the Ada personality routine, where a number of changes
will be needed I believe.
There, please, I'd rather have the ARM specializations abstracted as
much as possible, e.g. with new functions and alternate implementations,
instead of provided as #ifdefs blocks spread within existing functions.
Thanks,
Olivier
More information about the Gcc
mailing list