diff -pur gcc/ada/seh_init.c gcc/ada/seh_init.c
--- gcc/ada/seh_init.c	2013-03-08 09:04:00.000000000 +0100
+++ gcc/ada/seh_init.c	2014-05-08 10:03:00.866210900 +0200
@@ -32,6 +32,12 @@
 /*  This unit contains support for SEH (Structured Exception Handling).
     Right now the only implementation is for Win32.  */
 
+#if defined (_WIN32) || (defined (__CYGWIN__) && defined (__SEH__))
+/* Include system headers, before system.h poisons malloc.  */
+#include <windows.h>
+#include <excpt.h>
+#endif
+
 #ifdef IN_RTS
 #include "tconfig.h"
 #include "tsystem.h"
@@ -64,10 +70,7 @@ extern void Raise_From_Signal_Handler (s
   ATTRIBUTE_NORETURN;
 
 
-#if defined (_WIN32)
-
-#include <windows.h>
-#include <excpt.h>
+#if defined (_WIN32) || (defined (__CYGWIN__) && defined (__SEH__))
 
 /* Prototypes.  */
 extern void _global_unwind2 (void *);
diff -pur gcc/ada/s-oscons-tmplt.c gcc/ada/s-oscons-tmplt.c
--- gcc/ada/s-oscons-tmplt.c	2014-02-24 18:01:19.000000000 +0100
+++ gcc/ada/s-oscons-tmplt.c	2014-05-05 15:48:50.586914000 +0200
@@ -159,7 +159,8 @@ pragma Style_Checks ("M32766");
 # include <signal.h>
 #endif
 
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(__CYGWIN__)
+# include <windef.h>
 # include <winbase.h>
 #endif
 
@@ -986,7 +987,7 @@ CND(VEOL2, "Alternative EOL")
 
 #endif /* HAVE_TERMIOS */
 
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(__CYGWIN__)
 CNU(DTR_CONTROL_ENABLE, "Enable DTR flow ctrl")
 CNU(RTS_CONTROL_ENABLE, "Enable RTS flow ctrl")
 #endif
