Junio C Hamano [off-list ref] wrote:
Our codepaths themselves generally do not care about O_CLOEXEC, so
giving a racy emulation of it is not worth the effort, making the
later half of the above an overkill.
OK.
Perhaps the three lines to
define O_CLOEXEC to 0 on older UNIX might be sufficient.
I'd be more comfortable keeping the EINVAL check that got
snipped in your reply. O_CLOEXEC can be defined to non-zero in
new userspace headers, but an older kernel chokes on it with
EINVAL.
I've seen this failure in the past with chroots.