On Fri, Oct 28, 2016 at 9:48 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Excuse me, but care to elaborate a bit more? It just seems entirely pointless to change the games with O_xyz. > Setting FD_CLOEXEC with fcntl(2) may be racy, but in what way > it is broken to open(2) with O_CLOEXEC? Apparently windows doesn't even support it, at least not mingw. So you'll have to have some supprt for just explicitly closing things at execve anyway. And if you do that for windows, then what's the point of using O_CLOEXEC on Linux, and having two totally different paths that will just mean maintenance headache. In contrast, O_NOATIME isn't a maintenance problem, since it's purely an optimization and has no semantic difference, so it not existing on some platform is immaterial. End result: leave O_NOATIME as it is (working), and just forget about O_CLOEXEC. I have no actual idea about mingw support for this, but Johannes' email certainly implies it's painful on Windows. Some googling also shows people doing things like #ifdef O_CLOEXEC flags |= O_CLOEXEC; #endif or #ifndef O_CLOEXEC #define O_CLOEXEC 0 #endif so O_CLOEXEC definitely isn't considered portable. Do you really want to rely on it? Linus