kernel/eka/compsupp/aehabi/symbian-notes.txt
author mikek
Tue, 15 Jun 2010 19:10:20 +0100
branchGCC_SURGE
changeset 156 12b6722e7753
parent 0 a41df078684a
permissions -rw-r--r--
1) Revised fix for Bug 2975 - [GCCE] Illegal inline assembler in kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.cpp. Should have conditionally different code for __ARMCC__ and __GCCE_ 2) Fix for Bug 2976 - [GCCE] Overlapping naked function bodies break exception-handling. 3) Fix an incidental "impossible constraint in asm" gripe.



The directory containing this files contains ARM's example
implementation of the EHABI which is part of 'The Base Standard ABI
for the ARM architecture'. All parts of this specification including
the code contained here can be obtained via the link
[http://www.armdevzone.com/EABI/HomePage.html]. Symbian's
implementation of exception handling is derived from this code. This
file will document the amendments made to each file to integrate the
code with SymbianOS.

Implementation Notes.

* The Symbian implementation does not support nested exceptions. This
  is not required by C++ and there is no extant requirement to support
  language which does require nested exceptions.  However this means
  that the Symbian implementation is not fully BSABI compliant. 

EH v1.0 changes

UNWINDER.C
/*
 * RCS $Revision: 1.16 $
 * Checkin $Date: 2003/10/23 13:57:39 $
 * Revising $Author: agrant $
 */

* Remove the source region unwinder_c and replace unwind_activity_c with _DEBUG.
* Replace inclusion of stddef.h with e32def.h
* Add typedef for size_t (as a consequence of replacement of stddef.h).
* Add declaration for abort().
* Add declaration for bsearch().
* Replace use and declaration of printf() with DebugPrintf().
* Conditionalize nested exception handling with SUPPORT_NEST_EXCEPTIONS and abort if found.
* Remove __ARM_ETInfo from __UnwindRaiseException.