summaryrefslogtreecommitdiff
path: root/components/libc/compilers/newlib/syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'components/libc/compilers/newlib/syscalls.c')
-rw-r--r--components/libc/compilers/newlib/syscalls.c44
1 files changed, 8 insertions, 36 deletions
diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c
index cf98e0c3ec..76300f76b2 100644
--- a/components/libc/compilers/newlib/syscalls.c
+++ b/components/libc/compilers/newlib/syscalls.c
@@ -286,30 +286,16 @@ _free_r (struct _reent *ptr, void *addr)
void
exit (int status)
{
- rt_thread_t self = rt_thread_self();
-
-#ifdef RT_USING_MODULE
- if (dlmodule_self())
- {
- dlmodule_exit(status);
- }
-#endif
-
- if (self != RT_NULL)
- {
- rt_kprintf("thread:%-8.*s exit:%d!\n", RT_NAME_MAX, self->name, status);
- rt_thread_suspend(self);
- rt_schedule();
- }
-
- while(1); /* noreturn */
+ extern void __rt_libc_exit(int status);
+ __rt_libc_exit(status);
+ while(1);
}
void
_system(const char *s)
{
- /* not support this call */
- return;
+ extern int __rt_libc_system(const char *string);
+ __rt_libc_system(s);
}
void __libc_init_array(void)
@@ -319,23 +305,9 @@ void __libc_init_array(void)
void abort(void)
{
- rt_thread_t self = rt_thread_self();
-
-#ifdef RT_USING_MODULE
- if (dlmodule_self())
- {
- dlmodule_exit(-1);
- }
-#endif
-
- if (self != RT_NULL)
- {
- rt_kprintf("thread:%-8.*s abort!\n", RT_NAME_MAX, self->name);
- rt_thread_suspend(self);
- rt_schedule();
- }
-
- while(1); /* noreturn */
+ extern void __rt_libc_abort(void);
+ __rt_libc_abort();
+ while(1);
}
uid_t getuid(void)