Alias sys_vfork to sys_fork
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 12 May 2014 13:43:10 +0000 (13:43 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 12 May 2014 20:26:24 +0000 (20:26 +0000)
* process.c (sys_vfork): Remove.
* linux/syscall.h (sys_vfork): Likewise.
* linux/dummy.h (sys_vfork): Alias to sys_fork.
* linux/alpha/syscallent.h: Fix vfork entry.
* util.c (setbpt): Do not check for sys_vfork.
* syscall.c (syscall_fixup_for_fork_exec): Likewise.

linux/alpha/syscallent.h
linux/dummy.h
linux/syscall.h
process.c
syscall.c
util.c

index 28e2eeb31a7df7c3691e6ffbd422f6ebbce85240..513c0746da07c81a94f664014574d8c8f8f0db67 100644 (file)
@@ -92,7 +92,7 @@
        { 0,    0,      sys_getpgrp,            "getpgrp"               }, /* 63 */
        { 0,    0,      sys_getpagesize,        "getpagesize"           }, /* 64 */
        { 5,    TM,     printargs,              "osf_mremap"            }, /* 65, not implemented */
-       { 0,    TP,     sys_fork,               "vfork"                 }, /* 66 */
+       { 0,    TP,     sys_vfork,              "vfork"                 }, /* 66 */
        { 2,    TF,     sys_stat,               "stat"                  }, /* 67 */
        { 2,    TF,     sys_lstat,              "lstat"                 }, /* 68 */
        { 5,    TM,     printargs,              "osf_sbrk"              }, /* 69, not implemented */
index 2fc3498bb5920ad9cdaef2082d0a4e16c8cc402c..2371673741597d858b427270e285646ebbe019b1 100644 (file)
@@ -88,6 +88,7 @@
 #define        sys_umount              sys_chdir
 #define        sys_unlink              sys_chdir
 #define        sys_uselib              sys_chdir
+#define        sys_vfork               sys_fork
 
 /* printargs does the right thing */
 #define        sys_getpgid             printargs
index 872504067174a8f090e25696dffcadfbafcded3a..cfa9086d961f8ce6756248d5081a074267e19b48 100644 (file)
@@ -302,7 +302,6 @@ int sys_unshare();
 int sys_utime();
 int sys_utimensat();
 int sys_utimes();
-int sys_vfork();
 int sys_vmsplice();
 int sys_wait4();
 int sys_waitid();
index af203eac8f62cb08f434950749ca2c90fabd6abf..132531910f1d68bc34cd0cb9b6994e5ccf9ab134 100644 (file)
--- a/process.c
+++ b/process.c
@@ -600,14 +600,6 @@ sys_fork(struct tcb *tcp)
        return 0;
 }
 
-int
-sys_vfork(struct tcb *tcp)
-{
-       if (exiting(tcp))
-               return RVAL_UDECIMAL;
-       return 0;
-}
-
 int sys_getuid(struct tcb *tcp)
 {
        if (exiting(tcp))
index 0a4e15df7ee3543818e756c9bcec1ec3446a87db..28bdb664611c819b1f9dc882116c4e266b0909fc 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -1708,7 +1708,6 @@ syscall_fixup_for_fork_exec(struct tcb *tcp)
        func = tcp->s_ent->sys_func;
 
        if (   sys_fork == func
-           || sys_vfork == func
            || sys_clone == func
           ) {
                internal_fork(tcp);
diff --git a/util.c b/util.c
index d986f7c100ad8158da83dbdd310b6c429ed0d84b..ff18b87c27a82f304db90fe0f38e2c329698125b 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1492,8 +1492,7 @@ setbpt(struct tcb *tcp)
                        }
        }
 
-       if (tcp->s_ent->sys_func == sys_fork ||
-           tcp->s_ent->sys_func == sys_vfork) {
+       if (tcp->s_ent->sys_func == sys_fork) {
                if (arg_setup(tcp, &state) < 0
                    || get_arg0(tcp, &state, &tcp->inst[0]) < 0
                    || get_arg1(tcp, &state, &tcp->inst[1]) < 0