1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Remove __ASSUME_VFORK_SYSCALL (and some __NR_vfork conditionals).

This commit is contained in:
Joseph Myers
2012-08-01 20:49:45 +00:00
parent 5d9eaeecb4
commit a9f1039f0a
10 changed files with 34 additions and 107 deletions

View File

@ -28,8 +28,6 @@
ENTRY (__vfork)
#ifdef __NR_vfork
/* Pop the return PC value into ECX. */
popl %ecx
cfi_adjust_cfa_offset (-4)
@ -55,31 +53,10 @@ ENTRY (__vfork)
cmpl $-4095, %eax
/* Branch forward if it failed. */
# ifdef __ASSUME_VFORK_SYSCALL
jae SYSCALL_ERROR_LABEL
# else
jae .Lerror
# endif
ret
# ifndef __ASSUME_VFORK_SYSCALL
.Lerror:
/* Check if vfork syscall is known at all. */
cmpl $-ENOSYS, %eax
jne SYSCALL_ERROR_LABEL
# endif
#endif
#ifndef __ASSUME_VFORK_SYSCALL
/* If we don't have vfork, fork is close enough. */
movl $SYS_ify (fork), %eax
int $0x80
cmpl $-4095, %eax
jae SYSCALL_ERROR_LABEL
ret
#endif
PSEUDO_END (__vfork)
libc_hidden_def (__vfork)

View File

@ -100,12 +100,6 @@
MIPS n32). */
#define __ASSUME_GETDENTS64_SYSCALL 1
/* Starting with 2.4.5 kernels the vfork syscall made it into the
official kernel for PPC. */
#ifdef __powerpc__
# define __ASSUME_VFORK_SYSCALL 1
#endif
/* Starting with 2.4.5 kernels the mmap2 syscall made it into the official
kernel. But PowerPC64 does not support a separate MMAP2 call. */
#if defined __powerpc__ && !defined __powerpc64__
@ -118,11 +112,6 @@
# define __ASSUME_SET_THREAD_AREA_SYSCALL 1
#endif
/* The vfork syscall on x86 and arm was definitely available in 2.4. */
#ifdef __i386__
# define __ASSUME_VFORK_SYSCALL 1
#endif
/* The late 2.5 kernels saw a lot of new CLONE_* flags. Summarize
their availability with one define. The changes were made first
for i386 and the have to be done separately for the other archs.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -26,32 +26,8 @@
and the process ID of the new process to the old process. */
ENTRY (__vfork)
#ifdef __NR_vfork
DO_CALL (SYS_ify (vfork))
# ifdef __ASSUME_VFORK_SYSCALL
PSEUDO_RET
# else
bnslr+
/* Check if vfork syscall is known at all. */
cmpwi r3,ENOSYS
bne- .Lsyscall_error
# endif
#endif
#ifndef __ASSUME_VFORK_SYSCALL
/* If we don't have vfork, fork is close enough. */
DO_CALL (SYS_ify (fork))
bnslr+
.Lsyscall_error:
b __syscall_error@local
#endif
PSEUDO_END (__vfork)
libc_hidden_def (__vfork)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003 Free Software Foundation, Inc.
/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -27,29 +27,8 @@
ENTRY (__vfork)
CALL_MCOUNT 0
#ifdef __NR_vfork
DO_CALL (SYS_ify (vfork))
# ifdef __ASSUME_VFORK_SYSCALL
PSEUDO_RET
# else
bnslr+
/* Check if vfork syscall is known at all. */
cmpdi r3,ENOSYS
bne .Local_syscall_error
# endif
#endif
#ifndef __ASSUME_VFORK_SYSCALL
/* If we don't have vfork, fork is close enough. */
DO_CALL (SYS_ify (fork))
PSEUDO_RET
#endif
PSEUDO_END (__vfork)
libc_hidden_def (__vfork)