Browse Source

remove __vfork alias

this was added so that posix_spawn and possibly other functionality
could be implemented in terms of vfork, but that turned out to be
unsafe. any such usage needs __clone with proper handling of stack
lifetime.
master
Rich Felker 8 years ago
parent
commit
ced75472d7
  1. 5
      src/process/arm/vfork.s
  2. 5
      src/process/i386/vfork.s
  3. 5
      src/process/s390x/vfork.s
  4. 5
      src/process/sh/vfork.s
  5. 5
      src/process/vfork.c
  6. 5
      src/process/x32/vfork.s
  7. 5
      src/process/x86_64/vfork.s

5
src/process/arm/vfork.s

@ -1,9 +1,6 @@
.syntax unified
.global __vfork
.weak vfork
.type __vfork,%function
.global vfork
.type vfork,%function
__vfork:
vfork:
mov ip, r7
mov r7, 190

5
src/process/i386/vfork.s

@ -1,8 +1,5 @@
.global __vfork
.weak vfork
.type __vfork,@function
.global vfork
.type vfork,@function
__vfork:
vfork:
pop %edx
mov $190,%eax

5
src/process/s390x/vfork.s

@ -1,8 +1,5 @@
.global __vfork
.weak vfork
.type __vfork,%function
.global vfork
.type vfork,%function
__vfork:
vfork:
svc 190
.hidden __syscall_ret

5
src/process/sh/vfork.s

@ -1,8 +1,5 @@
.global __vfork
.weak vfork
.type __vfork,@function
.global vfork
.type vfork,@function
__vfork:
vfork:
mov #95, r3
add r3, r3

5
src/process/vfork.c

@ -2,9 +2,8 @@
#include <unistd.h>
#include <signal.h>
#include "syscall.h"
#include "libc.h"
pid_t __vfork(void)
pid_t vfork(void)
{
/* vfork syscall cannot be made from C code */
#ifdef SYS_fork
@ -13,5 +12,3 @@ pid_t __vfork(void)
return syscall(SYS_clone, SIGCHLD, 0);
#endif
}
weak_alias(__vfork, vfork);

5
src/process/x32/vfork.s

@ -1,8 +1,5 @@
.global __vfork
.weak vfork
.type __vfork,@function
.global vfork
.type vfork,@function
__vfork:
vfork:
pop %rdx
mov $0x4000003a,%eax /* SYS_vfork */

5
src/process/x86_64/vfork.s

@ -1,8 +1,5 @@
.global __vfork
.weak vfork
.type __vfork,@function
.global vfork
.type vfork,@function
__vfork:
vfork:
pop %rdx
mov $58,%eax

Loading…
Cancel
Save