{"thread":{"id":"32539","subject":"Version 1.8.1 does not compile on Cygwin 1.7.14","startedAt":"2013-01-06T02:04:42Z","lastAt":"2013-02-26T16:40:21Z","messageCount":45,"participants":["Stephen & Linda Smith","Jason Pyeron","Torsten Bögershausen","Jonathan Nieder","Mark Levedahl","Junio C Hamano","Pyeron, Jason J CTR (US)","Alex Riesen","Ramsay Jones","Eric Blake"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"206079","messageId":"2491041.bQ51Qu8HcA@thunderbird","threadId":"32539","inReplyTo":null,"subject":"Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Stephen & Linda Smith","fromEmail":"ischis2@cox.net","sentAt":"2013-01-06T02:04:42Z","receivedAt":"2013-01-06T02:04:42Z","isPatch":false,"sender":{"key":"ishchis2@gmail.com","avatar":null},"body":" Commit 9fca6cffc05321445b59c91e8f8d308f41588b53 message states that\n the macro was being renamed for clarity. The patch also changes a define.\n\nThis change causes the code to not compile on cygwin 1.7.14.\n\n I narrowed the problem to this patch by bisecting commits between v1.8.0 and \n1.8.1\n\nHere is the error sequence:\n\n    CC compat/cygwin.o\nIn file included from compat/../git-compat-util.h:90,\n                 from compat/cygwin.c:9:\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:103:2: \nwarning: #warning \"fd_set and associated macros have been defined in sys/types.      \nThis may cause runtime problems with W32 sockets\"\nIn file included from /usr/include/sys/socket.h:16,\n                 from compat/../git-compat-util.h:131,\n                 from compat/cygwin.c:9:\n/usr/include/cygwin/socket.h:29: error: redefinition of `struct sockaddr'\n/usr/include/cygwin/socket.h:41: error: redefinition of `struct \nsockaddr_storage'\nIn file included from /usr/include/sys/socket.h:16,\n                 from compat/../git-compat-util.h:131,\n                 from compat/cygwin.c:9:\n/usr/include/cygwin/socket.h:59: error: redefinition of `struct linger'\nIn file included from compat/../git-compat-util.h:131,\n                 from compat/cygwin.c:9:\n/usr/include/sys/socket.h:30: error: conflicting types for 'accept'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:536: \nerror: previous declaration of 'accept' was here\n/usr/include/sys/socket.h:30: error: conflicting types for 'accept'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:536: \nerror: previous declaration of 'accept' was here\n/usr/include/sys/socket.h:32: error: conflicting types for 'bind'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:537: \nerror: previous declaration of 'bind' was here\n/usr/include/sys/socket.h:32: error: conflicting types for 'bind'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:537: \nerror: previous declaration of 'bind' was here\n/usr/include/sys/socket.h:33: error: conflicting types for 'connect'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:539: \nerror: previous declaration of 'connect' was here\n/usr/include/sys/socket.h:33: error: conflicting types for 'connect'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:539: \nerror: previous declaration of 'connect' was here\n/usr/include/sys/socket.h:34: error: conflicting types for 'getpeername'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:541: \nerror: previous declaration of 'getpeername' was here\n/usr/include/sys/socket.h:34: error: conflicting types for 'getpeername'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:541: \nerror: previous declaration of 'getpeername' was here\n/usr/include/sys/socket.h:35: error: conflicting types for 'getsockname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:542: \nerror: previous declaration of 'getsockname' was here\n/usr/include/sys/socket.h:35: error: conflicting types for 'getsockname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:542: \nerror: previous declaration of 'getsockname' was here\n/usr/include/sys/socket.h:36: error: conflicting types for 'listen'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:546: \nerror: previous declaration of 'listen' was here\n/usr/include/sys/socket.h:36: error: conflicting types for 'listen'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:546: \nerror: previous declaration of 'listen' was here\n/usr/include/sys/socket.h:37: error: conflicting types for 'recv'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:547: \nerror: previous declaration of 'recv' was here\n/usr/include/sys/socket.h:37: error: conflicting types for 'recv'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:547: \nerror: previous declaration of 'recv' was here\n/usr/include/sys/socket.h:39: error: conflicting types for 'recvfrom'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:548: \nerror: previous declaration of 'recvfrom' was here\n/usr/include/sys/socket.h:39: error: conflicting types for 'recvfrom'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:548: \nerror: previous declaration of 'recvfrom' was here\n/usr/include/sys/socket.h:41: error: conflicting types for 'send'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:549: \nerror: previous declaration of 'send' was here\n/usr/include/sys/socket.h:41: error: conflicting types for 'send'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:549: \nerror: previous declaration of 'send' was here\n/usr/include/sys/socket.h:44: error: conflicting types for 'sendto'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:550: \nerror: previous declaration of 'sendto' was here\n/usr/include/sys/socket.h:44: error: conflicting types for 'sendto'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:550: \nerror: previous declaration of 'sendto' was here\n/usr/include/sys/socket.h:46: error: conflicting types for 'setsockopt'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:551: \nerror: previous declaration of 'setsockopt' was here\n/usr/include/sys/socket.h:46: error: conflicting types for 'setsockopt'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:551: \nerror: previous declaration of 'setsockopt' was here\n/usr/include/sys/socket.h:48: error: conflicting types for 'getsockopt'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:543: \nerror: previous declaration of 'getsockopt' was here\n/usr/include/sys/socket.h:48: error: conflicting types for 'getsockopt'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:543: \nerror: previous declaration of 'getsockopt' was here\n/usr/include/sys/socket.h:49: error: conflicting types for 'shutdown'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:552: \nerror: previous declaration of 'shutdown' was here\n/usr/include/sys/socket.h:49: error: conflicting types for 'shutdown'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:552: \nerror: previous declaration of 'shutdown' was here\n/usr/include/sys/socket.h:50: error: conflicting types for 'socket'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:553: \nerror: previous declaration of 'socket' was here\n/usr/include/sys/socket.h:50: error: conflicting types for 'socket'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:553: \nerror: previous declaration of 'socket' was here\n/usr/include/sys/socket.h:53: error: conflicting types for 'getservbyname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:557: \nerror: previous declaration of 'getservbyname' was here\n/usr/include/sys/socket.h:53: error: conflicting types for 'getservbyname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:557: \nerror: previous declaration of 'getservbyname' was here\nIn file included from compat/../git-compat-util.h:135,\n                 from compat/cygwin.c:9:\n/usr/include/sys/select.h:31: error: conflicting types for 'select'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:632: \nerror: previous declaration of 'select' was here\n/usr/include/sys/select.h:31: error: conflicting types for 'select'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:632: \nerror: previous declaration of 'select' was here\nIn file included from /usr/include/netinet/in.h:14,\n                 from compat/../git-compat-util.h:137,\n                 from compat/cygwin.c:9:\n/usr/include/cygwin/in.h:30: error: parse error before numeric constant\n/usr/include/cygwin/in.h:35: error: parse error before numeric constant\n/usr/include/cygwin/in.h:37: error: parse error before numeric constant\n/usr/include/cygwin/in.h:76: error: parse error before numeric constant\n/usr/include/cygwin/in.h:115: error: redefinition of `struct in_addr'\n/usr/include/cygwin/in.h:116: error: parse error before '.' token\n/usr/include/cygwin/in.h:184: error: redefinition of `struct sockaddr_in'\nIn file included from /usr/include/cygwin/in.h:250,\n                 from /usr/include/netinet/in.h:14,\n                 from compat/../git-compat-util.h:137,\n                 from compat/cygwin.c:9:\n/usr/include/asm/byteorder.h:26: error: conflicting types for 'ntohl'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:629: \nerror: previous declaration of 'ntohl' was here\n/usr/include/asm/byteorder.h:26: error: conflicting types for 'ntohl'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:629: \nerror: previous declaration of 'ntohl' was here\n/usr/include/asm/byteorder.h:27: error: conflicting types for 'ntohs'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:631: \nerror: previous declaration of 'ntohs' was here\n/usr/include/asm/byteorder.h:27: error: conflicting types for 'ntohs'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:631: \nerror: previous declaration of 'ntohs' was here\n/usr/include/asm/byteorder.h:28: error: conflicting types for 'htonl'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:628: \nerror: previous declaration of 'htonl' was here\n/usr/include/asm/byteorder.h:28: error: conflicting types for 'htonl'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:628: \nerror: previous declaration of 'htonl' was here\n/usr/include/asm/byteorder.h:29: error: conflicting types for 'htons'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:630: \nerror: previous declaration of 'htons' was here\n/usr/include/asm/byteorder.h:29: error: conflicting types for 'htons'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:630: \nerror: previous declaration of 'htons' was here\nIn file included from compat/../git-compat-util.h:139,\n                 from compat/cygwin.c:9:\n/usr/include/arpa/inet.h:22: error: conflicting types for 'inet_addr'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:544: \nerror: previous declaration of 'inet_addr' was here\n/usr/include/arpa/inet.h:22: error: conflicting types for 'inet_addr'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:544: \nerror: previous declaration of 'inet_addr' was here\n/usr/include/arpa/inet.h:28: error: conflicting types for 'inet_ntoa'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:545: \nerror: previous declaration of 'inet_ntoa' was here\n/usr/include/arpa/inet.h:28: error: conflicting types for 'inet_ntoa'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:545: \nerror: previous declaration of 'inet_ntoa' was here\nIn file included from compat/../git-compat-util.h:140,\n                 from compat/cygwin.c:9:\n/usr/include/netdb.h:79: error: redefinition of `struct hostent'\n/usr/include/netdb.h:93: error: redefinition of `struct netent'\n/usr/include/netdb.h:100: error: redefinition of `struct servent'\n/usr/include/netdb.h:108: error: redefinition of `struct protoent'\n/usr/include/netdb.h:139: error: conflicting types for 'WSAGetLastError'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:594: \nerror: previous declaration of 'WSAGetLastError' was here\n/usr/include/netdb.h:139: error: conflicting types for 'WSAGetLastError'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:594: \nerror: previous declaration of 'WSAGetLastError' was here\n/usr/include/netdb.h:192: error: conflicting types for 'gethostbyaddr'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:554: \nerror: previous declaration of 'gethostbyaddr' was here\n/usr/include/netdb.h:192: error: conflicting types for 'gethostbyaddr'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:554: \nerror: previous declaration of 'gethostbyaddr' was here\n/usr/include/netdb.h:193: error: conflicting types for 'gethostbyname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:555: \nerror: previous declaration of 'gethostbyname' was here\n/usr/include/netdb.h:193: error: conflicting types for 'gethostbyname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:555: \nerror: previous declaration of 'gethostbyname' was here\n/usr/include/netdb.h:199: error: conflicting types for 'getprotobyname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:559: \nerror: previous declaration of 'getprotobyname' was here\n/usr/include/netdb.h:199: error: conflicting types for 'getprotobyname'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:559: \nerror: previous declaration of 'getprotobyname' was here\n/usr/include/netdb.h:200: error: conflicting types for 'getprotobynumber'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:558: \nerror: previous declaration of 'getprotobynumber' was here\n/usr/include/netdb.h:200: error: conflicting types for 'getprotobynumber'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:558: \nerror: previous declaration of 'getprotobynumber' was here\n/usr/include/netdb.h:203: error: conflicting types for 'getservbyport'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:556: \nerror: previous declaration of 'getservbyport' was here\n/usr/include/netdb.h:203: error: conflicting types for 'getservbyport'\n/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/winsock2.h:556: \nerror: previous declaration of 'getservbyport' was here\nMakefile:2384: recipe for target `compat/cygwin.o' failed\nmake: *** [compat/cygwin.o] Error 1\n"},{"id":"206080","messageId":"F09573B23A5F449BBB6364F4D84D077D@black","threadId":"32539","inReplyTo":"2491041.bQ51Qu8HcA@thunderbird","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2013-01-06T03:37:37Z","receivedAt":"2013-01-06T03:37:37Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"\n> Stephen & Linda Smith\n> Sent: Saturday, January 05, 2013 21:05\n> \n>  Commit 9fca6cffc05321445b59c91e8f8d308f41588b53 message \n> states that  the macro was being renamed for clarity. The \n> patch also changes a define.\n\nWas it the commit before 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiles\nor was it 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiled? I am doing a\ncygwin update presently to look at it.\n\n> \n> This change causes the code to not compile on cygwin 1.7.14.\n> \n>  I narrowed the problem to this patch by bisecting commits \n> between v1.8.0 and\n> 1.8.1\n> \n> Here is the error sequence:\n> \n>     CC compat/cygwin.o\n> In file included from compat/../git-compat-util.h:90,\n>                  from compat/cygwin.c:9:\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:103:2: \n> warning: #warning \"fd_set and associated macros have been \n> defined in sys/types.      \n> This may cause runtime problems with W32 sockets\"\n> In file included from /usr/include/sys/socket.h:16,\n>                  from compat/../git-compat-util.h:131,\n>                  from compat/cygwin.c:9:\n> /usr/include/cygwin/socket.h:29: error: redefinition of \n> `struct sockaddr'\n> /usr/include/cygwin/socket.h:41: error: redefinition of \n> `struct sockaddr_storage'\n> In file included from /usr/include/sys/socket.h:16,\n>                  from compat/../git-compat-util.h:131,\n>                  from compat/cygwin.c:9:\n> /usr/include/cygwin/socket.h:59: error: redefinition of \n> `struct linger'\n> In file included from compat/../git-compat-util.h:131,\n>                  from compat/cygwin.c:9:\n> /usr/include/sys/socket.h:30: error: conflicting types for 'accept'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:536: \n> error: previous declaration of 'accept' was here\n> /usr/include/sys/socket.h:30: error: conflicting types for 'accept'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:536: \n> error: previous declaration of 'accept' was here\n> /usr/include/sys/socket.h:32: error: conflicting types for 'bind'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:537: \n> error: previous declaration of 'bind' was here\n> /usr/include/sys/socket.h:32: error: conflicting types for 'bind'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:537: \n> error: previous declaration of 'bind' was here\n> /usr/include/sys/socket.h:33: error: conflicting types for 'connect'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:539: \n> error: previous declaration of 'connect' was here\n> /usr/include/sys/socket.h:33: error: conflicting types for 'connect'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:539: \n> error: previous declaration of 'connect' was here\n> /usr/include/sys/socket.h:34: error: conflicting types for \n> 'getpeername'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:541: \n> error: previous declaration of 'getpeername' was here\n> /usr/include/sys/socket.h:34: error: conflicting types for \n> 'getpeername'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:541: \n> error: previous declaration of 'getpeername' was here\n> /usr/include/sys/socket.h:35: error: conflicting types for \n> 'getsockname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:542: \n> error: previous declaration of 'getsockname' was here\n> /usr/include/sys/socket.h:35: error: conflicting types for \n> 'getsockname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:542: \n> error: previous declaration of 'getsockname' was here\n> /usr/include/sys/socket.h:36: error: conflicting types for 'listen'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:546: \n> error: previous declaration of 'listen' was here\n> /usr/include/sys/socket.h:36: error: conflicting types for 'listen'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:546: \n> error: previous declaration of 'listen' was here\n> /usr/include/sys/socket.h:37: error: conflicting types for 'recv'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:547: \n> error: previous declaration of 'recv' was here\n> /usr/include/sys/socket.h:37: error: conflicting types for 'recv'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:547: \n> error: previous declaration of 'recv' was here\n> /usr/include/sys/socket.h:39: error: conflicting types for 'recvfrom'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:548: \n> error: previous declaration of 'recvfrom' was here\n> /usr/include/sys/socket.h:39: error: conflicting types for 'recvfrom'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:548: \n> error: previous declaration of 'recvfrom' was here\n> /usr/include/sys/socket.h:41: error: conflicting types for 'send'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:549: \n> error: previous declaration of 'send' was here\n> /usr/include/sys/socket.h:41: error: conflicting types for 'send'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:549: \n> error: previous declaration of 'send' was here\n> /usr/include/sys/socket.h:44: error: conflicting types for 'sendto'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:550: \n> error: previous declaration of 'sendto' was here\n> /usr/include/sys/socket.h:44: error: conflicting types for 'sendto'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:550: \n> error: previous declaration of 'sendto' was here\n> /usr/include/sys/socket.h:46: error: conflicting types for \n> 'setsockopt'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:551: \n> error: previous declaration of 'setsockopt' was here\n> /usr/include/sys/socket.h:46: error: conflicting types for \n> 'setsockopt'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:551: \n> error: previous declaration of 'setsockopt' was here\n> /usr/include/sys/socket.h:48: error: conflicting types for \n> 'getsockopt'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:543: \n> error: previous declaration of 'getsockopt' was here\n> /usr/include/sys/socket.h:48: error: conflicting types for \n> 'getsockopt'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:543: \n> error: previous declaration of 'getsockopt' was here\n> /usr/include/sys/socket.h:49: error: conflicting types for 'shutdown'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:552: \n> error: previous declaration of 'shutdown' was here\n> /usr/include/sys/socket.h:49: error: conflicting types for 'shutdown'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:552: \n> error: previous declaration of 'shutdown' was here\n> /usr/include/sys/socket.h:50: error: conflicting types for 'socket'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:553: \n> error: previous declaration of 'socket' was here\n> /usr/include/sys/socket.h:50: error: conflicting types for 'socket'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:553: \n> error: previous declaration of 'socket' was here\n> /usr/include/sys/socket.h:53: error: conflicting types for \n> 'getservbyname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:557: \n> error: previous declaration of 'getservbyname' was here\n> /usr/include/sys/socket.h:53: error: conflicting types for \n> 'getservbyname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:557: \n> error: previous declaration of 'getservbyname' was here In \n> file included from compat/../git-compat-util.h:135,\n>                  from compat/cygwin.c:9:\n> /usr/include/sys/select.h:31: error: conflicting types for 'select'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:632: \n> error: previous declaration of 'select' was here\n> /usr/include/sys/select.h:31: error: conflicting types for 'select'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:632: \n> error: previous declaration of 'select' was here In file \n> included from /usr/include/netinet/in.h:14,\n>                  from compat/../git-compat-util.h:137,\n>                  from compat/cygwin.c:9:\n> /usr/include/cygwin/in.h:30: error: parse error before \n> numeric constant\n> /usr/include/cygwin/in.h:35: error: parse error before \n> numeric constant\n> /usr/include/cygwin/in.h:37: error: parse error before \n> numeric constant\n> /usr/include/cygwin/in.h:76: error: parse error before \n> numeric constant\n> /usr/include/cygwin/in.h:115: error: redefinition of `struct in_addr'\n> /usr/include/cygwin/in.h:116: error: parse error before '.' token\n> /usr/include/cygwin/in.h:184: error: redefinition of `struct \n> sockaddr_in'\n> In file included from /usr/include/cygwin/in.h:250,\n>                  from /usr/include/netinet/in.h:14,\n>                  from compat/../git-compat-util.h:137,\n>                  from compat/cygwin.c:9:\n> /usr/include/asm/byteorder.h:26: error: conflicting types for 'ntohl'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:629: \n> error: previous declaration of 'ntohl' was here\n> /usr/include/asm/byteorder.h:26: error: conflicting types for 'ntohl'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:629: \n> error: previous declaration of 'ntohl' was here\n> /usr/include/asm/byteorder.h:27: error: conflicting types for 'ntohs'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:631: \n> error: previous declaration of 'ntohs' was here\n> /usr/include/asm/byteorder.h:27: error: conflicting types for 'ntohs'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:631: \n> error: previous declaration of 'ntohs' was here\n> /usr/include/asm/byteorder.h:28: error: conflicting types for 'htonl'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:628: \n> error: previous declaration of 'htonl' was here\n> /usr/include/asm/byteorder.h:28: error: conflicting types for 'htonl'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:628: \n> error: previous declaration of 'htonl' was here\n> /usr/include/asm/byteorder.h:29: error: conflicting types for 'htons'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:630: \n> error: previous declaration of 'htons' was here\n> /usr/include/asm/byteorder.h:29: error: conflicting types for 'htons'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:630: \n> error: previous declaration of 'htons' was here In file \n> included from compat/../git-compat-util.h:139,\n>                  from compat/cygwin.c:9:\n> /usr/include/arpa/inet.h:22: error: conflicting types for 'inet_addr'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:544: \n> error: previous declaration of 'inet_addr' was here\n> /usr/include/arpa/inet.h:22: error: conflicting types for 'inet_addr'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:544: \n> error: previous declaration of 'inet_addr' was here\n> /usr/include/arpa/inet.h:28: error: conflicting types for 'inet_ntoa'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:545: \n> error: previous declaration of 'inet_ntoa' was here\n> /usr/include/arpa/inet.h:28: error: conflicting types for 'inet_ntoa'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:545: \n> error: previous declaration of 'inet_ntoa' was here In file \n> included from compat/../git-compat-util.h:140,\n>                  from compat/cygwin.c:9:\n> /usr/include/netdb.h:79: error: redefinition of `struct hostent'\n> /usr/include/netdb.h:93: error: redefinition of `struct netent'\n> /usr/include/netdb.h:100: error: redefinition of `struct servent'\n> /usr/include/netdb.h:108: error: redefinition of `struct protoent'\n> /usr/include/netdb.h:139: error: conflicting types for \n> 'WSAGetLastError'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:594: \n> error: previous declaration of 'WSAGetLastError' was here\n> /usr/include/netdb.h:139: error: conflicting types for \n> 'WSAGetLastError'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:594: \n> error: previous declaration of 'WSAGetLastError' was here\n> /usr/include/netdb.h:192: error: conflicting types for 'gethostbyaddr'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:554: \n> error: previous declaration of 'gethostbyaddr' was here\n> /usr/include/netdb.h:192: error: conflicting types for 'gethostbyaddr'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:554: \n> error: previous declaration of 'gethostbyaddr' was here\n> /usr/include/netdb.h:193: error: conflicting types for 'gethostbyname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:555: \n> error: previous declaration of 'gethostbyname' was here\n> /usr/include/netdb.h:193: error: conflicting types for 'gethostbyname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:555: \n> error: previous declaration of 'gethostbyname' was here\n> /usr/include/netdb.h:199: error: conflicting types for \n> 'getprotobyname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:559: \n> error: previous declaration of 'getprotobyname' was here\n> /usr/include/netdb.h:199: error: conflicting types for \n> 'getprotobyname'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:559: \n> error: previous declaration of 'getprotobyname' was here\n> /usr/include/netdb.h:200: error: conflicting types for \n> 'getprotobynumber'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:558: \n> error: previous declaration of 'getprotobynumber' was here\n> /usr/include/netdb.h:200: error: conflicting types for \n> 'getprotobynumber'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:558: \n> error: previous declaration of 'getprotobynumber' was here\n> /usr/include/netdb.h:203: error: conflicting types for 'getservbyport'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:556: \n> error: previous declaration of 'getservbyport' was here\n> /usr/include/netdb.h:203: error: conflicting types for 'getservbyport'\n> /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\ninsock2.h:556: \n> error: previous declaration of 'getservbyport' was here\n> Makefile:2384: recipe for target `compat/cygwin.o' failed\n> make: *** [compat/cygwin.o] Error 1\n> --\n> To unsubscribe from this list: send the line \"unsubscribe \n> git\" in the body of a message to majordomo@vger.kernel.org \n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n> \n\n\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThis message is copyright PD Inc, subject to license 20080407P00.\n\n \n"},{"id":"206082","messageId":"26EEC11FB94541828DC186379E8FFF82@black","threadId":"32539","inReplyTo":"F09573B23A5F449BBB6364F4D84D077D@black","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2013-01-06T04:22:25Z","receivedAt":"2013-01-06T04:22:25Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"\n> -----Original Message-----\n> From: Jason Pyeron\n> Sent: Saturday, January 05, 2013 22:38\n> \n> \n> > Stephen & Linda Smith\n> > Sent: Saturday, January 05, 2013 21:05\n> > \n> >  Commit 9fca6cffc05321445b59c91e8f8d308f41588b53 message \n> states that  \n> > the macro was being renamed for clarity. The patch also changes a \n> > define.\n> \n> Was it the commit before \n> 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiles or was \n> it 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiled? I \n> am doing a cygwin update presently to look at it.\n> \n> > \n> > This change causes the code to not compile on cygwin 1.7.14.\n> > \n> >  I narrowed the problem to this patch by bisecting commits between \n> > v1.8.0 and\n> > 1.8.1\n> > \n> > Here is the error sequence:\n\nCannot reproduce on head and current cygwin, more details please.\n\n> > \n> >     CC compat/cygwin.o\n> > In file included from compat/../git-compat-util.h:90,\n> >                  from compat/cygwin.c:9:\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:103:2: \n> > warning: #warning \"fd_set and associated macros have been \n> > defined in sys/types.      \n> > This may cause runtime problems with W32 sockets\"\n> > In file included from /usr/include/sys/socket.h:16,\n> >                  from compat/../git-compat-util.h:131,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/cygwin/socket.h:29: error: redefinition of `struct \n> > sockaddr'\n> > /usr/include/cygwin/socket.h:41: error: redefinition of `struct \n> > sockaddr_storage'\n> > In file included from /usr/include/sys/socket.h:16,\n> >                  from compat/../git-compat-util.h:131,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/cygwin/socket.h:59: error: redefinition of `struct \n> > linger'\n> > In file included from compat/../git-compat-util.h:131,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/sys/socket.h:30: error: conflicting types for 'accept'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:536: \n> > error: previous declaration of 'accept' was here\n> > /usr/include/sys/socket.h:30: error: conflicting types for 'accept'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:536: \n\n\njpyeron@porsche /projects/git/git\n$ make && uname -a && git status && git log --oneline | head -n1\n    GEN perl/PM.stamp\n    SUBDIR gitweb\n    SUBDIR ../\nmake[2]: `GIT-VERSION-FILE' is up to date.\n    GEN git-instaweb\n    BUILTIN all\n    SUBDIR git-gui\n    SUBDIR gitk-git\nmake[1]: Nothing to be done for `all'.\n    SUBDIR perl\n    SUBDIR git_remote_helpers\n    SUBDIR templates\nCYGWIN_NT-5.2-WOW64 porsche 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin\n# On branch master\nnothing to commit (working directory clean)\n3e293fb Update draft release notes to 1.8.2\n\n\n\n> > error: previous declaration of 'accept' was here\n> > /usr/include/sys/socket.h:32: error: conflicting types for 'bind'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:537: \n> > error: previous declaration of 'bind' was here\n> > /usr/include/sys/socket.h:32: error: conflicting types for 'bind'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:537: \n> > error: previous declaration of 'bind' was here\n> > /usr/include/sys/socket.h:33: error: conflicting types for 'connect'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:539: \n> > error: previous declaration of 'connect' was here\n> > /usr/include/sys/socket.h:33: error: conflicting types for 'connect'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:539: \n> > error: previous declaration of 'connect' was here\n> > /usr/include/sys/socket.h:34: error: conflicting types for \n> > 'getpeername'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:541: \n> > error: previous declaration of 'getpeername' was here\n> > /usr/include/sys/socket.h:34: error: conflicting types for \n> > 'getpeername'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:541: \n> > error: previous declaration of 'getpeername' was here\n> > /usr/include/sys/socket.h:35: error: conflicting types for \n> > 'getsockname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:542: \n> > error: previous declaration of 'getsockname' was here\n> > /usr/include/sys/socket.h:35: error: conflicting types for \n> > 'getsockname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:542: \n> > error: previous declaration of 'getsockname' was here\n> > /usr/include/sys/socket.h:36: error: conflicting types for 'listen'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:546: \n> > error: previous declaration of 'listen' was here\n> > /usr/include/sys/socket.h:36: error: conflicting types for 'listen'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:546: \n> > error: previous declaration of 'listen' was here\n> > /usr/include/sys/socket.h:37: error: conflicting types for 'recv'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:547: \n> > error: previous declaration of 'recv' was here\n> > /usr/include/sys/socket.h:37: error: conflicting types for 'recv'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:547: \n> > error: previous declaration of 'recv' was here\n> > /usr/include/sys/socket.h:39: error: conflicting types for \n> 'recvfrom'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:548: \n> > error: previous declaration of 'recvfrom' was here\n> > /usr/include/sys/socket.h:39: error: conflicting types for \n> 'recvfrom'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:548: \n> > error: previous declaration of 'recvfrom' was here\n> > /usr/include/sys/socket.h:41: error: conflicting types for 'send'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:549: \n> > error: previous declaration of 'send' was here\n> > /usr/include/sys/socket.h:41: error: conflicting types for 'send'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:549: \n> > error: previous declaration of 'send' was here\n> > /usr/include/sys/socket.h:44: error: conflicting types for 'sendto'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:550: \n> > error: previous declaration of 'sendto' was here\n> > /usr/include/sys/socket.h:44: error: conflicting types for 'sendto'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:550: \n> > error: previous declaration of 'sendto' was here\n> > /usr/include/sys/socket.h:46: error: conflicting types for \n> > 'setsockopt'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:551: \n> > error: previous declaration of 'setsockopt' was here\n> > /usr/include/sys/socket.h:46: error: conflicting types for \n> > 'setsockopt'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:551: \n> > error: previous declaration of 'setsockopt' was here\n> > /usr/include/sys/socket.h:48: error: conflicting types for \n> > 'getsockopt'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:543: \n> > error: previous declaration of 'getsockopt' was here\n> > /usr/include/sys/socket.h:48: error: conflicting types for \n> > 'getsockopt'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:543: \n> > error: previous declaration of 'getsockopt' was here\n> > /usr/include/sys/socket.h:49: error: conflicting types for \n> 'shutdown'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:552: \n> > error: previous declaration of 'shutdown' was here\n> > /usr/include/sys/socket.h:49: error: conflicting types for \n> 'shutdown'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:552: \n> > error: previous declaration of 'shutdown' was here\n> > /usr/include/sys/socket.h:50: error: conflicting types for 'socket'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:553: \n> > error: previous declaration of 'socket' was here\n> > /usr/include/sys/socket.h:50: error: conflicting types for 'socket'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:553: \n> > error: previous declaration of 'socket' was here\n> > /usr/include/sys/socket.h:53: error: conflicting types for \n> > 'getservbyname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:557: \n> > error: previous declaration of 'getservbyname' was here\n> > /usr/include/sys/socket.h:53: error: conflicting types for \n> > 'getservbyname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:557: \n> > error: previous declaration of 'getservbyname' was here In file \n> > included from compat/../git-compat-util.h:135,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/sys/select.h:31: error: conflicting types for 'select'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:632: \n> > error: previous declaration of 'select' was here\n> > /usr/include/sys/select.h:31: error: conflicting types for 'select'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:632: \n> > error: previous declaration of 'select' was here In file \n> included from \n> > /usr/include/netinet/in.h:14,\n> >                  from compat/../git-compat-util.h:137,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/cygwin/in.h:30: error: parse error before numeric \n> > constant\n> > /usr/include/cygwin/in.h:35: error: parse error before numeric \n> > constant\n> > /usr/include/cygwin/in.h:37: error: parse error before numeric \n> > constant\n> > /usr/include/cygwin/in.h:76: error: parse error before numeric \n> > constant\n> > /usr/include/cygwin/in.h:115: error: redefinition of \n> `struct in_addr'\n> > /usr/include/cygwin/in.h:116: error: parse error before '.' token\n> > /usr/include/cygwin/in.h:184: error: redefinition of `struct \n> > sockaddr_in'\n> > In file included from /usr/include/cygwin/in.h:250,\n> >                  from /usr/include/netinet/in.h:14,\n> >                  from compat/../git-compat-util.h:137,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/asm/byteorder.h:26: error: conflicting types \n> for 'ntohl'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:629: \n> > error: previous declaration of 'ntohl' was here\n> > /usr/include/asm/byteorder.h:26: error: conflicting types \n> for 'ntohl'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:629: \n> > error: previous declaration of 'ntohl' was here\n> > /usr/include/asm/byteorder.h:27: error: conflicting types \n> for 'ntohs'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:631: \n> > error: previous declaration of 'ntohs' was here\n> > /usr/include/asm/byteorder.h:27: error: conflicting types \n> for 'ntohs'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:631: \n> > error: previous declaration of 'ntohs' was here\n> > /usr/include/asm/byteorder.h:28: error: conflicting types \n> for 'htonl'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:628: \n> > error: previous declaration of 'htonl' was here\n> > /usr/include/asm/byteorder.h:28: error: conflicting types \n> for 'htonl'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:628: \n> > error: previous declaration of 'htonl' was here\n> > /usr/include/asm/byteorder.h:29: error: conflicting types \n> for 'htons'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:630: \n> > error: previous declaration of 'htons' was here\n> > /usr/include/asm/byteorder.h:29: error: conflicting types \n> for 'htons'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:630: \n> > error: previous declaration of 'htons' was here In file \n> included from \n> > compat/../git-compat-util.h:139,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/arpa/inet.h:22: error: conflicting types for \n> 'inet_addr'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:544: \n> > error: previous declaration of 'inet_addr' was here\n> > /usr/include/arpa/inet.h:22: error: conflicting types for \n> 'inet_addr'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:544: \n> > error: previous declaration of 'inet_addr' was here\n> > /usr/include/arpa/inet.h:28: error: conflicting types for \n> 'inet_ntoa'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:545: \n> > error: previous declaration of 'inet_ntoa' was here\n> > /usr/include/arpa/inet.h:28: error: conflicting types for \n> 'inet_ntoa'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:545: \n> > error: previous declaration of 'inet_ntoa' was here In file \n> included \n> > from compat/../git-compat-util.h:140,\n> >                  from compat/cygwin.c:9:\n> > /usr/include/netdb.h:79: error: redefinition of `struct hostent'\n> > /usr/include/netdb.h:93: error: redefinition of `struct netent'\n> > /usr/include/netdb.h:100: error: redefinition of `struct servent'\n> > /usr/include/netdb.h:108: error: redefinition of `struct protoent'\n> > /usr/include/netdb.h:139: error: conflicting types for \n> > 'WSAGetLastError'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:594: \n> > error: previous declaration of 'WSAGetLastError' was here\n> > /usr/include/netdb.h:139: error: conflicting types for \n> > 'WSAGetLastError'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:594: \n> > error: previous declaration of 'WSAGetLastError' was here\n> > /usr/include/netdb.h:192: error: conflicting types for \n> 'gethostbyaddr'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:554: \n> > error: previous declaration of 'gethostbyaddr' was here\n> > /usr/include/netdb.h:192: error: conflicting types for \n> 'gethostbyaddr'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:554: \n> > error: previous declaration of 'gethostbyaddr' was here\n> > /usr/include/netdb.h:193: error: conflicting types for \n> 'gethostbyname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:555: \n> > error: previous declaration of 'gethostbyname' was here\n> > /usr/include/netdb.h:193: error: conflicting types for \n> 'gethostbyname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:555: \n> > error: previous declaration of 'gethostbyname' was here\n> > /usr/include/netdb.h:199: error: conflicting types for \n> > 'getprotobyname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:559: \n> > error: previous declaration of 'getprotobyname' was here\n> > /usr/include/netdb.h:199: error: conflicting types for \n> > 'getprotobyname'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:559: \n> > error: previous declaration of 'getprotobyname' was here\n> > /usr/include/netdb.h:200: error: conflicting types for \n> > 'getprotobynumber'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:558: \n> > error: previous declaration of 'getprotobynumber' was here\n> > /usr/include/netdb.h:200: error: conflicting types for \n> > 'getprotobynumber'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:558: \n> > error: previous declaration of 'getprotobynumber' was here\n> > /usr/include/netdb.h:203: error: conflicting types for \n> 'getservbyport'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:556: \n> > error: previous declaration of 'getservbyport' was here\n> > /usr/include/netdb.h:203: error: conflicting types for \n> 'getservbyport'\n> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api/w\n> insock2.h:556: \n> > error: previous declaration of 'getservbyport' was here\n> > Makefile:2384: recipe for target `compat/cygwin.o' failed\n> > make: *** [compat/cygwin.o] Error 1\n> > --\n> > To unsubscribe from this list: send the line \"unsubscribe \n> git\" in the \n> > body of a message to majordomo@vger.kernel.org More \n> majordomo info at  \n> > http://vger.kernel.org/majordomo-info.html\n> > \n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThis message is copyright PD Inc, subject to license 20080407P00.\n\n \n"},{"id":"206086","messageId":"1890551.8jTmplCF6O@thunderbird","threadId":"32539","inReplyTo":"2491041.bQ51Qu8HcA@thunderbird","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Stephen & Linda Smith","fromEmail":"ischis2@cox.net","sentAt":"2013-01-06T06:20:56Z","receivedAt":"2013-01-06T06:20:56Z","isPatch":false,"sender":{"key":"ishchis2@gmail.com","avatar":null},"body":"> Was it the commit before \n> 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiles or was \n> it 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiled? I \n> am doing a cygwin update presently to look at it.\n\nSince the email earlier today, I had blown away the directory.   I just now \ndid the following\n\ngit clone https://github.com/git/git.git git-src && cd git-src && make all\n...   The make errored out as before\n\ngit co 9fca6c && make all\n...   The make errored out as before\n\ngit co 9fca6c^  && make all\n... and this compiles to completion\n\nCYGWIN_NT-5.1 WINXPMACHINE 1.7.14(0.260/5/3) 2012-04-24 17:22 i686 Cygwin\n\nWhat else can I do to test this out (I will get a current cygwin tomorrow to \nuse in a test).\n"},{"id":"206110","messageId":"BB541ECCD3F04E479F06CA491DDB598D@black","threadId":"32539","inReplyTo":"1890551.8jTmplCF6O@thunderbird","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2013-01-06T06:29:33Z","receivedAt":"2013-01-06T06:29:33Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"> -----Original Message-----\n> From: Stephen & Linda Smith \n> Sent: Sunday, January 06, 2013 1:21\n> \n> > Was it the commit before\n> > 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiles or was it \n> > 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiled? I \n> am doing a \n> > cygwin update presently to look at it.\n> \n> Since the email earlier today, I had blown away the \n> directory.   I just now \n> did the following\n> \n> git clone https://github.com/git/git.git git-src && cd \n> git-src && make all\n> ...   The make errored out as before\n> \n\nNo error for me.\n\n> git co 9fca6c && make all\n> ...   The make errored out as before\n\nNo error for me.\n\n> \n> git co 9fca6c^  && make all\n> ... and this compiles to completion\n> \n> CYGWIN_NT-5.1 WINXPMACHINE 1.7.14(0.260/5/3) 2012-04-24 17:22 \n> i686 Cygwin\n\nThis is old, do you have the luxury of updating it?\n\n> \n> What else can I do to test this out (I will get a current \n> cygwin tomorrow to use in a test).\n\nI would also check to see if your devel packages are up to date too.\n\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThis message is copyright PD Inc, subject to license 20080407P00.\n\n \n"},{"id":"206116","messageId":"50E92675.4010907@web.de","threadId":"32539","inReplyTo":"BB541ECCD3F04E479F06CA491DDB598D@black","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-06T07:23:33Z","receivedAt":"2013-01-06T07:23:33Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 06.01.13 07:29, Jason Pyeron wrote:\n>> -----Original Message-----\n>> From: Stephen & Linda Smith \n>> Sent: Sunday, January 06, 2013 1:21\n>>\n>>> Was it the commit before\n>>> 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiles or was it \n>>> 9fca6cffc05321445b59c91e8f8d308f41588b53 that compiled? I \n>> am doing a \n>>> cygwin update presently to look at it.\n>>\n>> Since the email earlier today, I had blown away the \n>> directory.   I just now \n>> did the following\n>>\n>> git clone https://github.com/git/git.git git-src && cd \n>> git-src && make all\n>> ...   The make errored out as before\n>>\n> \n> No error for me.\n> \n>> git co 9fca6c && make all\n>> ...   The make errored out as before\n> \n> No error for me.\n> \n>>\n>> git co 9fca6c^  && make all\n>> ... and this compiles to completion\n>>\n>> CYGWIN_NT-5.1 WINXPMACHINE 1.7.14(0.260/5/3) 2012-04-24 17:22 \n>> i686 Cygwin\n> \n> This is old, do you have the luxury of updating it?\n> \n>>\n>> What else can I do to test this out (I will get a current \n>> cygwin tomorrow to use in a test).\n> \n> I would also check to see if your devel packages are up to date too.\n\nYou can either upgrade to cygwin 1.17 or higher.\nOr, if that is really not possible (because you are sitting on a production machine,\nwhere no changes are allowed),\n\nYou can enable this in Makefile: \nCYGWIN_V15_WIN32API = YesPlease\n\nHTH\n/Torsten\n"},{"id":"206121","messageId":"20130106093211.GB10956@elie.Belkin","threadId":"32539","inReplyTo":"50E92675.4010907@web.de","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-01-06T09:32:11Z","receivedAt":"2013-01-06T09:32:11Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nTorsten Bögershausen wrote:\n>> Stephen & Linda Smith wrote:\n\n>>> git co 9fca6c && make all\n>>> ...   The make errored out as before\n[...]\n>>> git co 9fca6c^  && make all\n>>> ... and this compiles to completion\n>>>\n>>> CYGWIN_NT-5.1 WINXPMACHINE 1.7.14(0.260/5/3) 2012-04-24 17:22 \n>>> i686 Cygwin\n[...]\n> You can either upgrade to cygwin 1.17 or higher.\n> Or, if that is really not possible (because you are sitting on a production machine,\n> where no changes are allowed),\n>\n> You can enable this in Makefile: \n> CYGWIN_V15_WIN32API = YesPlease\n\nWhat I don't understand is why commit 9fca6c would have had any\neffect at all.  Since 1.7.14 doesn't match /^1\\.[1-6]\\./, wouldn't\nthe setting to avoid including <sys/stat.h> and <sys/errno.h> be\nunset both before and after that commit?\n\nStephen, what is the content of your config.mak?\n\nCurious,\nJonathan\n"},{"id":"206122","messageId":"50E946EB.1000709@web.de","threadId":"32539","inReplyTo":"20130106093211.GB10956@elie.Belkin","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-06T09:42:03Z","receivedAt":"2013-01-06T09:42:03Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 06.01.13 10:32, Jonathan Nieder wrote:\n> Hi,\n> \n> Torsten Bögershausen wrote:\n>>> Stephen & Linda Smith wrote:\n> \n>>>> git co 9fca6c && make all\n>>>> ...   The make errored out as before\n> [...]\n>>>> git co 9fca6c^  && make all\n>>>> ... and this compiles to completion\n>>>>\n>>>> CYGWIN_NT-5.1 WINXPMACHINE 1.7.14(0.260/5/3) 2012-04-24 17:22 \n>>>> i686 Cygwin\n> [...]\n>> You can either upgrade to cygwin 1.17 or higher.\n>> Or, if that is really not possible (because you are sitting on a production machine,\n>> where no changes are allowed),\n>>\n>> You can enable this in Makefile: \n>> CYGWIN_V15_WIN32API = YesPlease\n> \n> What I don't understand is why commit 9fca6c would have had any\n> effect at all.  Since 1.7.14 doesn't match /^1\\.[1-6]\\./, wouldn't\n> the setting to avoid including <sys/stat.h> and <sys/errno.h> be\n> unset both before and after that commit?\n> \n> Stephen, what is the content of your config.mak?\n> \n> Curious,\n> Jonathan\nThe short version:\nCygwin versions  1.7.1 up to 1.7.16 use the same header files as cygwin 1.5\n\nThe change in cygwin came in in 1.7.17, \n(and from that version of cygwin we need commit 9fca6c to compile git)\n\nCurrently we can not compile git under cygwin 1.7.1 .. 1.7.16 :-(\nAs \"everybody\" running cygwin 1.7 seems to update to the latest,\n\nI don't know if we want to improve the Makefile to enable \nCYGWIN_V15_WIN32API = YesPlease \nfor cygwin versions 1.7.1 .. 1.7.16 (which are outdated)\n\n/Torsten\n\n\n\n\n \n\n\nhttp://git.661346.n2.nabble.com/PATCH-Rename-V15-MINGW-HEADERS-into-CYGWIN-OLD-WINSOCK-HEADERS-td7571449.html\n"},{"id":"206124","messageId":"20130106095757.GC10956@elie.Belkin","threadId":"32539","inReplyTo":"50E946EB.1000709@web.de","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-01-06T09:57:57Z","receivedAt":"2013-01-06T09:57:57Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Torsten Bögershausen wrote:\n\n> The short version:\n> Cygwin versions  1.7.1 up to 1.7.16 use the same header files as cygwin 1.5\n[...]\n> I don't know if we want to improve the Makefile to enable \n> CYGWIN_V15_WIN32API = YesPlease \n> for cygwin versions 1.7.1 .. 1.7.16 (which are outdated)\n\nConfusing.  Sounds like the condition in 380a4d92 (Update cygwin.c for\nnew mingw-64 win32 api headers, 2012-11-11) was too strict and the\nMakefile should say something like\n\n\t# Cygwin versions up to 1.7.16 used the same headers\n\t# as Cygwin 1.5.\n\tifeq ($(shell expr \"$(uname_R)\" : '1\\.7\\.[0-9]$$'),5)\n\t\tCYGWIN_V15_WIN32API = YesPlease\n\tendif\n\tifeq ($(shell expr \"$(uname_R)\" : '1\\.7\\.1[0-6]$$'),6)\n\t\tCYGWIN_V15_WIN32API = YesPlease\n\tendif\n\n\tifeq ($(shell expr \"$(uname_R)\" : '1\\.[1-6]\\.'),4)\n\t\tCYGWIN_V15_WIN32API = YesPlease\n\t\t...\n\tendif\n\nIs that right?\n"},{"id":"206127","messageId":"50E9647F.4090209@gmail.com","threadId":"32539","inReplyTo":"20130106095757.GC10956@elie.Belkin","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-06T11:48:15Z","receivedAt":"2013-01-06T11:48:15Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/06/2013 04:57 AM, Jonathan Nieder wrote:\n> Torsten Bögershausen wrote:\n>\n>> The short version:\n>> Cygwin versions  1.7.1 up to 1.7.16 use the same header files as cygwin 1.5\n> [...]\n>> I don't know if we want to improve the Makefile to enable\n>> CYGWIN_V15_WIN32API = YesPlease\n>> for cygwin versions 1.7.1 .. 1.7.16 (which are outdated)\n>>\n\nYou are conflating the cygwin dll version with the win32 api version. \nThese are independent packages (just as the kernel and glibc packages \nare independent on linux) and do not share a version number. However, \nthe newer win32api is provided only for the current cygwin release \nseries, which can be reliably identified by having dll version 1.7.x, \nwhile the older frozen releases (dll versions 1.6.x from redhat, 1.5.x \nopen source) still have the older api as no updates are being made for \nthe legacy version(s).\n\nCygwin does not version the win32api in any useful way: the package \nnames changed completely, for instance, and there is no macro defined \nfrom the header files to indicate a version number. Also, there is no \nsupported way to now install the older version: the only supported \nconfiguration is with the *current* win32api: multiple packages depend \nby name on the current win32api package, so the installer will insist \nupon its installation.\n\nSo the solution is to update the cygwin installation. Really. If you \ndon't believe me, try asking on the cygwin mailing list. They only \nsupport the current releases, not obsolete packages, and the older \nwin32api is explicitly obsolete.\n\nMark\n"},{"id":"206130","messageId":"20130106120917.GC22081@elie.Belkin","threadId":"32539","inReplyTo":"50E9647F.4090209@gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-01-06T12:09:17Z","receivedAt":"2013-01-06T12:09:17Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Mark Levedahl wrote:\n\n>                                                          However, the newer\n> win32api is provided only for the current cygwin release series, which can\n> be reliably identified by having dll version 1.7.x, while the older frozen\n> releases (dll versions 1.6.x from redhat, 1.5.x open source) still have the\n> older api as no updates are being made for the legacy version(s).\n\nAh.  That makes sense, thanks.\n\n(For the future, if we wanted to diagnose an out-of-date win32api and\nprint a helpful message, I guess cygcheck would be the command to use.)\n"},{"id":"206136","messageId":"2339898.c8oKya4a2t@thunderbird","threadId":"32539","inReplyTo":"20130106120917.GC22081@elie.Belkin","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Stephen & Linda Smith","fromEmail":"ischis2@cox.net","sentAt":"2013-01-06T14:09:24Z","receivedAt":"2013-01-06T14:09:24Z","isPatch":false,"sender":{"key":"ishchis2@gmail.com","avatar":null},"body":"On Sunday, January 06, 2013 04:09:17 AM Jonathan Nieder wrote:\n> Mark Levedahl wrote:\n> >                                                          However, the\n> >                                                          newer\n> > \n> > win32api is provided only for the current cygwin release series, which can\n> > be reliably identified by having dll version 1.7.x, while the older frozen\n> > releases (dll versions 1.6.x from redhat, 1.5.x open source) still have\n> > the\n> > older api as no updates are being made for the legacy version(s).\n> \n> Ah.  That makes sense, thanks.\n> \n> (For the future, if we wanted to diagnose an out-of-date win32api and\n> print a helpful message, I guess cygcheck would be the command to use.)\n\nThank you for the information.   I will update my cygwin installation.\n"},{"id":"206166","messageId":"7vfw2enl2l.fsf@alter.siamese.dyndns.org","threadId":"32539","inReplyTo":"20130106120917.GC22081@elie.Belkin","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-06T19:54:58Z","receivedAt":"2013-01-06T19:54:58Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathan Nieder <jrnieder@gmail.com> writes:\n\n> Mark Levedahl wrote:\n>\n>>                                                          However, the newer\n>> win32api is provided only for the current cygwin release series, which can\n>> be reliably identified by having dll version 1.7.x, while the older frozen\n>> releases (dll versions 1.6.x from redhat, 1.5.x open source) still have the\n>> older api as no updates are being made for the legacy version(s).\n>\n> Ah.  That makes sense, thanks.\n>\n> (For the future, if we wanted to diagnose an out-of-date win32api and\n> print a helpful message, I guess cygcheck would be the command to use.)\n\nHmph, so we might see somebody who cares about Cygwin to come up\nwith a solution based on cygcheck (not on uname) to update this\npart, perhaps on top of Peff's \"split default settings based on\nuname into separate file\" patch?\n\nIf I understood what Mark and Torsten wrote correctly, you will have\nthe new win32api if you install 1.7.17 (or newer) from scratch, but\nif you are on older 1.7.x then you can update the win32api part as a\npackage update (as opposed to the whole-system upgrade).  A test\nbased on \"uname -r\" cannot notice that an older 1.7.x (say 1.7.14)\ninstallation has a newer win32api because the user updated it from\nthe package (hence the user should not define CYGWIN_V15_WIN32API).\n\nAm I on the same page as you guys, or am I still behind?\n\nIn the meantime, perhaps we would need something like this?\n\n\ndiff --git a/Makefile b/Makefile\nindex 8e225ca..b45b06d 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -281,6 +281,9 @@ all::\n #\n # Define NO_REGEX if you have no or inferior regex support in your C library.\n #\n+# Define CYGWIN_V15_WIN32API if your Cygwin uses win32api dll older than\n+# 1.7.x (this typically is true on Cygwin older than 1.7.17)\n+#\n # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n # user.\n #\n"},{"id":"206171","messageId":"50E9E3C5.4070104@web.de","threadId":"32539","inReplyTo":"7vfw2enl2l.fsf@alter.siamese.dyndns.org","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-06T20:51:17Z","receivedAt":"2013-01-06T20:51:17Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 06.01.13 20:54, Junio C Hamano wrote:\n> Jonathan Nieder <jrnieder@gmail.com> writes:\n> \n>> Mark Levedahl wrote:\n>>\n>>>                                                          However, the newer\n>>> win32api is provided only for the current cygwin release series, which can\n>>> be reliably identified by having dll version 1.7.x, while the older frozen\n>>> releases (dll versions 1.6.x from redhat, 1.5.x open source) still have the\n>>> older api as no updates are being made for the legacy version(s).\n>>\n>> Ah.  That makes sense, thanks.\n>>\n>> (For the future, if we wanted to diagnose an out-of-date win32api and\n>> print a helpful message, I guess cygcheck would be the command to use.)\n> \n> Hmph, so we might see somebody who cares about Cygwin to come up\n> with a solution based on cygcheck (not on uname) to update this\n> part, perhaps on top of Peff's \"split default settings based on\n> uname into separate file\" patch?\n> \n> If I understood what Mark and Torsten wrote correctly, you will have\n> the new win32api if you install 1.7.17 (or newer) from scratch, but\n> if you are on older 1.7.x then you can update the win32api part as a\n> package update (as opposed to the whole-system upgrade).  A test\n> based on \"uname -r\" cannot notice that an older 1.7.x (say 1.7.14)\n> installation has a newer win32api because the user updated it from\n> the package (hence the user should not define CYGWIN_V15_WIN32API).\n> \n> Am I on the same page as you guys, or am I still behind?\n> \n> In the meantime, perhaps we would need something like this?\n> \n> \n> diff --git a/Makefile b/Makefile\n> index 8e225ca..b45b06d 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -281,6 +281,9 @@ all::\n>  #\n>  # Define NO_REGEX if you have no or inferior regex support in your C library.\n>  #\n> +# Define CYGWIN_V15_WIN32API if your Cygwin uses win32api dll older than\n> +# 1.7.x (this typically is true on Cygwin older than 1.7.17)\n> +#\n>  # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n>  # user.\n>  #\n\nHm, I haven't understood the connection between the dll (cygwin1.dll ?)\nwhich is used in runtime, and the header files which are used when compiling.\n\nAre they updated at the same time when updating from 1.7.16 to 1.7.17 ?\n\nUntil I updated my cygwin 1.7 (following Marks recommendation) this did the trick for me:\n\n+ifeq ($(shell grep mingw /usr/include/w32api/winsock2.h />/dev/null 2>/dev/null && echo y),y)\n+\tCYGWIN_V15_WIN32API=YesPlease\n+endif\n\n\nAs an alternative, would this be easier to read?\n> +# Define CYGWIN_V15_WIN32API for Cygwin versions up to 1.7.16\n"},{"id":"206174","messageId":"50E9E822.4020709@gmail.com","threadId":"32539","inReplyTo":"7vfw2enl2l.fsf@alter.siamese.dyndns.org","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-06T21:09:54Z","receivedAt":"2013-01-06T21:09:54Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/06/2013 02:54 PM, Junio C Hamano wrote:\n> Jonathan Nieder <jrnieder@gmail.com> writes:\n>\n>> Mark Levedahl wrote:\n>>\n>>>                                                           However, the newer\n>>> win32api is provided only for the current cygwin release series, which can\n>>> be reliably identified by having dll version 1.7.x, while the older frozen\n>>> releases (dll versions 1.6.x from redhat, 1.5.x open source) still have the\n>>> older api as no updates are being made for the legacy version(s).\n>> Ah.  That makes sense, thanks.\n>>\n>> (For the future, if we wanted to diagnose an out-of-date win32api and\n>> print a helpful message, I guess cygcheck would be the command to use.)\n> Hmph, so we might see somebody who cares about Cygwin to come up\n> with a solution based on cygcheck (not on uname) to update this\n> part, perhaps on top of Peff's \"split default settings based on\n> uname into separate file\" patch?\n>\n> If I understood what Mark and Torsten wrote correctly, you will have\n> the new win32api if you install 1.7.17 (or newer) from scratch, but\n> if you are on older 1.7.x then you can update the win32api part as a\n> package update (as opposed to the whole-system upgrade).  A test\n> based on \"uname -r\" cannot notice that an older 1.7.x (say 1.7.14)\n> installation has a newer win32api because the user updated it from\n> the package (hence the user should not define CYGWIN_V15_WIN32API).\n>\n> Am I on the same page as you guys, or am I still behind?\n>\n> In the meantime, perhaps we would need something like this?\n>\n>\n> diff --git a/Makefile b/Makefile\n> index 8e225ca..b45b06d 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -281,6 +281,9 @@ all::\n>   #\n>   # Define NO_REGEX if you have no or inferior regex support in your C library.\n>   #\n> +# Define CYGWIN_V15_WIN32API if your Cygwin uses win32api dll older than\n> +# 1.7.x (this typically is true on Cygwin older than 1.7.17)\n> +#\n>   # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n>   # user.\n>   #\n>\nLooking at a current setup.ini, the obsolete win32 api is a single \npackage \"w32api\" with last version 3.17-2, and is now replaced by the \nnew win32 api is in two packages, \"w32api-headers\" + \"w32api-runtime\", \nboth at version 3.0b_svn5496-1. If setup.exe updated an older \ninstallation of w32api, the old package is not deleted, but replaced by \na special \"empty\" package with (as of today) version 9999-1. Note that \nall of this could change at any time. Also, note that the new w32api \npackages have version numbers that are lower than the older obsoleted \nversion.\n\nRunning \"cygcheck -c w32api w32api-headers w32api-runtime\" on one \nmachine gives\n\nCygwin Package Information\nPackage              Version            Status\nw32api               9999-1             OK\nw32api-headers       3.0b_svn5496-1     OK\nw32api-runtime       3.0b_svn5496-1     OK\n\nSo now, what do folks propose checking for?\na) w32api is installed? Nope - the package is not \"removed\", it was \nupdated to a special empty version to delete its former contents, but a \nnew fresh installation won't have this.\nb) w32api-headers is installed? Nope - what happens on the next repackaging?\nc) w32api version is 9999-1? Maybe, but that number could change.\netc.\n\nThere is no documented, reliable, future-proof, method of determining \nthe installed w32api version on Cygwin. There are many things that can \nbe done that will work frequently, except when they won't. I really \nthink the only sane thing is to follow the guidance of the Cygwin \ndevelopers: the only supported configuration is that which the current \nsetup.exe produces, and in the case of problems, if the installation is \nnot up to date then updating is the first required action.\n\nSo, in the makefile, you might add:\n\n+# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x but are not\n+# using the current w32api packages. But, the recommended approach is to\n+# update your installation if compilation errors occur.\n+#\n\nMark\n"},{"id":"206175","messageId":"D527CF72B81E4F70B390334EC04EA0E8@black","threadId":"32539","inReplyTo":"50E9E822.4020709@gmail.com","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2013-01-06T21:33:58Z","receivedAt":"2013-01-06T21:33:58Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"> -----Original Message-----\n> From: git-owner@vger.kernel.org \n> [mailto:git-owner@vger.kernel.org] On Behalf Of Mark Levedahl\n> Sent: Sunday, January 06, 2013 16:10\n> To: Junio C Hamano\n> Cc: Jonathan Nieder; Torsten Bögershausen; Stephen & Linda \n> Smith; Jason Pyeron; git@vger.kernel.org; Eric Blake\n> Subject: Re: Version 1.8.1 does not compile on Cygwin 1.7.14\n> \n> On 01/06/2013 02:54 PM, Junio C Hamano wrote:\n> > Jonathan Nieder <jrnieder@gmail.com> writes:\n> >\n> >> Mark Levedahl wrote:\n> >>\n> >>>                                                           \n> However, \n> >>> the newer win32api is provided only for the current \n> cygwin release \n> >>> series, which can be reliably identified by having dll version \n> >>> 1.7.x, while the older frozen releases (dll versions 1.6.x from \n> >>> redhat, 1.5.x open source) still have the older api as no \n> updates are being made for the legacy version(s).\n> >> Ah.  That makes sense, thanks.\n> >>\n> >> (For the future, if we wanted to diagnose an out-of-date \n> win32api and \n> >> print a helpful message, I guess cygcheck would be the command to \n> >> use.)\n> > Hmph, so we might see somebody who cares about Cygwin to \n> come up with \n> > a solution based on cygcheck (not on uname) to update this part, \n> > perhaps on top of Peff's \"split default settings based on \n> uname into \n> > separate file\" patch?\n> >\n> > If I understood what Mark and Torsten wrote correctly, you \n> will have \n> > the new win32api if you install 1.7.17 (or newer) from \n> scratch, but if \n> > you are on older 1.7.x then you can update the win32api part as a \n> > package update (as opposed to the whole-system upgrade).  A \n> test based \n> > on \"uname -r\" cannot notice that an older 1.7.x (say 1.7.14) \n> > installation has a newer win32api because the user updated \n> it from the \n> > package (hence the user should not define CYGWIN_V15_WIN32API).\n> >\n> > Am I on the same page as you guys, or am I still behind?\n> >\n> > In the meantime, perhaps we would need something like this?\n> >\n> >\n> > diff --git a/Makefile b/Makefile\n> > index 8e225ca..b45b06d 100644\n> > --- a/Makefile\n> > +++ b/Makefile\n> > @@ -281,6 +281,9 @@ all::\n> >   #\n> >   # Define NO_REGEX if you have no or inferior regex \n> support in your C library.\n> >   #\n> > +# Define CYGWIN_V15_WIN32API if your Cygwin uses win32api \n> dll older \n> > +than # 1.7.x (this typically is true on Cygwin older than 1.7.17) #\n> >   # Define HAVE_DEV_TTY if your system can open /dev/tty to \n> interact with the\n> >   # user.\n> >   #\n> >\n> Looking at a current setup.ini, the obsolete win32 api is a \n> single package \"w32api\" with last version 3.17-2, and is now \n> replaced by the new win32 api is in two packages, \n> \"w32api-headers\" + \"w32api-runtime\", both at version \n> 3.0b_svn5496-1. If setup.exe updated an older installation of \n> w32api, the old package is not deleted, but replaced by a \n> special \"empty\" package with (as of today) version 9999-1. \n> Note that all of this could change at any time. Also, note \n> that the new w32api packages have version numbers that are \n> lower than the older obsoleted version.\n\nI would not rely on that information as it is not designed to convey the\ninformation the git build needs.\n\n> \n> Running \"cygcheck -c w32api w32api-headers w32api-runtime\" on \n> one machine gives\n> \n> Cygwin Package Information\n> Package              Version            Status\n> w32api               9999-1             OK\n> w32api-headers       3.0b_svn5496-1     OK\n> w32api-runtime       3.0b_svn5496-1     OK\n> \n> So now, what do folks propose checking for?\n> a) w32api is installed? Nope - the package is not \"removed\", \n> it was updated to a special empty version to delete its \n> former contents, but a new fresh installation won't have this.\n> b) w32api-headers is installed? Nope - what happens on the \n> next repackaging?\n> c) w32api version is 9999-1? Maybe, but that number could change.\n> etc.\n\nThis is what is typically done in a configure script by test compiling.\n\n> \n> There is no documented, reliable, future-proof, method of \n> determining the installed w32api version on Cygwin. There are \n> many things that can be done that will work frequently, \n> except when they won't. I really think the only sane thing is \n> to follow the guidance of the Cygwin\n> developers: the only supported configuration is that which \n> the current setup.exe produces, and in the case of problems, \n> if the installation is not up to date then updating is the \n> first required action.\n> \n> So, in the makefile, you might add:\n> \n> +# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x \n> but are not \n> +# using the current w32api packages. But, the recommended \n> approach is \n> +to # update your installation if compilation errors occur.\n> +#\n\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThis message is copyright PD Inc, subject to license 20080407P00.\n\n \n"},{"id":"206176","messageId":"50E9EDE8.6090200@gmail.com","threadId":"32539","inReplyTo":"50E9E3C5.4070104@web.de","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-06T21:34:32Z","receivedAt":"2013-01-06T21:34:32Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/06/2013 03:51 PM, Torsten Bögershausen wrote:\n> Hm, I haven't understood the connection between the dll (cygwin1.dll \n> ?) which is used in runtime, and the header files which are used when \n> compiling. Are they updated at the same time when updating from 1.7.16 \n> to 1.7.17 ? Until I updated my cygwin 1.7 (following Marks \n> recommendation) this did the trick for me: +ifeq ($(shell grep mingw \n> /usr/include/w32api/winsock2.h />/dev/null 2>/dev/null && echo y),y) + \n> CYGWIN_V15_WIN32API=YesPlease +endif As an alternative, would this be \n> easier to read?\n>> +# Define CYGWIN_V15_WIN32API for Cygwin versions up to 1.7.16\n>\n>\n\nThe cygwin distribution has a very large number of packages, each with \nits own unique version number and update rhythm, just as in any linux \ndistro. There is no \"cygwin version\", just a version for each individual \npackage. So, \"Cygwin version 1.7.16\" is really nonsensical: there is \nonly cygwin.dll version 1.7.16.  What folks are noticing is a \ncoincidence in the time when the cygwin dll package updated and when the \nold w32api was obsoleted. uname -r reports the cygwin dll version, not \nthe version of any other package. Note that the cygwin api is \"stable\", \nmeaning a package compiled against the 1.7.1 dll will still run against \nthe current one: updating the cygwin dll does not require other packages \nto update.\n\nThe only hard linkage here is that the Cygwin developers are maintaining \na legacy cygwin version (v1.5.x) as the newer dll series (v.1.7.x) \ndropped support for all Windows versions predating (I think) WinXP. So, \nsomeone on an old Windows version must use the legacy cygwin version \nwhich has not been updated since the first v1.7 dll was released, nor \nare there any plans by the developers to ever update the v1.5 packages. \nCygwin 1.5 lives in a separate distribution repository, with packages \nfrozen in time as of the last updates prior to going to v1.7 (packages \ncompiled against v1.7 will not run on v.1.5).\n\nSo, encountering a v1.5.x dll is a guarantee of using the older w32api \nshared with the mingw project, rather than the current one now \nmaintained by the mingw64 project. However, a cygwin with any v1.7.x dll \ncould in theory have either w32api installed, or in theory yet another \nnewer one we don't know about yet. Unless and until the w32api \nestablishes a version number (independent of the Windows API version), \nwe have nothing reliable to use.\n\nTherefore, if using the v1.7 series, *update*\n\nMark\n"},{"id":"206177","messageId":"7vtxqum1u9.fsf@alter.siamese.dyndns.org","threadId":"32539","inReplyTo":"50E9E822.4020709@gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-06T21:35:42Z","receivedAt":"2013-01-06T21:35:42Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thanks; so perhaps you can give me an OK to forge your S-o-b to the\nfollowing?\n\n-- >8 --\nFrom: Mark Levedahl <mlevedahl@gmail.com>\nDate: Sun, 6 Jan 2013 11:56:33 -0800\nSubject: [PATCH] Makefile: add comment on CYGWIN_V15_WIN32API\n\nThere is no documented, reliable, and future-proof method to\ndetermine the installed w32api version on Cygwin. There are many\nthings that can be done that will work frequently, except when they\nwon't.\n\nThe only sane thing is to follow the guidance of the Cygwin\ndevelopers: the only supported configuration is that which the\ncurrent setup.exe produces, and in the case of problems, if the\ninstallation is not up to date then updating is the first required\naction.\n\nSigned-off-by: Mark Levedahl <mlevedahl@gmail.com>\n---\n Makefile | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/Makefile b/Makefile\nindex 4d47af5..52e298a 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -273,6 +273,10 @@ all::\n #\n # Define NO_REGEX if you have no or inferior regex support in your C library.\n #\n+# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x but are not\n+# using the current w32api packages. The recommended approach, however,\n+# is to update your installation if compilation errors occur.\n+#\n # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n # user.\n #\n-- \n1.8.1.302.g0f4eaa7\n"},{"id":"206179","messageId":"BFCB094090C6444F8C951211FF795561@black","threadId":"32539","inReplyTo":"7vtxqum1u9.fsf@alter.siamese.dyndns.org","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2013-01-06T21:46:17Z","receivedAt":"2013-01-06T21:46:17Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"> -----Original Message-----\n> From: Junio C Hamano\n> Sent: Sunday, January 06, 2013 16:36\n> \n> Thanks; so perhaps you can give me an OK to forge your S-o-b \n> to the following?\n\nI am personally fine with it, because cygwin is used by developers not\nproduction systems and I expect my developers to upgrade their environment for\nsecurity fixes, etc.\nIf I ever had a situation where I am using git, in production, on cygwin, where\nI could not upgrade I would effort to make a compile test based patch to the\nmake file to accommodate the issue.\n\n> \n> -- >8 --\n> From: Mark Levedahl <mlevedahl@gmail.com>\n> Date: Sun, 6 Jan 2013 11:56:33 -0800\n> Subject: [PATCH] Makefile: add comment on CYGWIN_V15_WIN32API\n> \n> There is no documented, reliable, and future-proof method to \n> determine the installed w32api version on Cygwin. There are \n> many things that can be done that will work frequently, \n> except when they won't.\n> \n> The only sane thing is to follow the guidance of the Cygwin\n> developers: the only supported configuration is that which \n> the current setup.exe produces, and in the case of problems, \n> if the installation is not up to date then updating is the \n> first required action.\n> \n> Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>\n> ---\n>  Makefile | 4 ++++\n>  1 file changed, 4 insertions(+)\n> \n> diff --git a/Makefile b/Makefile\n> index 4d47af5..52e298a 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -273,6 +273,10 @@ all::\n>  #\n>  # Define NO_REGEX if you have no or inferior regex support \n> in your C library.\n>  #\n> +# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x \n> but are not \n> +# using the current w32api packages. The recommended \n> approach, however, \n> +# is to update your installation if compilation errors occur.\n> +#\n>  # Define HAVE_DEV_TTY if your system can open /dev/tty to \n> interact with the  # user.\n>  #\n> --\n> 1.8.1.302.g0f4eaa7\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThis message is copyright PD Inc, subject to license 20080407P00.\n\n \n"},{"id":"206181","messageId":"50E9F40B.5000009@gmail.com","threadId":"32539","inReplyTo":"7vtxqum1u9.fsf@alter.siamese.dyndns.org","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-06T22:00:43Z","receivedAt":"2013-01-06T22:00:43Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/06/2013 04:35 PM, Junio C Hamano wrote:\n> Thanks; so perhaps you can give me an OK to forge your S-o-b to the\n> following?\n>\n> -- >8 --\n> From: Mark Levedahl <mlevedahl@gmail.com>\n> Date: Sun, 6 Jan 2013 11:56:33 -0800\n> Subject: [PATCH] Makefile: add comment on CYGWIN_V15_WIN32API\n>\n> There is no documented, reliable, and future-proof method to\n> determine the installed w32api version on Cygwin. There are many\n> things that can be done that will work frequently, except when they\n> won't.\n>\n> The only sane thing is to follow the guidance of the Cygwin\n> developers: the only supported configuration is that which the\n> current setup.exe produces, and in the case of problems, if the\n> installation is not up to date then updating is the first required\n> action.\n>\n> Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>\n> ---\n>   Makefile | 4 ++++\n>   1 file changed, 4 insertions(+)\n>\n> diff --git a/Makefile b/Makefile\n> index 4d47af5..52e298a 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -273,6 +273,10 @@ all::\n>   #\n>   # Define NO_REGEX if you have no or inferior regex support in your C library.\n>   #\n> +# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x but are not\n> +# using the current w32api packages. The recommended approach, however,\n> +# is to update your installation if compilation errors occur.\n> +#\n>   # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n>   # user.\n>   #\nAbsolutely, that is ok by me.\n\nMark\n"},{"id":"206183","messageId":"50E9F7C2.1000603@gmail.com","threadId":"32539","inReplyTo":"7vfw2enl2l.fsf@alter.siamese.dyndns.org","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-06T22:16:34Z","receivedAt":"2013-01-06T22:16:34Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/06/2013 02:54 PM, Junio C Hamano wrote:\n> Jonathan Nieder <jrnieder@gmail.com> writes:\n>\n>> Mark Levedahl wrote:\n>>\n>>>                                                           However, the newer\n>>> win32api is provided only for the current cygwin release series, which can\n>>> be reliably identified by having dll version 1.7.x, while the older frozen\n>>> releases (dll versions 1.6.x from redhat, 1.5.x open source) still have the\n>>> older api as no updates are being made for the legacy version(s).\n>> Ah.  That makes sense, thanks.\n>>\n>> (For the future, if we wanted to diagnose an out-of-date win32api and\n>> print a helpful message, I guess cygcheck would be the command to use.)\n> Hmph, so we might see somebody who cares about Cygwin to come up\n> with a solution based on cygcheck (not on uname) to update this\n> part, perhaps on top of Peff's \"split default settings based on\n> uname into separate file\" patch?\n>\n> If I understood what Mark and Torsten wrote correctly, you will have\n> the new win32api if you install 1.7.17 (or newer) from scratch, but\n> if you are on older 1.7.x then you can update the win32api part as a\n> package update (as opposed to the whole-system upgrade).  A test\n> based on \"uname -r\" cannot notice that an older 1.7.x (say 1.7.14)\n> installation has a newer win32api because the user updated it from\n> the package (hence the user should not define CYGWIN_V15_WIN32API).\n>\n> Am I on the same page as you guys, or am I still behind?\n>\n> In the meantime, perhaps we would need something like this?\n\nIt's perhaps worth noting how we got into this mess. The problems have \ntheir root in\n\n     adbc0b6b6e57c11ca49779d01f549260a920a97d\n\nCygwin's entire goal is a completely POSIX compliant environment running \nunder Windows. The above commit circumvents some of Cygwin's API \nregarding stat/fstat to make things perhaps a bit faster, and definitely \nnot POSIX compliant (The commit message is wrong, the commit definitely \nbreaks POSIX compliance). That code is also what will not compile on \ndifferent w32api versions. It is curious: the Cygwin  mailing list has \nbeen absolutely silent since the w32api change was introduced last \nsummer, this is the only piece of code I am aware of that was broken by \nthe new headers, and of course the purpose of this code is to circumvent \nthe Cygwin API (and by extension, Cygwin project goals).\n\nSo, perhaps a better path forward is to disable / remove the above code \nby default. (Those wanting a native Win32 git should just use the native \nWin32 git).\n\nMark\n"},{"id":"206210","messageId":"FBDECCA565D94DF9838DD81FE2E2543A@black","threadId":"32539","inReplyTo":"50E9F7C2.1000603@gmail.com","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jason Pyeron","fromEmail":"jpyeron@pdinc.us","sentAt":"2013-01-07T05:37:14Z","receivedAt":"2013-01-07T05:37:14Z","isPatch":false,"sender":{"key":"jpyeron@pdinc.us","avatar":"https://gravatar.com/avatar/c2e53452caa53d940768a1ffc9cf76196d851b9b534b7a39cd39852a70a0508f?d=mp&s=160"},"body":"> -----Original Message-----\n> From: Mark Levedahl\n> Sent: Sunday, January 06, 2013 17:17\n> \n> On 01/06/2013 02:54 PM, Junio C Hamano wrote:\n> > Jonathan Nieder <jrnieder@gmail.com> writes:\n> >\n> >> Mark Levedahl wrote:\n> >>\n> >>>                                                           \n> However, \n> >>> the newer win32api is provided only for the current \n> cygwin release \n> >>> series, which can be reliably identified by having dll version \n> >>> 1.7.x, while the older frozen releases (dll versions 1.6.x from \n> >>> redhat, 1.5.x open source) still have the older api as no \n> updates are being made for the legacy version(s).\n> >> Ah.  That makes sense, thanks.\n> >>\n> >> (For the future, if we wanted to diagnose an out-of-date \n> win32api and \n> >> print a helpful message, I guess cygcheck would be the command to \n> >> use.)\n> > Hmph, so we might see somebody who cares about Cygwin to \n> come up with \n> > a solution based on cygcheck (not on uname) to update this part, \n> > perhaps on top of Peff's \"split default settings based on \n> uname into \n> > separate file\" patch?\n> >\n> > If I understood what Mark and Torsten wrote correctly, you \n> will have \n> > the new win32api if you install 1.7.17 (or newer) from \n> scratch, but if \n> > you are on older 1.7.x then you can update the win32api part as a \n> > package update (as opposed to the whole-system upgrade).  A \n> test based \n> > on \"uname -r\" cannot notice that an older 1.7.x (say 1.7.14) \n> > installation has a newer win32api because the user updated \n> it from the \n> > package (hence the user should not define CYGWIN_V15_WIN32API).\n> >\n> > Am I on the same page as you guys, or am I still behind?\n> >\n> > In the meantime, perhaps we would need something like this?\n> \n> It's perhaps worth noting how we got into this mess. The \n> problems have their root in\n> \n>      adbc0b6b6e57c11ca49779d01f549260a920a97d\n> \n> Cygwin's entire goal is a completely POSIX compliant \n> environment running under Windows. The above commit \n> circumvents some of Cygwin's API regarding stat/fstat to make \n> things perhaps a bit faster, and definitely not POSIX \n\nUg!\n\n> compliant (The commit message is wrong, the commit definitely \n> breaks POSIX compliance). That code is also what will not \n> compile on different w32api versions. It is curious: the \n> Cygwin  mailing list has been absolutely silent since the \n> w32api change was introduced last summer, this is the only \n> piece of code I am aware of that was broken by the new \n> headers, and of course the purpose of this code is to \n\nUm, going out on a limb here, but those headers are used internally as \"cygwin\"\napps are most likely to now know about those headers.\n\n> circumvent the Cygwin API (and by extension, Cygwin project goals).\n> \n> So, perhaps a better path forward is to disable / remove the \n> above code by default. (Those wanting a native Win32 git \n> should just use the native\n> Win32 git).\n\nOr a make option...\n\n\n\n--\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n-                                                               -\n- Jason Pyeron                      PD Inc. http://www.pdinc.us -\n- Principal Consultant              10 West 24th Street #100    -\n- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -\n-                                                               -\n-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\nThis message is copyright PD Inc, subject to license 20080407P00.\n\n \n"},{"id":"206212","messageId":"7v1udxladc.fsf@alter.siamese.dyndns.org","threadId":"32539","inReplyTo":"FBDECCA565D94DF9838DD81FE2E2543A@black","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-07T07:29:03Z","receivedAt":"2013-01-07T07:29:03Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Jason Pyeron\" <jpyeron@pdinc.us> writes:\n\n[administrivia: please never cull CC list when you respond to a\nmessage on this list without a good reason]\n\n>> circumvent the Cygwin API (and by extension, Cygwin project goals).\n>> \n>> So, perhaps a better path forward is to disable / remove the \n>> above code by default. (Those wanting a native Win32 git \n>> should just use the native\n>> Win32 git).\n>\n> Or a make option...\n\nIt already is a runtime option, isn't it?\n\nI do not have much stake in this personally, but IIRC, the (l)stat\nworkaround was back then found to make Cygwin version from \"unusably\nslow\" to \"slow but torelable\", as our POSIX-y codebase assumes that\nlstat is fairly efficient, which Cygwin cannot satisify because it\nhas call many win32 calls to collect bits that we do not even look\nat, in order to give faithful emulation.  It does place extra\nmaintenance burden (e.g. conditional compilation depending on the\nheader file the particular version of Cygwin installation the user\nhas at hand) on us, but as long as it works, the ugly hack is fairly\nisolated and I do not see a reason to unconditionally rip it out,\nespecially if the reasoning behind such move is on \"All programs\nthat run in Cygwin environment has to be POSIX only and must not use\nWin32 API directly, even in a controlled way.\"\n\nIt is a completely different matter if the direct win32 calls we\nmake, bypassing (l)stat emulation, somehow change the internal state\nof win32 resources Cygwin controls and violates the invariants\nCygwin API implemenation expects, breaking later calls to it.  I\ndo not know that is the case here, but I doubt it.\n"},{"id":"206219","messageId":"871B6C10EBEFE342A772D1159D1320853A011C4D@umechphj.easf.csd.disa.mil","threadId":"32539","inReplyTo":"7v1udxladc.fsf@alter.siamese.dyndns.org","subject":"RE: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Pyeron, Jason J CTR (US)","fromEmail":"jason.j.pyeron.ctr@mail.mil","sentAt":"2013-01-07T09:10:57Z","receivedAt":"2013-01-07T09:10:57Z","isPatch":false,"sender":{"key":"jason.j.pyeron.ctr@mail.mil","avatar":null},"body":"> -----Original Message-----\n> From: Junio C Hamano\n> Sent: Monday, January 07, 2013 2:29 AM\n> \n> Jason Pyeron writes:\n> \n> [administrivia: please never cull CC list when you respond to a\n> message on this list without a good reason]\n\nApologies, I just have 4 copies of every message and was trying to save other that pain.\n\n> \n> >> circumvent the Cygwin API (and by extension, Cygwin project goals).\n> >>\n> >> So, perhaps a better path forward is to disable / remove the\n> >> above code by default. (Those wanting a native Win32 git\n> >> should just use the native\n> >> Win32 git).\n> >\n> > Or a make option...\n> \n> It already is a runtime option, isn't it?\n> \n> I do not have much stake in this personally, but IIRC, the (l)stat\n> workaround was back then found to make Cygwin version from \"unusably\n> slow\" to \"slow but torelable\", as our POSIX-y codebase assumes that\n> lstat is fairly efficient, which Cygwin cannot satisify because it\n\nIs there already a set of test cases I can run to validate that this is still true?\n\n> has call many win32 calls to collect bits that we do not even look\n> at, in order to give faithful emulation.  It does place extra\n> maintenance burden (e.g. conditional compilation depending on the\n> header file the particular version of Cygwin installation the user\n> has at hand) on us, but as long as it works, the ugly hack is fairly\n\nThere seems to be only 2 valid use cases here, with regards to cygwin.\n\n1. Do it the normal posix way, and dont hack it up.\n2. For speed reasons, merge in native windows/non-posix functions.\n\nI would not care about the user's cygwin version because the cygwin supporters won't either. In both cases assume the latest cygwin libraries. If there is a specific user with a use case for an older version of cygwin libraries then we can cross that bridge when (if) we arrive at it.\n\n> isolated and I do not see a reason to unconditionally rip it out,\n> especially if the reasoning behind such move is on \"All programs\n> that run in Cygwin environment has to be POSIX only and must not use\n> Win32 API directly, even in a controlled way.\"\n\nI presently do not care if it stays or goes. But if someone were to bring this to the cygwin mailing list it would be a headache to deal with the \"hacked\" way. They would likely be more receptive to increasing the efficiency of the lstat than other approaches.\n\n> \n> It is a completely different matter if the direct win32 calls we\n> make, bypassing (l)stat emulation, somehow change the internal state\n> of win32 resources Cygwin controls and violates the invariants\n> Cygwin API implemenation expects, breaking later calls to it.  I\n> do not know that is the case here, but I doubt it.\n\nI agree, it is not going to break anything here. Those libraries are just a way of presenting the Windows API without using Microsoft files and making it easier to wrap the POSIX apis to it. \n\n"},{"id":"206262","messageId":"50EB8EB5.6080204@gmail.com","threadId":"32539","inReplyTo":"7v1udxladc.fsf@alter.siamese.dyndns.org","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-08T03:12:53Z","receivedAt":"2013-01-08T03:12:53Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/07/2013 02:29 AM, Junio C Hamano wrote:\n>\n> I do not have much stake in this personally, but IIRC, the (l)stat\n> workaround was back then found to make Cygwin version from \"unusably\n> slow\" to \"slow but torelable\", as our POSIX-y codebase assumes that\n> lstat is fairly efficient, which Cygwin cannot satisify because it\n> has call many win32 calls to collect bits that we do not even look\n> at, in order to give faithful emulation.  It does place extra\n> maintenance burden\nThe maintenance burden is the only issue here, and I just wanted to \npoint out the origin. I never enable that run-time option, the small \ngain in speed cannot compensate the loss of cross-platform operations \nfor my uses. Actually, my git usage is mostly on Linux, but it seems 99% \nof my maintenance time is on the cygwin side that I almost never use. Sigh.\n\nMark\n"},{"id":"206554","messageId":"CALxABCYHRp17rcoOca1xWG9S19fq2rotz8FEKo09jNdrgMLiyQ@mail.gmail.com","threadId":"32539","inReplyTo":"50EB8EB5.6080204@gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2013-01-11T20:08:49Z","receivedAt":"2013-01-11T20:08:49Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"This short discussion on GitHub (file git-compat-util.h) might be relevant:\n\nhttps://github.com/msysgit/git/commit/435bdf8c7ffa493f8f6f2e8f329f8cc22db16ce6#commitcomment-2407194\n\nThe change suggested there (to remove an inclusion of windows.h in\ngit-compat-util.h) might simplify the solution a little. Might even\nremove the need for auto-configuration in Makefile (worked for me).\n"},{"id":"206555","messageId":"CALxABCavvW77djKQnbQsjCBcahmMfrP24SDz609NG-94_ifZ9Q@mail.gmail.com","threadId":"32539","inReplyTo":"CALxABCYHRp17rcoOca1xWG9S19fq2rotz8FEKo09jNdrgMLiyQ@mail.gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2013-01-11T20:17:50Z","receivedAt":"2013-01-11T20:17:50Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On Fri, Jan 11, 2013 at 9:08 PM, Alex Riesen <raa.lkml@gmail.com> wrote:\n> This short discussion on GitHub (file git-compat-util.h) might be relevant:\n>\n> https://github.com/msysgit/git/commit/435bdf8c7ffa493f8f6f2e8f329f8cc22db16ce6#commitcomment-2407194\n>\n> The change suggested there (to remove an inclusion of windows.h in\n> git-compat-util.h) might simplify the solution a little. Might even\n> remove the need for auto-configuration in Makefile (worked for me).\n\nJust to be clear, the change is this:\n\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex 4a1979f..780a919 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -85,12 +85,6 @@\n #define _NETBSD_SOURCE 1\n #define _SGI_SOURCE 1\n\n-#ifdef WIN32 /* Both MinGW and MSVC */\n-#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n-#include <winsock2.h>\n-#include <windows.h>\n-#endif\n-\n #include <unistd.h>\n #include <stdio.h>\n #include <sys/stat.h>\n"},{"id":"206707","messageId":"50F303D8.20709@gmail.com","threadId":"32539","inReplyTo":"CALxABCavvW77djKQnbQsjCBcahmMfrP24SDz609NG-94_ifZ9Q@mail.gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-13T18:58:32Z","receivedAt":"2013-01-13T18:58:32Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/11/2013 03:17 PM, Alex Riesen wrote:\n> On Fri, Jan 11, 2013 at 9:08 PM, Alex Riesen <raa.lkml@gmail.com> wrote:\n>> This short discussion on GitHub (file git-compat-util.h) might be relevant:\n>>\n>> https://github.com/msysgit/git/commit/435bdf8c7ffa493f8f6f2e8f329f8cc22db16ce6#commitcomment-2407194\n>>\n>> The change suggested there (to remove an inclusion of windows.h in\n>> git-compat-util.h) might simplify the solution a little. Might even\n>> remove the need for auto-configuration in Makefile (worked for me).\n> Just to be clear, the change is this:\n>\n> diff --git a/git-compat-util.h b/git-compat-util.h\n> index 4a1979f..780a919 100644\n> --- a/git-compat-util.h\n> +++ b/git-compat-util.h\n> @@ -85,12 +85,6 @@\n>   #define _NETBSD_SOURCE 1\n>   #define _SGI_SOURCE 1\n>\n> -#ifdef WIN32 /* Both MinGW and MSVC */\n> -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n> -#include <winsock2.h>\n> -#include <windows.h>\n> -#endif\n> -\n>   #include <unistd.h>\n>   #include <stdio.h>\n>   #include <sys/stat.h>\n>\nThat change alone seems fine, no apparent change building on current \ncygwin. However, with that change the build still fails if \nCYGWIN_V15_WIN32API is defined, so unless someone can show the \ncompilation works on cygwin1.5 WITHOUT defining CYGWIN_V15_WIN32API this \nchange does not help. I do not have an older installation available, so \ncannot test. Frankly, assuming you can compile with that macro defined, \nI would suggest leaving well enough alone - an unsupported configuration \nis unsupported :^)\n\nMark\n"},{"id":"206959","messageId":"50F5A435.5090408@ramsay1.demon.co.uk","threadId":"32539","inReplyTo":"50F303D8.20709@gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2013-01-15T18:47:17Z","receivedAt":"2013-01-15T18:47:17Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Mark Levedahl wrote:\n> On 01/11/2013 03:17 PM, Alex Riesen wrote:\n>> On Fri, Jan 11, 2013 at 9:08 PM, Alex Riesen <raa.lkml@gmail.com> wrote:\n>>> This short discussion on GitHub (file git-compat-util.h) might be relevant:\n>>>\n>>> https://github.com/msysgit/git/commit/435bdf8c7ffa493f8f6f2e8f329f8cc22db16ce6#commitcomment-2407194\n>>>\n>>> The change suggested there (to remove an inclusion of windows.h in\n>>> git-compat-util.h) might simplify the solution a little. Might even\n>>> remove the need for auto-configuration in Makefile (worked for me).\n>> Just to be clear, the change is this:\n>>\n>> diff --git a/git-compat-util.h b/git-compat-util.h\n>> index 4a1979f..780a919 100644\n>> --- a/git-compat-util.h\n>> +++ b/git-compat-util.h\n>> @@ -85,12 +85,6 @@\n>>   #define _NETBSD_SOURCE 1\n>>   #define _SGI_SOURCE 1\n>>\n>> -#ifdef WIN32 /* Both MinGW and MSVC */\n>> -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n>> -#include <winsock2.h>\n>> -#include <windows.h>\n>> -#endif\n>> -\n>>   #include <unistd.h>\n>>   #include <stdio.h>\n>>   #include <sys/stat.h>\n>>\n> That change alone seems fine, no apparent change building on current \n> cygwin. However, with that change the build still fails if \n> CYGWIN_V15_WIN32API is defined, so unless someone can show the \n> compilation works on cygwin1.5 WITHOUT defining CYGWIN_V15_WIN32API this \n> change does not help. I do not have an older installation available, so \n> cannot test. Frankly, assuming you can compile with that macro defined, \n> I would suggest leaving well enough alone - an unsupported configuration \n> is unsupported :^)\n\nI haven't been following this thread too closely, so I may have misunderstood\nwhat you would like to test but, since I use cygwin 1.5, I tried the patch\ngiven below.\n\nI only had time to compile test this patch (ie I have *not* run any of the\ntests - it takes over 3 hours for me), but it seems to work to that extent.\n(I also tried a few simple commands: status, diff, branch; seems to work OK.)\n\nIf you would like me to test something else, just let me know.\n\nHTH\n\nATB,\nRamsay Jones\n\n-- >8 --\ndiff --git a/Makefile b/Makefile\nindex 1b30d7b..1c84f68 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -281,10 +281,6 @@ all::\n #\n # Define NO_REGEX if you have no or inferior regex support in your C library.\n #\n-# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x but are not\n-# using the current w32api packages. The recommended approach, however,\n-# is to update your installation if compilation errors occur.\n-#\n # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n # user.\n #\n@@ -1402,9 +1398,6 @@ ifdef NO_REGEX\n \tCOMPAT_CFLAGS += -Icompat/regex\n \tCOMPAT_OBJS += compat/regex/regex.o\n endif\n-ifdef CYGWIN_V15_WIN32API\n-\tCOMPAT_CFLAGS += -DCYGWIN_V15_WIN32API\n-endif\n \n ifdef USE_NED_ALLOCATOR\n        COMPAT_CFLAGS += -Icompat/nedmalloc\ndiff --git a/compat/cygwin.c b/compat/cygwin.c\nindex 5428858..0a9aa6d 100644\n--- a/compat/cygwin.c\n+++ b/compat/cygwin.c\n@@ -1,13 +1,8 @@\n #define WIN32_LEAN_AND_MEAN\n-#ifdef CYGWIN_V15_WIN32API\n-#include \"../git-compat-util.h\"\n-#include \"win32.h\"\n-#else\n #include <sys/stat.h>\n #include <sys/errno.h>\n #include \"win32.h\"\n #include \"../git-compat-util.h\"\n-#endif\n #include \"../cache.h\" /* to read configuration */\n \n static inline void filetime_to_timespec(const FILETIME *ft, struct timespec *ts)\ndiff --git a/config.mak.uname b/config.mak.uname\nindex bea34f0..5e493c9 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -158,7 +158,6 @@ ifeq ($(uname_O),Cygwin)\n \t\tNO_SYMLINK_HEAD = YesPlease\n \t\tNO_IPV6 = YesPlease\n \t\tOLD_ICONV = UnfortunatelyYes\n-\t\tCYGWIN_V15_WIN32API = YesPlease\n \tendif\n \tNO_THREAD_SAFE_PREAD = YesPlease\n \tNEEDS_LIBICONV = YesPlease\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex e5a4b74..3186e55 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -85,12 +85,6 @@\n #define _NETBSD_SOURCE 1\n #define _SGI_SOURCE 1\n \n-#ifdef WIN32 /* Both MinGW and MSVC */\n-#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n-#include <winsock2.h>\n-#include <windows.h>\n-#endif\n-\n #include <unistd.h>\n #include <stdio.h>\n #include <sys/stat.h>\n"},{"id":"207284","messageId":"20130120101007.GD16339@elie.Belkin","threadId":"32539","inReplyTo":"50F5A435.5090408@ramsay1.demon.co.uk","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-01-20T10:10:07Z","receivedAt":"2013-01-20T10:10:07Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Ramsay Jones wrote:\n\n> --- a/git-compat-util.h\n> +++ b/git-compat-util.h\n> @@ -85,12 +85,6 @@\n>  #define _NETBSD_SOURCE 1\n>  #define _SGI_SOURCE 1\n>  \n> -#ifdef WIN32 /* Both MinGW and MSVC */\n> -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n> -#include <winsock2.h>\n> -#include <windows.h>\n> -#endif\n\nSo, do I understand correctly that the above conditional should be\nsomething like\n\n #if defined(WIN32) && !defined(__CYGWIN__)\n\nto allow dropping the CYGWIN_V15_WIN32API setting?\n\n\"defined(WIN32)\" is used throughout git to mean \"win32 and not\ncygwin\", so if I understand correctly we would either need to do\n\n #if defined(WIN32) && defined(__CYGWIN__)\n # undef WIN32\n #endif\n\nor define a new GIT_WIN32 (name is just a placeholder) macro to use\nconsistently in its stead.\n\nThanks for investigating.\nJonathan\n"},{"id":"207285","messageId":"50FBCB95.6020201@web.de","threadId":"32539","inReplyTo":"20130120101007.GD16339@elie.Belkin","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-20T10:48:53Z","receivedAt":"2013-01-20T10:48:53Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 20.01.13 11:10, Jonathan Nieder wrote:\n> Ramsay Jones wrote:\n> \n>> --- a/git-compat-util.h\n>> +++ b/git-compat-util.h\n>> @@ -85,12 +85,6 @@\n>>  #define _NETBSD_SOURCE 1\n>>  #define _SGI_SOURCE 1\n>>  \n>> -#ifdef WIN32 /* Both MinGW and MSVC */\n>> -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n>> -#include <winsock2.h>\n>> -#include <windows.h>\n>> -#endif\n> \n> So, do I understand correctly that the above conditional should be\n> something like\n> \n>  #if defined(WIN32) && !defined(__CYGWIN__)\n> \n> to allow dropping the CYGWIN_V15_WIN32API setting?\n> \n> \"defined(WIN32)\" is used throughout git to mean \"win32 and not\n> cygwin\", so if I understand correctly we would either need to do\n> \n>  #if defined(WIN32) && defined(__CYGWIN__)\n>  # undef WIN32\n>  #endif\n> \n> or define a new GIT_WIN32 (name is just a placeholder) macro to use\n> consistently in its stead.\n> \n> Thanks for investigating.\n> Jonathan\n\nI wonder, if if we can go one step further:\n\nReplace\n#ifdef WIN32 /* Both MinGW and MSVC */\n#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n#include <winsock2.h>\n#include <windows.h>\n#endif\n\nwith\n#if defined(_MSC_VER)\n#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n#include <winsock2.h>\n#include <windows.h>\n#endif\n\nAny thougths from msysGit ?\n/Torsten\n"},{"id":"207287","messageId":"20130120110618.GF16339@elie.Belkin","threadId":"32539","inReplyTo":"50FBCB95.6020201@web.de","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-01-20T11:06:18Z","receivedAt":"2013-01-20T11:06:18Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Torsten Bögershausen wrote:\n\n> I wonder, if if we can go one step further:\n>\n> Replace\n> #ifdef WIN32 /* Both MinGW and MSVC */\n[...]\n> with\n> #if defined(_MSC_VER)\n\nI thought Git for Windows was built using mingw, which doesn't define\n_MSC_VER?\n\nPuzzled,\nJonathan\n\n-- \n*** Please reply-to-all at all times ***\n*** (do not pretend to know who is subscribed and who is not) ***\n*** Please avoid top-posting. ***\nThe msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.\n\nYou received this message because you are subscribed to the Google\nGroups \"msysGit\" group.\nTo post to this group, send email to msysgit@googlegroups.com\nTo unsubscribe from this group, send email to\nmsysgit+unsubscribe@googlegroups.com\nFor more options, and view previous threads, visit this group at\nhttp://groups.google.com/group/msysgit?hl=en_US?hl=en\n"},{"id":"207364","messageId":"50FCD017.6060607@web.de","threadId":"32539","inReplyTo":"20130120110618.GF16339@elie.Belkin","subject":"Re: [msysGit] Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-21T05:20:23Z","receivedAt":"2013-01-21T05:20:23Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 20.01.13 12:06, Jonathan Nieder wrote:\n> Torsten Bögershausen wrote:\n> \n>> I wonder, if if we can go one step further:\n>>\n>> Replace\n>> #ifdef WIN32 /* Both MinGW and MSVC */\n> [...]\n>> with\n>> #if defined(_MSC_VER)\n> \n> I thought Git for Windows was built using mingw, which doesn't define\n> _MSC_VER?\n> \n> Puzzled,\n> Jonathan\n> \nYes,\nAfter removing these lines in the git-compat-util.h of msysgit\nv1.8.1 it still compiled.\nSo I start to speculate if the comment is still valid for mingw,\nor if that was true in the old days and not now any more.\n\nMore investigation is needed, sorry for confusion.\n/Torsten\n"},{"id":"207519","messageId":"50FEDB08.6030901@ramsay1.demon.co.uk","threadId":"32539","inReplyTo":"20130120101007.GD16339@elie.Belkin","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2013-01-22T18:31:36Z","receivedAt":"2013-01-22T18:31:36Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Jonathan Nieder wrote:\n> Ramsay Jones wrote:\n> \n>> --- a/git-compat-util.h\n>> +++ b/git-compat-util.h\n>> @@ -85,12 +85,6 @@\n>>  #define _NETBSD_SOURCE 1\n>>  #define _SGI_SOURCE 1\n>>  \n>> -#ifdef WIN32 /* Both MinGW and MSVC */\n>> -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n>> -#include <winsock2.h>\n>> -#include <windows.h>\n>> -#endif\n> \n> So, do I understand correctly that the above conditional should be\n> something like\n> \n>  #if defined(WIN32) && !defined(__CYGWIN__)\n> \n> to allow dropping the CYGWIN_V15_WIN32API setting?\n\nYes, replacing the git-compat-util.h hunk above with:\n\n    diff --git a/git-compat-util.h b/git-compat-util.h\n    index e5a4b74..a38ae8d 100644\n    --- a/git-compat-util.h\n    +++ b/git-compat-util.h\n    @@ -85,7 +85,7 @@\n     #define _NETBSD_SOURCE 1\n     #define _SGI_SOURCE 1\n \n    -#ifdef WIN32 /* Both MinGW and MSVC */\n    +#if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */\n     #define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n     #include <winsock2.h>\n     #include <windows.h>\n\nwill also compile on cygwin 1.5.x\n\n> \"defined(WIN32)\" is used throughout git to mean \"win32 and not\n> cygwin\", so if I understand correctly we would either need to do\n\nHmm ... I remember being *very* nervous of commit 435bdf8c (\"Make\nusage of windows.h lean and mean\", 16-09-2009) exactly because it\nmakes the code (on cygwin) much more fragile with respect to header\ninclude order. ;-)\n\nAs I have mentioned here before, the claim that \"WIN32 is not defined\non cygwin\" is simply nonsense - it depends on if/when certain header\nfiles are included. For example, *as soon as* you include <windows.h>\n(and, I suspect, many other win32 headers) then \"defined(WIN32)\"\nis true.\n\nNote that commit 380a4d92 (\"Update cygwin.c for new mingw-64 win32 api\nheaders\", 11-11-2012) swaps the include order for the win32.h and\ngit-compat-util.h header files. [I don't know the details, Mark didn't\nelaborate, but it is clearly an include order problem on cygwin 1.7.x :-D ]\nThis causes compilation errors on cygwin 1.5.x, exactly because win32.h\nincludes <windows.h>, which defines WIN32, which then leads to\ngit-compat-util.h including <winsock2.h>.\n\n>  #if defined(WIN32) && defined(__CYGWIN__)\n>  # undef WIN32\n>  #endif\n\nHmm, except when you want it defined on cygwin, of course ... ;-)\n\n> Thanks for investigating.\n\nNo problem.\n\nI've included the updated patch below, just for completeness.\n\nHTH\n\nATB,\nRamsay Jones\n\n-- >8 --\nSubject: [PATCH] cygwin: Remove the CYGWIN_V15_WIN32API config\n\n\nSigned-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>\n---\n Makefile          | 7 -------\n compat/cygwin.c   | 5 -----\n config.mak.uname  | 1 -\n git-compat-util.h | 2 +-\n 4 files changed, 1 insertion(+), 14 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 1b30d7b..1c84f68 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -281,10 +281,6 @@ all::\n #\n # Define NO_REGEX if you have no or inferior regex support in your C library.\n #\n-# Define CYGWIN_V15_WIN32API if you are using Cygwin v1.7.x but are not\n-# using the current w32api packages. The recommended approach, however,\n-# is to update your installation if compilation errors occur.\n-#\n # Define HAVE_DEV_TTY if your system can open /dev/tty to interact with the\n # user.\n #\n@@ -1402,9 +1398,6 @@ ifdef NO_REGEX\n \tCOMPAT_CFLAGS += -Icompat/regex\n \tCOMPAT_OBJS += compat/regex/regex.o\n endif\n-ifdef CYGWIN_V15_WIN32API\n-\tCOMPAT_CFLAGS += -DCYGWIN_V15_WIN32API\n-endif\n \n ifdef USE_NED_ALLOCATOR\n        COMPAT_CFLAGS += -Icompat/nedmalloc\ndiff --git a/compat/cygwin.c b/compat/cygwin.c\nindex 5428858..0a9aa6d 100644\n--- a/compat/cygwin.c\n+++ b/compat/cygwin.c\n@@ -1,13 +1,8 @@\n #define WIN32_LEAN_AND_MEAN\n-#ifdef CYGWIN_V15_WIN32API\n-#include \"../git-compat-util.h\"\n-#include \"win32.h\"\n-#else\n #include <sys/stat.h>\n #include <sys/errno.h>\n #include \"win32.h\"\n #include \"../git-compat-util.h\"\n-#endif\n #include \"../cache.h\" /* to read configuration */\n \n static inline void filetime_to_timespec(const FILETIME *ft, struct timespec *ts)\ndiff --git a/config.mak.uname b/config.mak.uname\nindex bea34f0..5e493c9 100644\n--- a/config.mak.uname\n+++ b/config.mak.uname\n@@ -158,7 +158,6 @@ ifeq ($(uname_O),Cygwin)\n \t\tNO_SYMLINK_HEAD = YesPlease\n \t\tNO_IPV6 = YesPlease\n \t\tOLD_ICONV = UnfortunatelyYes\n-\t\tCYGWIN_V15_WIN32API = YesPlease\n \tendif\n \tNO_THREAD_SAFE_PREAD = YesPlease\n \tNEEDS_LIBICONV = YesPlease\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex e5a4b74..a38ae8d 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -85,7 +85,7 @@\n #define _NETBSD_SOURCE 1\n #define _SGI_SOURCE 1\n \n-#ifdef WIN32 /* Both MinGW and MSVC */\n+#if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */\n #define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n #include <winsock2.h>\n #include <windows.h>\n-- \n1.8.1\n"},{"id":"207520","messageId":"50FEDCB9.6090708@ramsay1.demon.co.uk","threadId":"32539","inReplyTo":"50FCD017.6060607@web.de","subject":"Re: [msysGit] Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2013-01-22T18:38:49Z","receivedAt":"2013-01-22T18:38:49Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Torsten Bögershausen wrote:\n> On 20.01.13 12:06, Jonathan Nieder wrote:\n>> Torsten Bögershausen wrote:\n>>\n>>> I wonder, if if we can go one step further:\n>>>\n>>> Replace\n>>> #ifdef WIN32 /* Both MinGW and MSVC */\n>> [...]\n>>> with\n>>> #if defined(_MSC_VER)\n>>\n>> I thought Git for Windows was built using mingw, which doesn't define\n>> _MSC_VER?\n>>\n>> Puzzled,\n>> Jonathan\n>>\n> Yes,\n> After removing these lines in the git-compat-util.h of msysgit\n> v1.8.1 it still compiled.\n> So I start to speculate if the comment is still valid for mingw,\n> or if that was true in the old days and not now any more.\n> \n> More investigation is needed, sorry for confusion.\n\nYes, I compiled the last patch on MinGW before I sent it to the list.\nI didn't bother with MSVC, since that build is already broken.\nI have a patch which fixed the MSVC build, but it already needs to\nbe updated, since current master fails to build on MSVC.\n\nATB,\nRamsay Jones\n"},{"id":"207852","messageId":"51031C43.5030307@gmail.com","threadId":"32539","inReplyTo":"50FEDB08.6030901@ramsay1.demon.co.uk","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-25T23:58:59Z","receivedAt":"2013-01-25T23:58:59Z","isPatch":false,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/22/2013 01:31 PM, Ramsay Jones wrote:\n> include order. ;-) As I have mentioned here before, the claim that \n> \"WIN32 is not defined on cygwin\" is simply nonsense - it depends on \n> if/when certain header files are included. For example, *as soon as* \n> you include <windows.h> (and, I suspect, many other win32 headers) \n> then \"defined(WIN32)\" is true. Note that commit 380a4d92 (\"Update \n> cygwin.c for new mingw-64 win32 api headers\", 11-11-2012) swaps the \n> include order for the win32.h and git-compat-util.h header files. [I \n> don't know the details, Mark didn't elaborate, but it is clearly an \n> include order problem on cygwin 1.7.x :-D ] This causes compilation \n> errors on cygwin 1.5.x, exactly because win32.h includes <windows.h>, \n> which defines WIN32, which then leads to git-compat-util.h including \n> <winsock2.h>.\n>>   #if defined(WIN32) && defined(__CYGWIN__)\n>>   # undef WIN32\n>>   #endif\n>\nCygwin and Windows should be treated as completely separate platforms: \nif __CYGWIN__ is defined, do one thing, if not, go ahead and check \nWIN32, but the WIN32 macro should never be tested once we know the \nplatform is CYGWIN - these really are different platforms (if you are \nunsure of this, consider that Cygwin includes a cross-compiler to target \nnative Win32 as the Cygwin maintainers recognized the platforms are \ndifferent).\n\nMark\n"},{"id":"207853","messageId":"7v38xo3irh.fsf@alter.siamese.dyndns.org","threadId":"32539","inReplyTo":"51031C43.5030307@gmail.com","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-26T00:11:46Z","receivedAt":"2013-01-26T00:11:46Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Mark Levedahl <mlevedahl@gmail.com> writes:\n\n> Cygwin and Windows should be treated as completely separate platforms:\n> if __CYGWIN__ is defined, do one thing, if not, go ahead and check\n> WIN32, but the WIN32 macro should never be tested once we know the\n> platform is CYGWIN - these really are different platforms (if you are\n> unsure of this, consider that Cygwin includes a cross-compiler to\n> target native Win32 as the Cygwin maintainers recognized the platforms\n> are different).\n\nNot disagreeing with your conclusion (they should be treated as\ndifferent), why does it define WIN32 in the first place?\n\nPerhaps we would want\n\n\t#ifdef __CYGWIN__\n        #undef WIN32\n        #endif\n\nvery early in some include file before nothing else is included?\n\nJust being curious.\n"},{"id":"207856","messageId":"51032481.4030707@redhat.com","threadId":"32539","inReplyTo":"7v38xo3irh.fsf@alter.siamese.dyndns.org","subject":"Re: Version 1.8.1 does not compile on Cygwin 1.7.14","fromName":"Eric Blake","fromEmail":"eblake@redhat.com","sentAt":"2013-01-26T00:34:09Z","receivedAt":"2013-01-26T00:34:09Z","isPatch":false,"sender":{"key":"eblake@redhat.com","avatar":"https://avatars.githubusercontent.com/u/32933908?v=4"},"body":"On 01/25/2013 05:11 PM, Junio C Hamano wrote:\n> Mark Levedahl <mlevedahl@gmail.com> writes:\n> \n>> Cygwin and Windows should be treated as completely separate platforms:\n>> if __CYGWIN__ is defined, do one thing, if not, go ahead and check\n>> WIN32, but the WIN32 macro should never be tested once we know the\n>> platform is CYGWIN - these really are different platforms (if you are\n>> unsure of this, consider that Cygwin includes a cross-compiler to\n>> target native Win32 as the Cygwin maintainers recognized the platforms\n>> are different).\n> \n> Not disagreeing with your conclusion (they should be treated as\n> different), why does it define WIN32 in the first place?\n> \n> Perhaps we would want\n> \n> \t#ifdef __CYGWIN__\n>         #undef WIN32\n>         #endif\n\nWouldn't work.  Cygwin gcc does NOT define WIN32; rather, the inclusion\nof a Windows system header (generally discouraged, but sometimes a\nnecessary evil) might cause WIN32 to be defined for all subsequent headers.\n\nWhich is why other projects, like gnulib, have\n\n# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__\n\nall over the place.\n\n-- \nEric Blake   eblake redhat com    +1-919-301-3266\nLibvirt virtualization library http://libvirt.org\n\n"},{"id":"207861","messageId":"20130126010359.GH3341@elie.Belkin","threadId":"32539","inReplyTo":"51032481.4030707@redhat.com","subject":"[PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2013-01-26T01:03:59Z","receivedAt":"2013-01-26T01:03:59Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Throughout git, it is assumed that the WIN32 preprocessor symbol is\ndefined on native Windows setups (mingw and msvc) and not on Cygwin.\nOn Cygwin, most of the time git can pretend this is just another Unix\nmachine, and Windows-specific magic is generally counterproductive.\n\nUnfortunately Cygwin *does* define the WIN32 symbol in some headers.\nBest to rely on a new git-specific symbol NATIVE_WINDOWS instead,\ndefined as follows:\n\n\t#if defined(WIN32) && !defined(__CYGWIN__)\n\t# define NATIVE_WINDOWS\n\t#endif\n\nAfter this change, it should be possible to drop the\nCYGWIN_V15_WIN32API setting without any negative effect.\n\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\n---\nEric Blake wrote:\n\n> Which is why other projects, like gnulib, have\n>\n> # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__\n>\n> all over the place.\n\nSo, how about this?\n\nCompletely untested.\n\n abspath.c         |  2 +-\n compat/terminal.c |  4 ++--\n compat/win32.h    |  2 +-\n diff-no-index.c   |  2 +-\n git-compat-util.h |  3 ++-\n help.c            |  2 +-\n run-command.c     | 10 +++++-----\n test-chmtime.c    |  2 +-\n thread-utils.c    |  2 +-\n 9 files changed, 15 insertions(+), 14 deletions(-)\n\ndiff --git a/abspath.c b/abspath.c\nindex 40cdc462..c7d5458e 100644\n--- a/abspath.c\n+++ b/abspath.c\n@@ -216,7 +216,7 @@ const char *absolute_path(const char *path)\n const char *prefix_filename(const char *pfx, int pfx_len, const char *arg)\n {\n \tstatic char path[PATH_MAX];\n-#ifndef WIN32\n+#ifndef WINDOWS_NATIVE\n \tif (!pfx_len || is_absolute_path(arg))\n \t\treturn arg;\n \tmemcpy(path, pfx, pfx_len);\ndiff --git a/compat/terminal.c b/compat/terminal.c\nindex 9b5e3d1b..136e4a74 100644\n--- a/compat/terminal.c\n+++ b/compat/terminal.c\n@@ -3,7 +3,7 @@\n #include \"sigchain.h\"\n #include \"strbuf.h\"\n \n-#if defined(HAVE_DEV_TTY) || defined(WIN32)\n+#if defined(HAVE_DEV_TTY) || defined(WINDOWS_NATIVE)\n \n static void restore_term(void);\n \n@@ -53,7 +53,7 @@ error:\n \treturn -1;\n }\n \n-#elif defined(WIN32)\n+#elif defined(WINDOWS_NATIVE)\n \n #define INPUT_PATH \"CONIN$\"\n #define OUTPUT_PATH \"CONOUT$\"\ndiff --git a/compat/win32.h b/compat/win32.h\nindex 8ce91048..31dd30f7 100644\n--- a/compat/win32.h\n+++ b/compat/win32.h\n@@ -2,7 +2,7 @@\n #define WIN32_H\n \n /* common Win32 functions for MinGW and Cygwin */\n-#ifndef WIN32         /* Not defined by Cygwin */\n+#ifndef WINDOWS_NATIVE\t/* Not defined for Cygwin */\n #include <windows.h>\n #endif\n \ndiff --git a/diff-no-index.c b/diff-no-index.c\nindex 74da6593..a0bc9c50 100644\n--- a/diff-no-index.c\n+++ b/diff-no-index.c\n@@ -45,7 +45,7 @@ static int get_mode(const char *path, int *mode)\n \n \tif (!path || !strcmp(path, \"/dev/null\"))\n \t\t*mode = 0;\n-#ifdef _WIN32\n+#ifdef WINDOWS_NATIVE\n \telse if (!strcasecmp(path, \"nul\"))\n \t\t*mode = 0;\n #endif\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex e5a4b745..ebbdff53 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -85,10 +85,11 @@\n #define _NETBSD_SOURCE 1\n #define _SGI_SOURCE 1\n \n-#ifdef WIN32 /* Both MinGW and MSVC */\n+#if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */\n #define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n #include <winsock2.h>\n #include <windows.h>\n+#define WINDOWS_NATIVE\n #endif\n \n #include <unistd.h>\ndiff --git a/help.c b/help.c\nindex 2a42ec6d..cc1e63f7 100644\n--- a/help.c\n+++ b/help.c\n@@ -106,7 +106,7 @@ static int is_executable(const char *name)\n \t    !S_ISREG(st.st_mode))\n \t\treturn 0;\n \n-#if defined(WIN32) || defined(__CYGWIN__)\n+#if defined(WINDOWS_NATIVE) || defined(__CYGWIN__)\n #if defined(__CYGWIN__)\n if ((st.st_mode & S_IXUSR) == 0)\n #endif\ndiff --git a/run-command.c b/run-command.c\nindex 04712191..04ac6181 100644\n--- a/run-command.c\n+++ b/run-command.c\n@@ -72,7 +72,7 @@ static inline void close_pair(int fd[2])\n \tclose(fd[1]);\n }\n \n-#ifndef WIN32\n+#ifndef WINDOWS_NATIVE\n static inline void dup_devnull(int to)\n {\n \tint fd = open(\"/dev/null\", O_RDWR);\n@@ -159,7 +159,7 @@ static const char **prepare_shell_cmd(const char **argv)\n \t\tdie(\"BUG: shell command is empty\");\n \n \tif (strcspn(argv[0], \"|&;<>()$`\\\\\\\"' \\t\\n*?[#~=%\") != strlen(argv[0])) {\n-#ifndef WIN32\n+#ifndef WINDOWS_NATIVE\n \t\tnargv[nargc++] = SHELL_PATH;\n #else\n \t\tnargv[nargc++] = \"sh\";\n@@ -182,7 +182,7 @@ static const char **prepare_shell_cmd(const char **argv)\n \treturn nargv;\n }\n \n-#ifndef WIN32\n+#ifndef WINDOWS_NATIVE\n static int execv_shell_cmd(const char **argv)\n {\n \tconst char **nargv = prepare_shell_cmd(argv);\n@@ -193,7 +193,7 @@ static int execv_shell_cmd(const char **argv)\n }\n #endif\n \n-#ifndef WIN32\n+#ifndef WINDOWS_NATIVE\n static int child_err = 2;\n static int child_notifier = -1;\n \n@@ -330,7 +330,7 @@ fail_pipe:\n \ttrace_argv_printf(cmd->argv, \"trace: run_command:\");\n \tfflush(NULL);\n \n-#ifndef WIN32\n+#ifndef WINDOWS_NATIVE\n {\n \tint notify_pipe[2];\n \tif (pipe(notify_pipe))\ndiff --git a/test-chmtime.c b/test-chmtime.c\nindex 92713d16..803b6055 100644\n--- a/test-chmtime.c\n+++ b/test-chmtime.c\n@@ -87,7 +87,7 @@ int main(int argc, const char *argv[])\n \t\t\treturn -1;\n \t\t}\n \n-#ifdef WIN32\n+#ifdef WINDOWS_NATIVE\n \t\tif (!(sb.st_mode & S_IWUSR) &&\n \t\t\t\tchmod(argv[i], sb.st_mode | S_IWUSR)) {\n \t\t\tfprintf(stderr, \"Could not make user-writable %s: %s\",\ndiff --git a/thread-utils.c b/thread-utils.c\nindex 7f4b76a9..4c4cf2fa 100644\n--- a/thread-utils.c\n+++ b/thread-utils.c\n@@ -24,7 +24,7 @@ int online_cpus(void)\n \tlong ncpus;\n #endif\n \n-#ifdef _WIN32\n+#ifdef WINDOWS_NATIVE\n \tSYSTEM_INFO info;\n \tGetSystemInfo(&info);\n \n-- \n1.8.1.1\n"},{"id":"207880","messageId":"5103E418.7090104@gmail.com","threadId":"32539","inReplyTo":"20130126010359.GH3341@elie.Belkin","subject":"Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-01-26T14:11:36Z","receivedAt":"2013-01-26T14:11:36Z","isPatch":true,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 01/25/2013 08:03 PM, Jonathan Nieder wrote:\n> diff --git a/abspath.c b/abspath.c\n> index 40cdc462..c7d5458e 100644\n> --- a/abspath.c\n> +++ b/abspath.c\n> @@ -216,7 +216,7 @@ const char *absolute_path(const char *path)\n>   const char *prefix_filename(const char *pfx, int pfx_len, const char *arg)\n>   {\n>   \tstatic char path[PATH_MAX];\n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>   \tif (!pfx_len || is_absolute_path(arg))\n>   \t\treturn arg;\n>   \tmemcpy(path, pfx, pfx_len);\n> diff --git a/compat/terminal.c b/compat/terminal.c\n> index 9b5e3d1b..136e4a74 100644\n\nMaybe WINDOWS_NATIVE should be defined in config.mak.uname?\n\nOtherwise, I tested the patch and it does build / run on Cygwin, but I \ncannot run a test suite until next week. I am concerned about subtle \nchanges due to the  various WIN32 tests that were not guarded by \n__CYGWIN__ before, haven't stared at the code enough to see if there \ncould be an issue.\n\nMark\n"},{"id":"207881","messageId":"5104108C.6070402@web.de","threadId":"32539","inReplyTo":"20130126010359.GH3341@elie.Belkin","subject":"Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-26T17:21:16Z","receivedAt":"2013-01-26T17:21:16Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 26.01.13 02:03, Jonathan Nieder wrote:\n> Throughout git, it is assumed that the WIN32 preprocessor symbol is\n> defined on native Windows setups (mingw and msvc) and not on Cygwin.\n> On Cygwin, most of the time git can pretend this is just another Unix\n> machine, and Windows-specific magic is generally counterproductive.\n>\n> Unfortunately Cygwin *does* define the WIN32 symbol in some headers.\n> Best to rely on a new git-specific symbol NATIVE_WINDOWS instead,\n> defined as follows:\n>\n> \t#if defined(WIN32) && !defined(__CYGWIN__)\n> \t# define NATIVE_WINDOWS\n> \t#endif\n>\n> After this change, it should be possible to drop the\n> CYGWIN_V15_WIN32API setting without any negative effect.\n>\n> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>\n> ---\n> Eric Blake wrote:\n>\n>> Which is why other projects, like gnulib, have\n>>\n>> # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__\n>>\n>> all over the place.\n> So, how about this?\n>\n> Completely untested.\n>\n>  abspath.c         |  2 +-\n>  compat/terminal.c |  4 ++--\n>  compat/win32.h    |  2 +-\n>  diff-no-index.c   |  2 +-\n>  git-compat-util.h |  3 ++-\n>  help.c            |  2 +-\n>  run-command.c     | 10 +++++-----\n>  test-chmtime.c    |  2 +-\n>  thread-utils.c    |  2 +-\n>  9 files changed, 15 insertions(+), 14 deletions(-)\n>\n> diff --git a/abspath.c b/abspath.c\n> index 40cdc462..c7d5458e 100644\n> --- a/abspath.c\n> +++ b/abspath.c\n> @@ -216,7 +216,7 @@ const char *absolute_path(const char *path)\n>  const char *prefix_filename(const char *pfx, int pfx_len, const char *arg)\n>  {\n>  \tstatic char path[PATH_MAX];\n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>  \tif (!pfx_len || is_absolute_path(arg))\n>  \t\treturn arg;\n>  \tmemcpy(path, pfx, pfx_len);\n> diff --git a/compat/terminal.c b/compat/terminal.c\n> index 9b5e3d1b..136e4a74 100644\n> --- a/compat/terminal.c\n> +++ b/compat/terminal.c\n> @@ -3,7 +3,7 @@\n>  #include \"sigchain.h\"\n>  #include \"strbuf.h\"\n>  \n> -#if defined(HAVE_DEV_TTY) || defined(WIN32)\n> +#if defined(HAVE_DEV_TTY) || defined(WINDOWS_NATIVE)\n>  \n>  static void restore_term(void);\n>  \n> @@ -53,7 +53,7 @@ error:\n>  \treturn -1;\n>  }\n>  \n> -#elif defined(WIN32)\n> +#elif defined(WINDOWS_NATIVE)\n>  \n>  #define INPUT_PATH \"CONIN$\"\n>  #define OUTPUT_PATH \"CONOUT$\"\n> diff --git a/compat/win32.h b/compat/win32.h\n> index 8ce91048..31dd30f7 100644\n> --- a/compat/win32.h\n> +++ b/compat/win32.h\n> @@ -2,7 +2,7 @@\n>  #define WIN32_H\n>  \n>  /* common Win32 functions for MinGW and Cygwin */\n> -#ifndef WIN32         /* Not defined by Cygwin */\n> +#ifndef WINDOWS_NATIVE\t/* Not defined for Cygwin */\n>  #include <windows.h>\n>  #endif\n>  \n> diff --git a/diff-no-index.c b/diff-no-index.c\n> index 74da6593..a0bc9c50 100644\n> --- a/diff-no-index.c\n> +++ b/diff-no-index.c\n> @@ -45,7 +45,7 @@ static int get_mode(const char *path, int *mode)\n>  \n>  \tif (!path || !strcmp(path, \"/dev/null\"))\n>  \t\t*mode = 0;\n> -#ifdef _WIN32\n> +#ifdef WINDOWS_NATIVE\n>  \telse if (!strcasecmp(path, \"nul\"))\n>  \t\t*mode = 0;\n>  #endif\n> diff --git a/git-compat-util.h b/git-compat-util.h\n> index e5a4b745..ebbdff53 100644\n> --- a/git-compat-util.h\n> +++ b/git-compat-util.h\n> @@ -85,10 +85,11 @@\n>  #define _NETBSD_SOURCE 1\n>  #define _SGI_SOURCE 1\n>  \n> -#ifdef WIN32 /* Both MinGW and MSVC */\n> +#if defined(WIN32) && !defined(__CYGWIN__) /* Both MinGW and MSVC */\n>  #define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */\n>  #include <winsock2.h>\n>  #include <windows.h>\n> +#define WINDOWS_NATIVE\n>  #endif\n>  \n>  #include <unistd.h>\n> diff --git a/help.c b/help.c\n> index 2a42ec6d..cc1e63f7 100644\n> --- a/help.c\n> +++ b/help.c\n> @@ -106,7 +106,7 @@ static int is_executable(const char *name)\n>  \t    !S_ISREG(st.st_mode))\n>  \t\treturn 0;\n>  \n> -#if defined(WIN32) || defined(__CYGWIN__)\n> +#if defined(WINDOWS_NATIVE) || defined(__CYGWIN__)\n>  #if defined(__CYGWIN__)\n>  if ((st.st_mode & S_IXUSR) == 0)\n>  #endif\n> diff --git a/run-command.c b/run-command.c\n> index 04712191..04ac6181 100644\n> --- a/run-command.c\n> +++ b/run-command.c\n> @@ -72,7 +72,7 @@ static inline void close_pair(int fd[2])\n>  \tclose(fd[1]);\n>  }\n>  \n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>  static inline void dup_devnull(int to)\n>  {\n>  \tint fd = open(\"/dev/null\", O_RDWR);\n> @@ -159,7 +159,7 @@ static const char **prepare_shell_cmd(const char **argv)\n>  \t\tdie(\"BUG: shell command is empty\");\n>  \n>  \tif (strcspn(argv[0], \"|&;<>()$`\\\\\\\"' \\t\\n*?[#~=%\") != strlen(argv[0])) {\n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>  \t\tnargv[nargc++] = SHELL_PATH;\n>  #else\n>  \t\tnargv[nargc++] = \"sh\";\n> @@ -182,7 +182,7 @@ static const char **prepare_shell_cmd(const char **argv)\n>  \treturn nargv;\n>  }\n>  \n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>  static int execv_shell_cmd(const char **argv)\n>  {\n>  \tconst char **nargv = prepare_shell_cmd(argv);\n> @@ -193,7 +193,7 @@ static int execv_shell_cmd(const char **argv)\n>  }\n>  #endif\n>  \n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>  static int child_err = 2;\n>  static int child_notifier = -1;\n>  \n> @@ -330,7 +330,7 @@ fail_pipe:\n>  \ttrace_argv_printf(cmd->argv, \"trace: run_command:\");\n>  \tfflush(NULL);\n>  \n> -#ifndef WIN32\n> +#ifndef WINDOWS_NATIVE\n>  {\n>  \tint notify_pipe[2];\n>  \tif (pipe(notify_pipe))\n> diff --git a/test-chmtime.c b/test-chmtime.c\n> index 92713d16..803b6055 100644\n> --- a/test-chmtime.c\n> +++ b/test-chmtime.c\n> @@ -87,7 +87,7 @@ int main(int argc, const char *argv[])\n>  \t\t\treturn -1;\n>  \t\t}\n>  \n> -#ifdef WIN32\n> +#ifdef WINDOWS_NATIVE\n>  \t\tif (!(sb.st_mode & S_IWUSR) &&\n>  \t\t\t\tchmod(argv[i], sb.st_mode | S_IWUSR)) {\n>  \t\t\tfprintf(stderr, \"Could not make user-writable %s: %s\",\n> diff --git a/thread-utils.c b/thread-utils.c\n> index 7f4b76a9..4c4cf2fa 100644\n> --- a/thread-utils.c\n> +++ b/thread-utils.c\n> @@ -24,7 +24,7 @@ int online_cpus(void)\n>  \tlong ncpus;\n>  #endif\n>  \n> -#ifdef _WIN32\n> +#ifdef WINDOWS_NATIVE\n>  \tSYSTEM_INFO info;\n>  \tGetSystemInfo(&info);\n>  \nThanks, that looks good.\n\nI run the test suite under XP,  the same test cases are broken as on 1.8.1.1\n\n/Torsten\n"},{"id":"208099","messageId":"5106C382.20009@ramsay1.demon.co.uk","threadId":"32539","inReplyTo":"20130126010359.GH3341@elie.Belkin","subject":"Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2013-01-28T18:29:22Z","receivedAt":"2013-01-28T18:29:22Z","isPatch":true,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"Jonathan Nieder wrote:\n> Throughout git, it is assumed that the WIN32 preprocessor symbol is\n> defined on native Windows setups (mingw and msvc) and not on Cygwin.\n> On Cygwin, most of the time git can pretend this is just another Unix\n> machine, and Windows-specific magic is generally counterproductive.\n> \n> Unfortunately Cygwin *does* define the WIN32 symbol in some headers.\n> Best to rely on a new git-specific symbol NATIVE_WINDOWS instead,\n> defined as follows:\n> \n> \t#if defined(WIN32) && !defined(__CYGWIN__)\n> \t# define NATIVE_WINDOWS\n> \t#endif\n> \n> After this change, it should be possible to drop the\n> CYGWIN_V15_WIN32API setting without any negative effect.\n> \n> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>\n\nIf we go with this approach, could we prefix the symbol name with GIT_\nin order to reduce the global namespace pollution?\n\neg GIT_NATIVE_WINDOWS, or GIT_NATIVE_WIN32 or just GIT_WIN32.\n(Yeah, I'm not good at choosing names!)\n\nATB,\nRamsay Jones\n"},{"id":"210226","messageId":"7vliac3nbg.fsf@alter.siamese.dyndns.org","threadId":"32539","inReplyTo":"5106C382.20009@ramsay1.demon.co.uk","subject":"Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-02-25T06:44:03Z","receivedAt":"2013-02-25T06:44:03Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramsay Jones <ramsay@ramsay1.demon.co.uk> writes:\n\n> Jonathan Nieder wrote:\n> \n>> Throughout git, it is assumed that the WIN32 preprocessor symbol is\n>> defined on native Windows setups (mingw and msvc) and not on Cygwin.\n>> On Cygwin, most of the time git can pretend this is just another Unix\n>> machine, and Windows-specific magic is generally counterproductive.\n>> \n>> Unfortunately Cygwin *does* define the WIN32 symbol in some headers.\n>> Best to rely on a new git-specific symbol NATIVE_WINDOWS instead,\n>> defined as follows:\n>> \n>> \t#if defined(WIN32) && !defined(__CYGWIN__)\n>> \t# define NATIVE_WINDOWS\n>> \t#endif\n>> \n>> After this change, it should be possible to drop the\n>> CYGWIN_V15_WIN32API setting without any negative effect.\n>> \n>> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>\n>\n> If we go with this approach, could we prefix the symbol name with GIT_\n> in order to reduce the global namespace pollution?\n>\n> eg GIT_NATIVE_WINDOWS, or GIT_NATIVE_WIN32 or just GIT_WIN32.\n> (Yeah, I'm not good at choosing names!)\n\nI was in \"find leftover bits\" mode today and found this thread hanging.\n\nHas anything come out of this thread, or there is nothing to improve\nin this area?\n"},{"id":"210313","messageId":"512C3554.8020902@gmail.com","threadId":"32539","inReplyTo":"7vliac3nbg.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Mark Levedahl","fromEmail":"mlevedahl@gmail.com","sentAt":"2013-02-26T04:08:52Z","receivedAt":"2013-02-26T04:08:52Z","isPatch":true,"sender":{"key":"mdl123@verizon.net","avatar":"https://avatars.githubusercontent.com/u/5302462?v=4"},"body":"On 02/25/2013 01:44 AM, Junio C Hamano wrote:\n> I was in \"find leftover bits\" mode today and found this thread \n> hanging. Has anything come out of this thread, or there is nothing to \n> improve in this area? \n\nThe patch passed my simple tests (build, run a few commands), but I \ndidn't get around to a full test. And of course, I am testing on current \nCygwin where git compiles and runs correctly anyway.\n\nMark\n"},{"id":"210332","messageId":"512CE575.1000702@web.de","threadId":"32539","inReplyTo":"512C3554.8020902@gmail.com","subject":"Re: [PATCH/RFC] mingw: rename WIN32 cpp macro to NATIVE_WINDOWS","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-02-26T16:40:21Z","receivedAt":"2013-02-26T16:40:21Z","isPatch":true,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 26.02.13 05:08, Mark Levedahl wrote:\n> On 02/25/2013 01:44 AM, Junio C Hamano wrote:\n>> I was in \"find leftover bits\" mode today and found this thread hanging. Has anything come out of this thread, or there is nothing to improve in this area? \n> \n> The patch passed my simple tests (build, run a few commands), but I didn't get around to a full test. And of course, I am testing on current Cygwin where git compiles and runs correctly anyway.\n> \n> Mark\nI run the test suite, and there was 1301 failing (and t0070 ?) which have\nto do with POSIX permisions.\nThey are on my TODO stack.\n/Torsten\n"}]}