This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: posix_spawn and vfork


* Adhemerval Zanella:

> On 02/05/2019 09:18, Florian Weimer wrote:
>> Why do we use clone instead of vfork in posix_spawn?
>
> Besides being deprecated by POSIX, the main issue currently it lacks
> a *proper* way to setup a correct stack frame for helper process.
> Even with a function, we are relying on undefined semantic that compiler
> won't clobber the stack.

We could specify the returns_twice attribute, then the compiler should
make it work.

I would even go so far as to say that doing this is worthwhile because
it increases test coverage for our vfork implementation.  I think we
need to provide a working vfork.

>> As a result, we can reuse the existing stack and would not have to
>> allocate a new one.
>
> Is it really a bottleneck you think work of using a deprecated and
> tricky interface instead? Also, we will need to take of the compatibility
> handling (maybe_script_execute) which is the main culprit of the stack
> requirement (besides -fstack-check).  One possibility is add a compat
> symbol and remove maybe_script_execute, but not sure if worth the trouble.

If we share the stack, like vfork does, all that stack-management code
isn't necessary anymore.

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]