X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fsignal.c;h=f9cc702ec2b8d950736ee0c76189ce43ccef4f7d;hb=d618789d14ccf54bd2f7343f67763983158d1b3b;hp=40a4a436b54052411e140a4460f474f0e6a8b475;hpb=11948ddbe7c903a0483f43a06141bc9acda18fca;p=cacao.git diff --git a/src/vm/signal.c b/src/vm/signal.c index 40a4a436b..f9cc702ec 100644 --- a/src/vm/signal.c +++ b/src/vm/signal.c @@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - $Id: signal.c 7471 2007-03-06 17:01:49Z twisti $ + $Id: signal.c 7592 2007-03-28 20:12:33Z twisti $ */ @@ -128,21 +128,39 @@ void signal_init(void) act.sa_sigaction = md_signal_handler_sigsegv; act.sa_flags = SA_NODEFER | SA_SIGINFO; -#if defined(SIGSEGV) +# if defined(SIGSEGV) sigaction(SIGSEGV, &act, NULL); -#endif +# endif -#if defined(SIGBUS) +# if defined(SIGBUS) sigaction(SIGBUS, &act, NULL); -#endif +# endif -#if SUPPORT_HARDWARE_DIVIDE_BY_ZERO +# if SUPPORT_HARDWARE_DIVIDE_BY_ZERO /* SIGFPE handler */ act.sa_sigaction = md_signal_handler_sigfpe; act.sa_flags = SA_NODEFER | SA_SIGINFO; sigaction(SIGFPE, &act, NULL); -#endif +# endif + +# if defined(__ARM__) + /* XXX use better defines for that (in arch.h) */ + /* SIGILL handler */ + + act.sa_sigaction = md_signal_handler_sigill; + act.sa_flags = SA_NODEFER | SA_SIGINFO; + sigaction(SIGILL, &act, NULL); +# endif + +# if defined(__POWERPC__) + /* XXX use better defines for that (in arch.h) */ + /* SIGTRAP handler */ + + act.sa_sigaction = md_signal_handler_sigtrap; + act.sa_flags = SA_NODEFER | SA_SIGINFO; + sigaction(SIGTRAP, &act, NULL); +# endif # if defined(ENABLE_INTRP) } # endif