Browse Source

vfork: fix clone based version

The clone based version was introduced by commit

58570fc8e1fd601f15be5758ab95013d56771804
vfork: Use clone if arch does not have the vfork syscall

but the code was made unreachable by the previous commit

0a043c30ee71245dfe7c9d82d654312c5e1f6127
vfork: make all archs consistent

that adds a guard which require either __NR_vfork or __NR_fork
to be set.
Neither will be set on an arch that would need to use the
clone based version.

The double declaration of vfork was also introduced by
the merge of the two above mentioned patches.
The missing ; was present in the original patch.

CC: Markos Chandras <markos.chandras@imgtec.com>
CC: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
CC: Peter S. Mazinger <ps.m@gmx.net>
Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Stefan Kristiansson 10 years ago
parent
commit
f9ea885024
1 changed files with 2 additions and 4 deletions
  1. 2 4
      libc/sysdeps/linux/common/vfork.c

+ 2 - 4
libc/sysdeps/linux/common/vfork.c

@@ -6,7 +6,7 @@
 
 #include <sys/syscall.h>
 
-#if (defined __NR_vfork || (defined __ARCH_USE_MMU__ && defined __NR_fork)) && (defined __USE_BSD || defined __USE_XOPEN_EXTENDED)
+#if (defined __NR_vfork || defined __NR_clone || (defined __ARCH_USE_MMU__ && defined __NR_fork)) && (defined __USE_BSD || defined __USE_XOPEN_EXTENDED)
 # include <unistd.h>
 extern __typeof(vfork) __vfork attribute_hidden;
 
@@ -20,12 +20,10 @@ pid_t __vfork(void)
 				   NULL, NULL, NULL);
 
 	if (pid < 0)
-		return -1
+		return -1;
 
 	return pid;
 }
-weak_alias(__vfork, vfork)
-libc_hidden_weak(vfork)
 
 # elif defined __NR_vfork
 #  define __NR___vfork __NR_vfork