diff options
Diffstat (limited to 'libc/sysdeps/linux/i386/vfork.S')
| -rw-r--r-- | libc/sysdeps/linux/i386/vfork.S | 35 |
1 files changed, 9 insertions, 26 deletions
diff --git a/libc/sysdeps/linux/i386/vfork.S b/libc/sysdeps/linux/i386/vfork.S index d340a983d..19c1210cb 100644 --- a/libc/sysdeps/linux/i386/vfork.S +++ b/libc/sysdeps/linux/i386/vfork.S @@ -3,8 +3,6 @@ * */ -#define _ERRNO_H 1 -#include <bits/errno.h> #include <sys/syscall.h> #ifndef __NR_vfork @@ -14,39 +12,24 @@ #else - .text - .globl __vfork; - .type __vfork,@function; - .align 1<<4; - +.text +.global __vfork +.type __vfork,%function +.align 1<<4 + __vfork: popl %ecx movl $__NR_vfork,%eax int $0x80 pushl %ecx cmpl $-4095,%eax - jae __syscall_error + jae __error ret -__syscall_error: - negl %eax - pushl %eax -#ifdef __PIC__ - call .Lthere -.Lthere: - popl %ebx - addl $_GLOBAL_OFFSET_TABLE_+[.- .Lthere ], %ebx - call __errno_location@PLT -#else - call __errno_location -#endif - popl %ecx - movl %ecx, (%eax) - xorl %eax, %eax - decl %eax +__error: + jmp __syscall_error -.Lsize: - .size __vfork,.Lsize-__vfork +.size __vfork,.-__vfork .weak vfork ; vfork = __vfork |
