git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Version 1.8.1 does not compile on Cygwin 1.7.14

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 7, 2013, 07:29 UTC
Message-ID
<7v1udxladc.fsf@alter.siamese.dyndns.org>
In-Reply-To
<FBDECCA565D94DF9838DD81FE2E2543A@black>
"Jason Pyeron" <jpyeron@pdinc.us> writes:

[administrivia: please never cull CC list when you respond to a message on this list without a good reason]

Show 8 quoted lines
>> 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.

Previous: Jason PyeronNext: Pyeron, Jason J CTR (US)
Message 23 of 45 in “Version 1.8.1 does not compile on Cygwin 1.7.14”
  1. Stephen & Linda SmithJan 6, 2013
  2. Jason PyeronJan 6, 2013
  3. Jason PyeronJan 6, 2013
  4. Stephen & Linda SmithJan 6, 2013
  5. Jason PyeronJan 6, 2013
  6. Torsten BögershausenJan 6, 2013
  7. Jonathan NiederJan 6, 2013
  8. Torsten BögershausenJan 6, 2013
  9. Jonathan NiederJan 6, 2013
  10. Mark LevedahlJan 6, 2013
  11. Jonathan NiederJan 6, 2013
  12. Stephen & Linda SmithJan 6, 2013
  13. Junio C HamanoJan 6, 2013
  14. Torsten BögershausenJan 6, 2013
  15. Mark LevedahlJan 6, 2013
  16. Mark LevedahlJan 6, 2013
  17. Jason PyeronJan 6, 2013
  18. Junio C HamanoJan 6, 2013
  19. Jason PyeronJan 6, 2013
  20. Mark LevedahlJan 6, 2013
  21. Mark LevedahlJan 6, 2013
  22. Jason PyeronJan 7, 2013
  23. Junio C HamanoJan 7, 2013
  24. Pyeron, Jason J CTR (US)Jan 7, 2013
  25. Mark LevedahlJan 8, 2013
  26. Alex RiesenJan 11, 2013
  27. Alex RiesenJan 11, 2013
  28. Mark LevedahlJan 13, 2013
  29. Ramsay JonesJan 15, 2013
  30. Jonathan NiederJan 20, 2013
  31. Torsten BögershausenJan 20, 2013
  32. Jonathan NiederJan 20, 2013
  33. Torsten BögershausenJan 21, 2013
  34. Ramsay JonesJan 22, 2013
  35. Ramsay JonesJan 22, 2013
  36. Mark LevedahlJan 25, 2013
  37. Junio C HamanoJan 26, 2013
  38. Eric BlakeJan 26, 2013
  39. mingw: rename WIN32 cpp macro to NATIVE_WINDOWSJonathan Nieder, Jan 26, 2013
  40. Mark LevedahlJan 26, 2013
  41. Torsten BögershausenJan 26, 2013
  42. Ramsay JonesJan 28, 2013
  43. Junio C HamanoFeb 25, 2013
  44. Mark LevedahlFeb 26, 2013
  45. Torsten BögershausenFeb 26, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.