"Jason Pyeron" <jpyeron@xxxxxxxx> writes: [administrivia: please never cull CC list when you respond to a message on this list without a good reason] >> circumvent the Cygwin API (and by extension, Cygwin project goals). >> >> So, perhaps a better path forward is to disable / remove the >> above code by default. (Those wanting a native Win32 git >> should just use the native >> Win32 git). > > Or a make option... It already is a runtime option, isn't it? I do not have much stake in this personally, but IIRC, the (l)stat workaround was back then found to make Cygwin version from "unusably slow" to "slow but torelable", as our POSIX-y codebase assumes that lstat is fairly efficient, which Cygwin cannot satisify because it has call many win32 calls to collect bits that we do not even look at, in order to give faithful emulation. It does place extra maintenance burden (e.g. conditional compilation depending on the header file the particular version of Cygwin installation the user has at hand) on us, but as long as it works, the ugly hack is fairly isolated and I do not see a reason to unconditionally rip it out, especially if the reasoning behind such move is on "All programs that run in Cygwin environment has to be POSIX only and must not use Win32 API directly, even in a controlled way." It is a completely different matter if the direct win32 calls we make, bypassing (l)stat emulation, somehow change the internal state of win32 resources Cygwin controls and violates the invariants Cygwin API implemenation expects, breaking later calls to it. I do not know that is the case here, but I doubt it. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html