Band-aid vfork() emulation (Kirill Shutemov).
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 21 Sep 2008 02:39:45 +0000 (02:39 +0000)
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 21 Sep 2008 02:39:45 +0000 (02:39 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5279 c046a42c-6fe2-441c-8c8c-71466251a162

linux-user/syscall.c

index 64d700d..40c0ed8 100644 (file)
@@ -2800,6 +2800,10 @@ static int do_fork(CPUState *env, unsigned int flags, abi_ulong newsp,
     sigset_t sigmask;
 #endif
 
+    /* Emulate vfork() with fork() */
+    if (flags & CLONE_VFORK)
+        flags &= ~(CLONE_VFORK | CLONE_VM);
+
     if (flags & CLONE_VM) {
 #if defined(USE_NPTL)
         new_thread_info info;