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(). _______________________________________________ Help-make mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-make
