Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2006-06-05 23:46:18 +0400
committerJeff Johnston <jjohnstn@redhat.com>2006-06-05 23:46:18 +0400
commit4c602151f22a2f3bef9eed5adc61be1e3f9762d6 (patch)
tree209e360c97606d12b4c3971ff561cd8be2975f3e /libgloss/arm
parent6ea486a6df01b53b8b908fa49ce22f72a8ea47b2 (diff)
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.c12
-rw-r--r--libgloss/arm/syscalls.c13
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