summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/x86_64/vfork.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/x86_64/vfork.S')
-rw-r--r--libc/sysdeps/linux/x86_64/vfork.S16
1 files changed, 5 insertions, 11 deletions
diff --git a/libc/sysdeps/linux/x86_64/vfork.S b/libc/sysdeps/linux/x86_64/vfork.S
index 5786058d2..b22b7b422 100644
--- a/libc/sysdeps/linux/x86_64/vfork.S
+++ b/libc/sysdeps/linux/x86_64/vfork.S
@@ -16,7 +16,6 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#include <features.h>
#include <sys/syscall.h>
/* Clone the calling process, but without copying the whole address space.
@@ -26,10 +25,8 @@
#ifndef __NR_vfork
/* No vfork so use fork instead */
-hidden_strong_alias(__fork,__vfork)
-weak_alias(vfork,__libc_fork)
-
-#else
+# define __NR_vfork __NR_fork
+#endif
.text
.global __vfork
@@ -51,15 +48,12 @@ __vfork:
pushq %rdi
cmpl $-4095, %eax
- jae __error /* Branch forward if it failed. */
+ jae __syscall_error /* Branch forward if it failed. */
/* Normal return. */
ret
-__error:
- jmp __syscall_error
-
.size __vfork,.-__vfork
-#endif /* __NR_vfork */
-strong_alias(__vfork,vfork)
+weak_alias(__vfork,vfork)
+libc_hidden_weak(vfork)