[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: jobserver fds remain open in subprocess
From: |
Paul Smith |
Subject: |
Re: jobserver fds remain open in subprocess |
Date: |
Tue, 23 Jul 2013 14:49:29 -0400 |
On Tue, 2013-07-23 at 11:03 -0700, Keith Rarick wrote:
> I've attached a diff of stock make 3.81 and apple's. I haven't given
> more than a cursory glance at the patch. It does touch code that's
> messing with jobserver fds. It also has a big ifdef about posix_spawn.
Thanks for that, that's interesting. Yes it looks like they've
reimplemented using posix_spawn() to replace fork/exec. It seems that
they're trying to close the FDs properly with posix_spawn() but your
tests show that it's not working as they expect.
Perhaps fork on the BSD kernel they're using is noticeably less
efficient than on Linux so they like posix_spawn()?
Newer versions of GNU make do some things which make using posix_spawn()
problematic: in particular GNU make resets its stack limit which needs
to be undone in the child process, and you can't do that with
posix_spawn().