On Cygwin, put stdin, stderr, and stdout in binary mode when the -u
flag is given (to mimic native Windows).
diff --git a/Modules/main.c b/Modules/main.c
index 9e46717..102693a 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -4,7 +4,7 @@
 #include "osdefs.h"
 #include "compile.h" /* For CO_FUTURE_DIVISION */
 
-#ifdef MS_WINDOWS
+#if defined(MS_WINDOWS) || defined(__CYGWIN__)
 #include <fcntl.h>
 #endif
 
@@ -304,7 +304,7 @@
 	stdin_is_interactive = Py_FdIsInteractive(stdin, (char *)0);
 
 	if (unbuffered) {
-#ifdef MS_WINDOWS
+#if defined(MS_WINDOWS) || defined(__CYGWIN__)
 		_setmode(fileno(stdin), O_BINARY);
 		_setmode(fileno(stdout), O_BINARY);
 #endif