On Monday 26 November 2012 07:54 PM, Markos Chandras wrote:
> From: Markos Chandras <[email protected]>
> 
> Signed-off-by: Markos Chandras <[email protected]>
> ---
>  libc/sysdeps/linux/common/vfork.c | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/libc/sysdeps/linux/common/vfork.c 
> b/libc/sysdeps/linux/common/vfork.c
> index e7c9208..377418c 100644
> --- a/libc/sysdeps/linux/common/vfork.c
> +++ b/libc/sysdeps/linux/common/vfork.c
> @@ -4,13 +4,27 @@
>   * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
>   */
>  
> +#include <signal.h>
>  #include <unistd.h>
>  #include <sys/types.h>
>  #include <sys/syscall.h>
>  
>  extern __typeof(vfork) __vfork attribute_hidden;
>  
> -#ifdef __NR_vfork
> +#if defined(__NR_fork) && !defined(__NR_vfork)
> +pid_t __vfork(void)
> +{
> +     pid_t pid = INLINE_SYSCALL(fork, 0);
> +
> +     if (pid<0)
> +             return -1
> +
> +     return pid;
> +}
> +weak_alias(__vfork, vfork)
> +libc_hidden_weak(vfork)
> +
> +#elif defined(__NR_vfork)
>  
>  # define __NR___vfork __NR_vfork
>  _syscall0(pid_t, __vfork)
> 

Hi Markos,

First of all many thanks for picking this up. I'm the maintainer for ARC
Linux kernel - current being reviewed on lkml (along side metag) so your
work will help us immensely - as we also need to have asm-generic
unistd.h based syscall ABI.

In that regarding I've been looking at your v1 and v2 patches and would
like to contribute as much as possible.

While v1 of this particular patch made sense to me - this one doesn't.
kernel's asm-generic unistd.h only defines clone (and doesn't define
vfork/fork). Thus this file will compile to nothing as opposed to v1
where vfork would correctly call clone syscall with correct args -
something which the vfork syscall handler itself in kernel typically
does. And since that would be gone - we need to do same thing in user
space wrapper.

What am I missing here...

Thx,
-Vineet

_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to