From b2222ac61c7bfa221fc9ca88a48940af75016ed2 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Fri, 10 Jan 2003 14:05:26 +0000 Subject: Optimize for kernels which are known to have the vfork syscall. --- sysdeps/unix/sysv/linux/m68k/vfork.S | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/m68k/vfork.S b/sysdeps/unix/sysv/linux/m68k/vfork.S index ed5e1e8..8027b2f 100644 --- a/sysdeps/unix/sysv/linux/m68k/vfork.S +++ b/sysdeps/unix/sysv/linux/m68k/vfork.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Schwab . @@ -20,6 +20,7 @@ #include #define _ERRNO_H 1 #include +#include /* Clone the calling process, but without copying the whole address space. The calling process is suspended until the new process exits or is @@ -46,13 +47,20 @@ ENTRY (__vfork) /* Push back the return PC. */ movel %a0,%sp@- +# ifdef __ASSUME_VFORK_SYSCALL +# 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 @@ -60,6 +68,7 @@ ENTRY (__vfork) tstl %d0 jmi SYSCALL_ERROR_LABEL rts +#endif PSEUDO_END (__vfork) libc_hidden_def (__vfork) -- cgit v1.1