qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] fix exit syscall
@ 2008-10-15 22:12 Lauro Ramos Venancio
  0 siblings, 0 replies; 2+ messages in thread
From: Lauro Ramos Venancio @ 2008-10-15 22:12 UTC (permalink / raw)
  To: qemu-devel


[-- Attachment #1.1: Type: text/plain, Size: 199 bytes --]

We can't call the libc _exit function because it calls the exit_group
host syscall. We must call directly the exit host syscall.
 
-- 
Lauro Ramos Venancio
INdT - Instituto Nokia de Tecnologia

[-- Attachment #1.2: fix_exit_syscall.patch --]
[-- Type: text/x-patch, Size: 1002 bytes --]

Index: qemu-arm-eabi/linux-user/syscall.c
===================================================================
--- qemu-arm-eabi.orig/linux-user/syscall.c	2008-10-13 18:06:03.000000000 -0300
+++ qemu-arm-eabi/linux-user/syscall.c	2008-10-13 18:56:02.000000000 -0300
@@ -154,6 +154,7 @@
 }
 
 
+#define __NR_sys_exit __NR_exit
 #define __NR_sys_uname __NR_uname
 #define __NR_sys_faccessat __NR_faccessat
 #define __NR_sys_fchmodat __NR_fchmodat
@@ -195,6 +196,7 @@
     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)
@@ -3756,7 +3758,7 @@
 #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:

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread
* [Qemu-devel] [PATCH] fix exit syscall
@ 2008-10-15 22:57 Lauro Ramos Venancio
  0 siblings, 0 replies; 2+ messages in thread
From: Lauro Ramos Venancio @ 2008-10-15 22:57 UTC (permalink / raw)
  To: qemu-devel


[-- Attachment #1.1: Type: text/plain, Size: 199 bytes --]

We can't call the libc _exit function because it calls the exit_group
host syscall. We must call directly the exit host syscall.
 
-- 
Lauro Ramos Venancio
INdT - Instituto Nokia de Tecnologia

[-- Attachment #1.2: fix_exit_syscall.patch --]
[-- Type: text/x-patch, Size: 1002 bytes --]

Index: qemu-arm-eabi/linux-user/syscall.c
===================================================================
--- qemu-arm-eabi.orig/linux-user/syscall.c	2008-10-13 18:06:03.000000000 -0300
+++ qemu-arm-eabi/linux-user/syscall.c	2008-10-13 18:56:02.000000000 -0300
@@ -154,6 +154,7 @@
 }
 
 
+#define __NR_sys_exit __NR_exit
 #define __NR_sys_uname __NR_uname
 #define __NR_sys_faccessat __NR_faccessat
 #define __NR_sys_fchmodat __NR_fchmodat
@@ -195,6 +196,7 @@
     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)
@@ -3756,7 +3758,7 @@
 #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:

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-10-15 22:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-15 22:12 [Qemu-devel] [PATCH] fix exit syscall Lauro Ramos Venancio
  -- strict thread matches above, loose matches on Subject: below --
2008-10-15 22:57 Lauro Ramos Venancio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).