diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2006-06-05 19:46:18 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2006-06-05 19:46:18 +0000 |
commit | 4c602151f22a2f3bef9eed5adc61be1e3f9762d6 (patch) | |
tree | 209e360c97606d12b4c3971ff561cd8be2975f3e /libgloss/arm | |
parent | 6ea486a6df01b53b8b908fa49ce22f72a8ea47b2 (diff) | |
download | cygnal-4c602151f22a2f3bef9eed5adc61be1e3f9762d6.tar.gz cygnal-4c602151f22a2f3bef9eed5adc61be1e3f9762d6.tar.bz2 cygnal-4c602151f22a2f3bef9eed5adc61be1e3f9762d6.zip |
2006-06-05 Shaun Jackman <sjackman@gmail.com>
* arm/syscalls.c (kill) [ARM_RDI_MONITOR]: Use the signal
argument to choose an ADP exception reason.
* arm/libcfunc.c (abort): Remove this function.
Diffstat (limited to 'libgloss/arm')
-rw-r--r-- | libgloss/arm/libcfunc.c | 12 | ||||
-rw-r--r-- | libgloss/arm/syscalls.c | 13 |
2 files changed, 10 insertions, 15 deletions
diff --git a/libgloss/arm/libcfunc.c b/libgloss/arm/libcfunc.c index 4f131939a..335b175d2 100644 --- a/libgloss/arm/libcfunc.c +++ b/libgloss/arm/libcfunc.c @@ -24,18 +24,6 @@ do_AngelSWI (int reason, void * arg) } #endif /* ARM_RDI_MONITOR */ -void -abort (void) -{ - extern void _exit (int n); -#ifdef ARM_RDI_MONITOR - do_AngelSWI (AngelSWI_Reason_ReportException, - (void *) ADP_Stopped_RunTimeError); -#else - _exit(17); -#endif -} - unsigned __attribute__((weak)) alarm (unsigned seconds) { diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c index a6d2f747e..855a374bd 100644 --- a/libgloss/arm/syscalls.c +++ b/libgloss/arm/syscalls.c @@ -13,6 +13,7 @@ #include <sys/times.h> #include <errno.h> #include <reent.h> +#include <signal.h> #include <unistd.h> #include "swi.h" @@ -463,9 +464,15 @@ _kill (int pid, int sig) { (void)pid; (void)sig; #ifdef ARM_RDI_MONITOR - /* Note: Both arguments are thrown away. */ - return do_AngelSWI (AngelSWI_Reason_ReportException, - (void *) ADP_Stopped_ApplicationExit); + /* Note: The pid argument is thrown away. */ + switch (sig) { + case SIGABRT: + return do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_RunTimeError); + default: + return do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_ApplicationExit); + } #else asm ("swi %a0" :: "i" (SWI_Exit)); #endif |