[PATCH] Fix bug with popen/pthread_create
Jakub Jelinek
jakub@redhat.com
Fri Feb 7 10:21:00 GMT 2003
On Fri, Feb 07, 2003 at 11:11:05AM +0100, Andreas Schwab wrote:
> |> --- libc/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S.jj 2003-01-09 15:27:26.000000000 -0500
> |> +++ libc/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2003-02-06 13:31:43.000000000 -0500
> |> @@ -31,7 +31,19 @@ ENTRY (__vfork)
> |>
> |> #ifdef __NR_vfork
> |>
> |> - SINGLE_THREAD_P
> |> +# ifdef SHARED
> |> +# if !defined HAVE_HIDDEN || !USE___THREAD
> |> + SETUP_PIC_REG (cx)
> |> +# else
> |> + call __i686.get_pc_thunk.cx
> |> +# endif
> |> + addl $_GLOBAL_OFFSET_TABLE_, %ecx
> |> + cmpl $0, __libc_pthread_functions@GOTOFF(%ecx)
> |> +# else
> |> + .weak __pthread_fork
> |> + movl $__pthread_fork, %eax
> |> + testl %eax, %eax
> |> +# endif
> |> jne HIDDEN_JUMPTARGET (__fork)
> |>
> |> /* Pop the return PC value into ECX. */
>
> Shouldn't that be moved outside of #ifdef __NR_vfork, so that __fork is
> used even if compiling with kernel headers that do not define vfork?
Yes.
Jakub
More information about the Libc-hacker
mailing list