On 03/16/2011 03:45 PM, Ian Lance Taylor wrote: > Sebastian Huber <sebastian.huber@xxxxxxxxxxxxxxxxxx> writes: > >> Thanks for the hint. How can an assembler or C function throw an exception? > > It can raise a signal, e.g., SIGFPE, and the signal handler can throw. Yes, it is a raise() in the #ifdef L_dvmd_lnx part of "gcc/config/arm/lib1funcs.asm". > >> Does this mean that only on GNU/Linux we need this unwind stuff? > > You only need it if your signal handlers can throw, or call backtrace, > or otherwise try to unwind the stack. > > Ian The #ifdef L_dvmd_tls part uses only a RET (which is a mov or bx). I think the -fexceptions is superfluous for the tool chains using this part. It looks difficult to disable this compiler flag in this case. -- Sebastian Huber, embedded brains GmbH Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany Phone : +49 89 18 90 80 79-6 Fax : +49 89 18 90 80 79-9 E-Mail : sebastian.huber@xxxxxxxxxxxxxxxxxx PGP : Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.