mirror of git://sourceware.org/git/glibc.git
Remove __ASSUME_VFORK_SYSCALL (and some __NR_vfork conditionals).
This commit is contained in:
parent
5d9eaeecb4
commit
a9f1039f0a
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
|||
2012-08-01 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h
|
||||
(__ASSUME_VFORK_SYSCALL): Remove all definitions.
|
||||
* sysdeps/unix/sysv/linux/i386/vfork.S (__vfork) [__NR_vfork]:
|
||||
Make code unconditional.
|
||||
(__vfork) [__ASSUME_VFORK_SYSCALL]: Likewise.
|
||||
(__vfork) [!__ASSUME_VFORK_SYSCALL]: Remove conditional code.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork)
|
||||
[__NR_vfork]: Make code unconditional.
|
||||
(__vfork) [__ASSUME_VFORK_SYSCALL]: Likewise.
|
||||
(__vfork) [!__ASSUME_VFORK_SYSCALL]: Remove conditional code.
|
||||
* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork)
|
||||
[__NR_vfork]: Make code unconditional.
|
||||
(__vfork) [__ASSUME_VFORK_SYSCALL]: Likewise.
|
||||
(__vfork) [!__ASSUME_VFORK_SYSCALL]: Remove conditional code.
|
||||
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/generic/sys/param.h (NGROUPS): Define only if [NGROUPS_MAX].
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-08-01 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/arm/kernel-features.h
|
||||
(__ASSUME_VFORK_SYSCALL): Remove.
|
||||
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/arm/dl-machine.h (CLEAR_CACHE): Don't define it.
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2012-08-01 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/m68k/kernel-features.h
|
||||
(__ASSUME_VFORK_SYSCALL): Remove.
|
||||
* sysdeps/unix/sysv/linux/m68k/vfork.S (__vfork) [__NR_vfork]:
|
||||
Make code unconditional.
|
||||
(__vfork) [__ASSUME_VFORK_SYSCALL]: Likewise.
|
||||
(__vfork) [!__ASSUME_VFORK_SYSCALL]: Remove conditional code.
|
||||
|
||||
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
[BZ #14138]
|
||||
|
|
|
@ -30,9 +30,6 @@
|
|||
/* Arm got fcntl64 in 2.4.4. */
|
||||
#define __ASSUME_FCNTL64 1
|
||||
|
||||
/* The vfork syscall on arm was definitely available in 2.4. */
|
||||
#define __ASSUME_VFORK_SYSCALL 1
|
||||
|
||||
/* The signal frame layout changed in 2.6.18. */
|
||||
#if __LINUX_KERNEL_VERSION >= 132626
|
||||
# define __ASSUME_SIGFRAME_V2 1
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#define __ASSUME_MMAP2_SYSCALL 1
|
||||
#define __ASSUME_STAT64_SYSCALL 1
|
||||
#define __ASSUME_FCNTL64 1
|
||||
#define __ASSUME_VFORK_SYSCALL 1
|
||||
|
||||
/* Many syscalls were added in 2.6.10 for m68k. */
|
||||
#if __LINUX_KERNEL_VERSION >= 132618
|
||||
|
|
|
@ -36,8 +36,6 @@
|
|||
|
||||
ENTRY (__vfork)
|
||||
|
||||
#ifdef __NR_vfork
|
||||
|
||||
/* SAVE_PID clobbers call-clobbered registers and
|
||||
saves data in D1 and A1. */
|
||||
|
||||
|
@ -66,27 +64,8 @@ ENTRY (__vfork)
|
|||
cfi_adjust_cfa_offset (4)
|
||||
cfi_rel_offset (%pc, 0)
|
||||
|
||||
# ifdef __ASSUME_VFORK_SYSCALL
|
||||
# ifndef PIC
|
||||
#ifndef PIC
|
||||
jbra SYSCALL_ERROR_LABEL
|
||||
# endif
|
||||
# else
|
||||
/* Check if vfork syscall is known at all. */
|
||||
movel #-ENOSYS,%d1
|
||||
cmpl %d0,%d1
|
||||
jne SYSCALL_ERROR_LABEL
|
||||
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __ASSUME_VFORK_SYSCALL
|
||||
/* If we don't have vfork, fork is close enough. */
|
||||
|
||||
movel #SYS_ify (fork), %d0
|
||||
trap #0
|
||||
tstl %d0
|
||||
jmi SYSCALL_ERROR_LABEL
|
||||
rts
|
||||
#endif
|
||||
|
||||
PSEUDO_END (__vfork)
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue