]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Use the host exit syscall for exiting (Lauro Ramos Venancio).
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 28 Oct 2008 10:18:28 +0000 (10:18 +0000)
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 28 Oct 2008 10:18:28 +0000 (10:18 +0000)
We can't call the libc _exit function because it calls the exit_group
host syscall. We must call directly the exit host syscall.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5561 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/syscall.c

index 44fbc7ca624e4288646a2b6429e1caed36c1661c..91deb80ba6a7c6d8b2b5de782b52c9cbcda93b22 100644 (file)
@@ -152,6 +152,7 @@ static type name (type1 arg1,type2 arg2,type3 arg3,type4 arg4,type5 arg5,   \
 }
 
 
+#define __NR_sys_exit __NR_exit
 #define __NR_sys_uname __NR_uname
 #define __NR_sys_faccessat __NR_faccessat
 #define __NR_sys_fchmodat __NR_fchmodat
@@ -193,6 +194,7 @@ static int gettid(void) {
     return -ENOSYS;
 }
 #endif
+_syscall1(int,sys_exit,int,status)
 _syscall1(int,sys_uname,struct new_utsname *,buf)
 #if defined(TARGET_NR_faccessat) && defined(__NR_faccessat)
 _syscall4(int,sys_faccessat,int,dirfd,const char *,pathname,int,mode,int,flags)
@@ -3395,7 +3397,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
 #endif
         gdb_exit(cpu_env, arg1);
         /* XXX: should free thread stack and CPU env */
-        _exit(arg1);
+        sys_exit(arg1);
         ret = 0; /* avoid warning */
         break;
     case TARGET_NR_read: