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:
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>
|
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
* sysdeps/generic/sys/param.h (NGROUPS): Define only if [NGROUPS_MAX].
|
* 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>
|
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
* sysdeps/arm/dl-machine.h (CLEAR_CACHE): Don't define it.
|
* 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>
|
2012-08-01 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
[BZ #14138]
|
[BZ #14138]
|
||||||
|
@ -30,9 +30,6 @@
|
|||||||
/* Arm got fcntl64 in 2.4.4. */
|
/* Arm got fcntl64 in 2.4.4. */
|
||||||
#define __ASSUME_FCNTL64 1
|
#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. */
|
/* The signal frame layout changed in 2.6.18. */
|
||||||
#if __LINUX_KERNEL_VERSION >= 132626
|
#if __LINUX_KERNEL_VERSION >= 132626
|
||||||
# define __ASSUME_SIGFRAME_V2 1
|
# define __ASSUME_SIGFRAME_V2 1
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#define __ASSUME_MMAP2_SYSCALL 1
|
#define __ASSUME_MMAP2_SYSCALL 1
|
||||||
#define __ASSUME_STAT64_SYSCALL 1
|
#define __ASSUME_STAT64_SYSCALL 1
|
||||||
#define __ASSUME_FCNTL64 1
|
#define __ASSUME_FCNTL64 1
|
||||||
#define __ASSUME_VFORK_SYSCALL 1
|
|
||||||
|
|
||||||
/* Many syscalls were added in 2.6.10 for m68k. */
|
/* Many syscalls were added in 2.6.10 for m68k. */
|
||||||
#if __LINUX_KERNEL_VERSION >= 132618
|
#if __LINUX_KERNEL_VERSION >= 132618
|
||||||
|
@ -36,8 +36,6 @@
|
|||||||
|
|
||||||
ENTRY (__vfork)
|
ENTRY (__vfork)
|
||||||
|
|
||||||
#ifdef __NR_vfork
|
|
||||||
|
|
||||||
/* SAVE_PID clobbers call-clobbered registers and
|
/* SAVE_PID clobbers call-clobbered registers and
|
||||||
saves data in D1 and A1. */
|
saves data in D1 and A1. */
|
||||||
|
|
||||||
@ -66,27 +64,8 @@ ENTRY (__vfork)
|
|||||||
cfi_adjust_cfa_offset (4)
|
cfi_adjust_cfa_offset (4)
|
||||||
cfi_rel_offset (%pc, 0)
|
cfi_rel_offset (%pc, 0)
|
||||||
|
|
||||||
# ifdef __ASSUME_VFORK_SYSCALL
|
#ifndef PIC
|
||||||
# ifndef PIC
|
|
||||||
jbra SYSCALL_ERROR_LABEL
|
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
|
#endif
|
||||||
|
|
||||||
PSEUDO_END (__vfork)
|
PSEUDO_END (__vfork)
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
ENTRY (__vfork)
|
ENTRY (__vfork)
|
||||||
|
|
||||||
#ifdef __NR_vfork
|
|
||||||
|
|
||||||
/* Pop the return PC value into ECX. */
|
/* Pop the return PC value into ECX. */
|
||||||
popl %ecx
|
popl %ecx
|
||||||
cfi_adjust_cfa_offset (-4)
|
cfi_adjust_cfa_offset (-4)
|
||||||
@ -55,31 +53,10 @@ ENTRY (__vfork)
|
|||||||
|
|
||||||
cmpl $-4095, %eax
|
cmpl $-4095, %eax
|
||||||
/* Branch forward if it failed. */
|
/* Branch forward if it failed. */
|
||||||
# ifdef __ASSUME_VFORK_SYSCALL
|
|
||||||
jae SYSCALL_ERROR_LABEL
|
jae SYSCALL_ERROR_LABEL
|
||||||
# else
|
|
||||||
jae .Lerror
|
|
||||||
# endif
|
|
||||||
|
|
||||||
ret
|
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)
|
PSEUDO_END (__vfork)
|
||||||
libc_hidden_def (__vfork)
|
libc_hidden_def (__vfork)
|
||||||
|
|
||||||
|
@ -100,12 +100,6 @@
|
|||||||
MIPS n32). */
|
MIPS n32). */
|
||||||
#define __ASSUME_GETDENTS64_SYSCALL 1
|
#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
|
/* Starting with 2.4.5 kernels the mmap2 syscall made it into the official
|
||||||
kernel. But PowerPC64 does not support a separate MMAP2 call. */
|
kernel. But PowerPC64 does not support a separate MMAP2 call. */
|
||||||
#if defined __powerpc__ && !defined __powerpc64__
|
#if defined __powerpc__ && !defined __powerpc64__
|
||||||
@ -118,11 +112,6 @@
|
|||||||
# define __ASSUME_SET_THREAD_AREA_SYSCALL 1
|
# define __ASSUME_SET_THREAD_AREA_SYSCALL 1
|
||||||
#endif
|
#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
|
/* The late 2.5 kernels saw a lot of new CLONE_* flags. Summarize
|
||||||
their availability with one define. The changes were made first
|
their availability with one define. The changes were made first
|
||||||
for i386 and the have to be done separately for the other archs.
|
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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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. */
|
and the process ID of the new process to the old process. */
|
||||||
|
|
||||||
ENTRY (__vfork)
|
ENTRY (__vfork)
|
||||||
|
|
||||||
#ifdef __NR_vfork
|
|
||||||
|
|
||||||
DO_CALL (SYS_ify (vfork))
|
DO_CALL (SYS_ify (vfork))
|
||||||
|
|
||||||
# ifdef __ASSUME_VFORK_SYSCALL
|
|
||||||
PSEUDO_RET
|
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)
|
PSEUDO_END (__vfork)
|
||||||
libc_hidden_def (__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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -27,29 +27,8 @@
|
|||||||
|
|
||||||
ENTRY (__vfork)
|
ENTRY (__vfork)
|
||||||
CALL_MCOUNT 0
|
CALL_MCOUNT 0
|
||||||
|
|
||||||
#ifdef __NR_vfork
|
|
||||||
|
|
||||||
DO_CALL (SYS_ify (vfork))
|
DO_CALL (SYS_ify (vfork))
|
||||||
|
|
||||||
# ifdef __ASSUME_VFORK_SYSCALL
|
|
||||||
PSEUDO_RET
|
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)
|
PSEUDO_END (__vfork)
|
||||||
libc_hidden_def (__vfork)
|
libc_hidden_def (__vfork)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user