summaryrefslogtreecommitdiff
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.S14
1 files changed, 8 insertions, 6 deletions
diff --git a/libc/sysdeps/linux/x86_64/vfork.S b/libc/sysdeps/linux/x86_64/vfork.S
index 3315e337a..a065916d1 100644
--- a/libc/sysdeps/linux/x86_64/vfork.S
+++ b/libc/sysdeps/linux/x86_64/vfork.S
@@ -26,17 +26,18 @@
#ifndef __NR_vfork
/* No vfork so use fork instead */
-strong_alias(fork,vfork)
-strong_alias(vfork,__libc_fork)
+strong_alias(fork,__libc_fork)
+hidden_strong_alias(__libc_fork,__vfork)
#else
.text
-.global vfork
-.type vfork,%function
+.global __vfork
+.hidden __vfork
+.type __vfork,%function
.align 16
-vfork:
+__vfork:
/* Pop the return PC value into RDI. We need a register that
is preserved by the syscall and that we're allowed to destroy. */
@@ -55,7 +56,8 @@ vfork:
/* Normal return. */
ret
-.size vfork,.-vfork
+.size __vfork,.-__vfork
#endif /* __NR_vfork */
+weak_alias(__vfork,vfork)
libc_hidden_def(vfork)