Patch #404680: disables the nis module and enables the dl module when
    building under Cygwin.  Makes some fixes to the dlmodule in order to
    compile with Cygwin.
diff --git a/Lib/test/test_dl.py b/Lib/test/test_dl.py
index 60a5cf0..390dbd8 100755
--- a/Lib/test/test_dl.py
+++ b/Lib/test/test_dl.py
@@ -9,6 +9,7 @@
 sharedlibs = [
     ('/usr/lib/libc.so', 'getpid'),
     ('/lib/libc.so.6', 'getpid'),
+    ('/usr/bin/cygwin1.dll', 'getpid'),
     ]
 
 for s, func in sharedlibs:
diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c
index bb49a50..8c77133 100644
--- a/Modules/dlmodule.c
+++ b/Modules/dlmodule.c
@@ -134,7 +134,7 @@
 
 
 static PyTypeObject Dltype = {
-	PyObject_HEAD_INIT(&PyType_Type)
+	PyObject_HEAD_INIT(NULL)
 	0,			/*ob_size*/
 	"dl",			/*tp_name*/
 	sizeof(dlobject),	/*tp_basicsize*/
@@ -199,7 +199,7 @@
 	Py_XDECREF(v);
 }
 
-void
+DL_EXPORT(void)
 initdl(void)
 {
 	PyObject *m, *d, *x;
@@ -211,6 +211,9 @@
 		return;
 	}
 
+	/* Initialize object type */
+	Dltype.ob_type = &PyType_Type;
+
 	/* Create the module and add the functions */
 	m = Py_InitModule("dl", dl_methods);
 
diff --git a/setup.py b/setup.py
index 0892f16..f9524e6 100644
--- a/setup.py
+++ b/setup.py
@@ -387,12 +387,13 @@
             exts.append( Extension('dl', ['dlmodule.c']) )
             
             # Sun yellow pages. Some systems have the functions in libc.
-            if (self.compiler.find_library_file(lib_dirs, 'nsl')):
-                libs = ['nsl']
-            else:
-                libs = []
-            exts.append( Extension('nis', ['nismodule.c'],
-                                   libraries = libs) )
+            if platform not in ['cygwin']:
+                if (self.compiler.find_library_file(lib_dirs, 'nsl')):
+                    libs = ['nsl']
+                else:
+                    libs = []
+                exts.append( Extension('nis', ['nismodule.c'],
+                                       libraries = libs) )
 
         # Curses support, requring the System V version of curses, often
         # provided by the ncurses library.