Add DL_EXPORT() to all modules that could possibly be used
on BeOS or Windows.
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index b42a2bc..b68fd7d 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -1522,7 +1522,7 @@
 
 /* Initialization function for the module */
 
-void
+DL_EXPORT(void)
 initcurses()
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index 2f7a42b..3b84729 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -309,7 +309,7 @@
   {NULL, NULL}
 };
 
-void
+DL_EXPORT(void)
 init_locale()
 {
   PyObject *m,*d,*x;
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 86a4e58..9d68c69 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -2006,7 +2006,7 @@
 }
 
 
-void
+DL_EXPORT(void)
 init_tkinter()
 {
 	PyObject *m, *d;
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index fc31b31..656f5a6 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1457,7 +1457,7 @@
 	arraytype_doc,			/*tp_doc*/
 };
 
-void
+DL_EXPORT(void)
 initarray()
 {
 	PyObject *m, *d;
diff --git a/Modules/audioop.c b/Modules/audioop.c
index e7edfec..76fba98 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -1402,7 +1402,7 @@
 	{ 0,          0 }
 };
 
-void
+DL_EXPORT(void)
 initaudioop()
 {
 	PyObject *m, *d;
diff --git a/Modules/binascii.c b/Modules/binascii.c
index 26e4b6c..73dc27a 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -742,7 +742,7 @@
 /* Initialization function for the module (*must* be called initbinascii) */
 static char doc_binascii[] = "Conversion between binary data and ASCII";
 
-void
+DL_EXPORT(void)
 initbinascii()
 {
 	PyObject *m, *d, *x;
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index ca7fa5f..1bb40e6 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -865,7 +865,7 @@
 	{0,		0},
 };
 
-void
+DL_EXPORT(void)
 initbsddb() {
 	PyObject *m, *d;
 
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 6828a11..19a0450 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -589,7 +589,7 @@
   &Otype,
 };
 
-void
+DL_EXPORT(void)
 initcStringIO() {
   PyObject *m, *d, *v;
 
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index 4e08722..583a629 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -301,7 +301,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initcmath()
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/cryptmodule.c b/Modules/cryptmodule.c
index 1498bb0..7cc03be 100644
--- a/Modules/cryptmodule.c
+++ b/Modules/cryptmodule.c
@@ -27,7 +27,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initcrypt()
 {
 	Py_InitModule("crypt", crypt_methods);
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index ea628f1..7a234a2 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -311,7 +311,7 @@
 	{ 0, 0 },
 };
 
-void
+DL_EXPORT(void)
 initdbm() {
 	PyObject *m, *d;
 
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index 8120075..f18a655 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -94,7 +94,7 @@
 To map error codes to error messages, use the function os.strerror(),\n\
 e.g. os.strerror(2) could return 'No such file or directory'.";
 
-void
+DL_EXPORT(void)
 initerrno()
 {
 	PyObject *m, *d, *de;
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index 6e7c1c2..59a4d4a 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -320,7 +320,7 @@
 	return 0;
 }
 
-void
+DL_EXPORT(void)
 initfcntl()
 {
 	PyObject *m, *d;
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index 2e2dd5e..c921d4b 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -2520,7 +2520,7 @@
 	{NULL,			NULL}		/* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initfl()
 {
 	Py_InitModule("fl", forms_methods);
diff --git a/Modules/fpectlmodule.c b/Modules/fpectlmodule.c
index e2a8022..ca3a2c9 100644
--- a/Modules/fpectlmodule.c
+++ b/Modules/fpectlmodule.c
@@ -227,7 +227,7 @@
     }
 }
 
-void initfpectl(void)
+DL_EXPORT(void) initfpectl(void)
 {
     PyObject *m, *d;
     m = Py_InitModule("fpectl", fpectl_methods);
diff --git a/Modules/fpetestmodule.c b/Modules/fpetestmodule.c
index 61dd3db..c1e87ce 100644
--- a/Modules/fpetestmodule.c
+++ b/Modules/fpetestmodule.c
@@ -172,7 +172,7 @@
   return a;
 }
 
-void initfpetest(void)
+DL_EXPORT(void) initfpetest(void)
 {
     PyObject *m, *d;
 
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index ae716ac..0df7df2 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -514,7 +514,7 @@
 	{ 0, 0 },
 };
 
-void
+DL_EXPORT(void)
 initgdbm() {
 	PyObject *m, *d;
 
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index 0199b6b..c5a4043 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -125,7 +125,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initgrp()
 {
 	Py_InitModule("grp", grp_methods);
diff --git a/Modules/imageop.c b/Modules/imageop.c
index 7b82e04..5572c9f 100644
--- a/Modules/imageop.c
+++ b/Modules/imageop.c
@@ -758,7 +758,7 @@
 };
 
 
-void
+DL_EXPORT(void)
 initimageop()
 {
 	PyObject *m, *d;
diff --git a/Modules/makesetup b/Modules/makesetup
index b29938c..8ce1e88 100755
--- a/Modules/makesetup
+++ b/Modules/makesetup
@@ -234,6 +234,7 @@
 	*)  sed -e "
 		1i$NL/* Generated automatically from $config by makesetup. */
 		/MARKER 1/i$NL$EXTDECLS
+ 
 		/MARKER 2/i$NL$INITBITS
 
 		" $config >config.c
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 174a231..7c11e6f 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -233,7 +233,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initmath()
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/md5module.c b/Modules/md5module.c
index e82d339..2508f52 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -267,7 +267,7 @@
 
 /* Initialize this module. */
 
-void
+DL_EXPORT(void)
 initmd5()
 {
 	PyObject *m, *d;
diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index 4299f45..e1fd7bf 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -1819,7 +1819,7 @@
 
 /* Initialize this module. */
 
-void
+DL_EXPORT(void)
 initmpz()
 {
 	PyObject *module;
diff --git a/Modules/newmodule.c b/Modules/newmodule.c
index 5c92e0e..786ddc5 100644
--- a/Modules/newmodule.c
+++ b/Modules/newmodule.c
@@ -226,7 +226,7 @@
 \n\
 You need to know a great deal about the interpreter to use this!";
 
-void
+DL_EXPORT(void)
 initnew()
 {
 	Py_InitModule4("new", new_methods, new_doc, (PyObject *)NULL,
diff --git a/Modules/operator.c b/Modules/operator.c
index 8b3c56b..d790d7c 100644
--- a/Modules/operator.c
+++ b/Modules/operator.c
@@ -255,7 +255,7 @@
 
 /* Initialization function for the module (*must* be called initoperator) */
 
-void
+DL_EXPORT(void)
 initoperator()
 {
         /* Create the module and add the functions */
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index cd8381c..d0ba9e9 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -2746,7 +2746,7 @@
     };
 
 
-void
+DL_EXPORT(void)
 initparser()
  {
     PyObject* module;
diff --git a/Modules/pcremodule.c b/Modules/pcremodule.c
index 9819fdd..fa98696 100644
--- a/Modules/pcremodule.c
+++ b/Modules/pcremodule.c
@@ -636,7 +636,7 @@
 
 /* Initialization function for the module (*must* be called initpcre) */
 
-void
+DL_EXPORT(void)
 initpcre()
 {
 	PyObject *m, *d;
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 876522b..f9f6284 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -2899,7 +2899,7 @@
 #endif
 #endif
 
-void
+DL_EXPORT(void)
 INITFUNC()
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index 732e4dc..00522b9 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -164,7 +164,7 @@
 	{NULL,		NULL}		/* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initpwd()
 {
 	Py_InitModule4("pwd", pwd_methods, pwd__doc__,
diff --git a/Modules/readline.c b/Modules/readline.c
index 915cc4a..08569f6 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -304,7 +304,7 @@
 static char doc_module[] =
 "Importing this module enables command line editing using GNU readline.";
 
-void
+DL_EXPORT(void)
 initreadline()
 {
 	PyObject *m;
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index afc7722..1f64f61 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -707,7 +707,7 @@
 	{NULL,		NULL}		     /* sentinel */
 };
 
-void
+DL_EXPORT(void)
 initregex()
 {
 	PyObject *m, *d, *v;
diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 94b055d..cc5c6d5 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -788,7 +788,7 @@
 };
 
 
-void
+DL_EXPORT(void)
 initrgbimg()
 {
 	PyObject *m, *d;
diff --git a/Modules/rotormodule.c b/Modules/rotormodule.c
index 5c7d582..b3511d8 100644
--- a/Modules/rotormodule.c
+++ b/Modules/rotormodule.c
@@ -655,7 +655,7 @@
 };
 
 
-void
+DL_EXPORT(void)
 initrotor()
 {
 	(void)Py_InitModule("rotor", rotor_methods);
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index dfc765c..11f72f5 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -378,7 +378,7 @@
 *** IMPORTANT NOTICE ***\n\
 On Windows, only sockets are supported; on Unix, all file descriptors.";
 
-void
+DL_EXPORT(void)
 initselect()
 {
 	PyObject *m, *d;
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 8795463..11b624a 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -339,7 +339,7 @@
 A signal handler function is called with two arguments:\n\
 the first is the signal number, the second is the interrupted stack frame.";
 
-void
+DL_EXPORT(void)
 initsignal()
 {
 	PyObject *m, *d, *x;
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 9d672a6..0564e17 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -1887,7 +1887,7 @@
 \n\
 (*) not available on all platforms!)";
 
-void
+DL_EXPORT(void)
 #if defined(MS_WINDOWS) || defined(PYOS_OS2) || defined(__BEOS__)
 init_socket()
 #else
diff --git a/Modules/soundex.c b/Modules/soundex.c
index fe00ac6..3ef6824 100644
--- a/Modules/soundex.c
+++ b/Modules/soundex.c
@@ -166,7 +166,7 @@
 
 /* Register the method table.
  */
-void
+DL_EXPORT(void)
 initsoundex()
 {
     (void) Py_InitModule4("soundex",
diff --git a/Modules/stdwinmodule.c b/Modules/stdwinmodule.c
index a272047..8b18f49 100644
--- a/Modules/stdwinmodule.c
+++ b/Modules/stdwinmodule.c
@@ -2611,7 +2611,7 @@
 }
 #endif /* macintosh */
 
-void
+DL_EXPORT(void)
 initstdwin()
 {
 	PyObject *m, *d;
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index 240a056..9e9fa04 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -1189,7 +1189,7 @@
 };
 
 
-void
+DL_EXPORT(void)
 initstrop()
 {
 	PyObject *m, *d, *s;
diff --git a/Modules/structmodule.c b/Modules/structmodule.c
index a20d5ff..9994d20 100644
--- a/Modules/structmodule.c
+++ b/Modules/structmodule.c
@@ -1358,7 +1358,7 @@
 
 /* Module initialization */
 
-void
+DL_EXPORT(void)
 initstruct()
 {
 	PyObject *m, *d;
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index f55a77c..60889b1 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -182,7 +182,7 @@
 
 /* Initialization function for the module */
 
-void
+DL_EXPORT(void)
 initsyslog()
 {
 	PyObject *m, *d;
diff --git a/Modules/termios.c b/Modules/termios.c
index e2ef5d0..f87cea7 100644
--- a/Modules/termios.c
+++ b/Modules/termios.c
@@ -299,7 +299,7 @@
 	{NULL, NULL}
 };
 
-void
+DL_EXPORT(void)
 PyInit_termios()
 {
 	PyObject *m, *d;
diff --git a/Modules/threadmodule.c b/Modules/threadmodule.c
index a1ba362..b08ff0b 100644
--- a/Modules/threadmodule.c
+++ b/Modules/threadmodule.c
@@ -424,7 +424,7 @@
 unlock it.  A thread attempting to lock a lock that it has already locked\n\
 will block until another thread unlocks it.  Deadlocks may ensue.";
 
-void
+DL_EXPORT(void)
 initthread()
 {
 	PyObject *m, *d;
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 0a0322d..e862ae5 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -596,7 +596,7 @@
 ";
   
 
-void
+DL_EXPORT(void)
 inittime()
 {
 	PyObject *m, *d;
diff --git a/Modules/timingmodule.c b/Modules/timingmodule.c
index a07ecef..bbccb43 100644
--- a/Modules/timingmodule.c
+++ b/Modules/timingmodule.c
@@ -79,7 +79,7 @@
 };
 
 
-void inittiming()
+DL_EXPORT(void) inittiming()
 {
 	(void)Py_InitModule("timing", timing_methods);
 	if (PyErr_Occurred())
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 8de3c5d..529f521 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -237,7 +237,7 @@
 
 /* Initialization function for the module (*must* be called initxx) */
 
-void
+DL_EXPORT(void)
 initxx()
 {
 	PyObject *m, *d;
diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c
index fc892d0..3e4e23d 100644
--- a/Modules/zlibmodule.c
+++ b/Modules/zlibmodule.c
@@ -788,7 +788,7 @@
 "objects support decompress() and flush()."
 ;
 
-void
+DL_EXPORT(void)
 PyInit_zlib()
 {
         PyObject *m, *d, *ver;