Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
for Py_Main().
Thanks to Kalle Svensson and Skip Montanaro for the patches.
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index aed3c42..d663293 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -703,7 +703,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_codecs(void)
{
Py_InitModule("_codecs", _codecs_functions);
diff --git a/Modules/_curses_panel.c b/Modules/_curses_panel.c
index e616d90..08c5f09 100644
--- a/Modules/_curses_panel.c
+++ b/Modules/_curses_panel.c
@@ -445,7 +445,7 @@
/* Initialization function for the module */
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_curses_panel(void)
{
PyObject *m, *d, *v;
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index f819a9e..65f60f0 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -2474,7 +2474,7 @@
/* Initialization function for the module */
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_curses(void)
{
PyObject *m, *d, *v, *c_api_object;
diff --git a/Modules/_localemodule.c b/Modules/_localemodule.c
index 5ed3eaf..ab86fa4 100644
--- a/Modules/_localemodule.c
+++ b/Modules/_localemodule.c
@@ -649,7 +649,7 @@
{NULL, NULL}
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_locale(void)
{
PyObject *m, *d, *x;
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index baaa097..ad0b59b 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -473,7 +473,7 @@
"Implementation module for SSL socket operations. See the socket module\n\
for documentation.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_ssl(void)
{
PyObject *m, *d;
diff --git a/Modules/_weakref.c b/Modules/_weakref.c
index 31e63d1..86bd036 100644
--- a/Modules/_weakref.c
+++ b/Modules/_weakref.c
@@ -109,7 +109,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_weakref(void)
{
PyObject *m;
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index e757d9f..5bb5e2c 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1908,7 +1908,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initarray(void)
{
PyObject *m;
diff --git a/Modules/audioop.c b/Modules/audioop.c
index 9adbc7b..52824b8 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -1369,7 +1369,7 @@
{ 0, 0 }
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initaudioop(void)
{
PyObject *m, *d;
diff --git a/Modules/binascii.c b/Modules/binascii.c
index ec07a71..0fe85fc 100644
--- a/Modules/binascii.c
+++ b/Modules/binascii.c
@@ -1313,7 +1313,7 @@
/* Initialization function for the module (*must* be called initbinascii) */
PyDoc_STRVAR(doc_binascii, "Conversion between binary data and ASCII");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initbinascii(void)
{
PyObject *m, *d, *x;
diff --git a/Modules/cPickle.c b/Modules/cPickle.c
index a43d7b9..f8d9af8 100644
--- a/Modules/cPickle.c
+++ b/Modules/cPickle.c
@@ -4789,10 +4789,10 @@
return 0;
}
-#ifndef DL_EXPORT /* declarations for DLL import/export */
-#define DL_EXPORT(RTYPE) RTYPE
+#ifndef PyMODINIT_FUNC /* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
#endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcPickle(void)
{
PyObject *m, *d, *di, *v, *k;
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c
index 2f85f41..dfab89a 100644
--- a/Modules/cStringIO.c
+++ b/Modules/cStringIO.c
@@ -701,10 +701,10 @@
&Otype,
};
-#ifndef DL_EXPORT /* declarations for DLL import/export */
-#define DL_EXPORT(RTYPE) RTYPE
+#ifndef PyMODINIT_FUNC /* declarations for DLL import/export */
+#define PyMODINIT_FUNC void
#endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcStringIO(void) {
PyObject *m, *d, *v;
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index 5bb08f2..8faa6bf 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -391,7 +391,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcmath(void)
{
PyObject *m;
diff --git a/Modules/cryptmodule.c b/Modules/cryptmodule.c
index a1eaced..050a356 100644
--- a/Modules/cryptmodule.c
+++ b/Modules/cryptmodule.c
@@ -37,7 +37,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initcrypt(void)
{
Py_InitModule("crypt", crypt_methods);
diff --git a/Modules/dbmmodule.c b/Modules/dbmmodule.c
index dde5b49..d05a1bd 100644
--- a/Modules/dbmmodule.c
+++ b/Modules/dbmmodule.c
@@ -339,7 +339,7 @@
{ 0, 0 },
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initdbm(void) {
PyObject *m, *d, *s;
diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c
index ea083e2..927f4c0 100644
--- a/Modules/dlmodule.c
+++ b/Modules/dlmodule.c
@@ -209,7 +209,7 @@
Py_XDECREF(v);
}
-DL_EXPORT(void)
+PyMODINIT_FUNC
initdl(void)
{
PyObject *m, *d, *x;
diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c
index 74d4f0f..cd3d2fa 100644
--- a/Modules/errnomodule.c
+++ b/Modules/errnomodule.c
@@ -57,7 +57,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'.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initerrno(void)
{
PyObject *m, *d, *de;
diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c
index f1d89cc..360b54e 100644
--- a/Modules/fcntlmodule.c
+++ b/Modules/fcntlmodule.c
@@ -462,7 +462,7 @@
return 0;
}
-DL_EXPORT(void)
+PyMODINIT_FUNC
initfcntl(void)
{
PyObject *m, *d;
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index b3e7d1f..2fe118d 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -2126,7 +2126,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initfl(void)
{
Py_InitModule("fl", forms_methods);
diff --git a/Modules/fpectlmodule.c b/Modules/fpectlmodule.c
index c4b85d1..c29bcef 100644
--- a/Modules/fpectlmodule.c
+++ b/Modules/fpectlmodule.c
@@ -86,7 +86,7 @@
static void fpe_reset(Sigfunc *);
static PyObject *fpe_error;
-DL_EXPORT(void) initfpectl(void);
+PyMODINIT_FUNC initfpectl(void);
static PyObject *turnon_sigfpe (PyObject *self,PyObject *args);
static PyObject *turnoff_sigfpe (PyObject *self,PyObject *args);
@@ -249,7 +249,7 @@
}
}
-DL_EXPORT(void) initfpectl(void)
+PyMODINIT_FUNC initfpectl(void)
{
PyObject *m, *d;
m = Py_InitModule("fpectl", fpectl_methods);
diff --git a/Modules/fpetestmodule.c b/Modules/fpetestmodule.c
index 565d0b7..aa14dd8 100644
--- a/Modules/fpetestmodule.c
+++ b/Modules/fpetestmodule.c
@@ -44,7 +44,7 @@
#include "Python.h"
static PyObject *fpe_error;
-DL_EXPORT(void) initfpetest(void);
+PyMODINIT_FUNC initfpetest(void);
static PyObject *test(PyObject *self,PyObject *args);
static double db0(double);
static double overflow(double);
@@ -172,7 +172,7 @@
return a;
}
-DL_EXPORT(void) initfpetest(void)
+PyMODINIT_FUNC initfpetest(void)
{
PyObject *m, *d;
diff --git a/Modules/gdbmmodule.c b/Modules/gdbmmodule.c
index 6e85ed3..accf438 100644
--- a/Modules/gdbmmodule.c
+++ b/Modules/gdbmmodule.c
@@ -504,7 +504,7 @@
{ 0, 0 },
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initgdbm(void) {
PyObject *m, *d, *s;
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index c834009..8a88968 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -156,7 +156,7 @@
complete membership information.)");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initgrp(void)
{
PyObject *m, *d;
diff --git a/Modules/imageop.c b/Modules/imageop.c
index 7b925b8..8c83cc3 100644
--- a/Modules/imageop.c
+++ b/Modules/imageop.c
@@ -696,7 +696,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initimageop(void)
{
PyObject *m, *d;
diff --git a/Modules/main.c b/Modules/main.c
index cc07c29..cebb17b 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -105,7 +105,7 @@
/* Main program */
-DL_EXPORT(int)
+int
Py_Main(int argc, char **argv)
{
int c;
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 88b439f..cbb0000 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -334,7 +334,7 @@
"This module is always available. It provides access to the\n"
"mathematical functions defined by the C standard.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initmath(void)
{
PyObject *m, *d, *v;
diff --git a/Modules/md5module.c b/Modules/md5module.c
index aa2bef8..8ca2386 100644
--- a/Modules/md5module.c
+++ b/Modules/md5module.c
@@ -253,7 +253,7 @@
/* Initialize this module. */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initmd5(void)
{
PyObject *m, *d;
diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index 0cb6495..5974df1 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -1644,7 +1644,7 @@
/* Initialize this module. */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initmpz(void)
{
PyObject *module;
diff --git a/Modules/operator.c b/Modules/operator.c
index fbe8c14..c1bf468 100644
--- a/Modules/operator.c
+++ b/Modules/operator.c
@@ -219,7 +219,7 @@
/* Initialization function for the module (*must* be called initoperator) */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initoperator(void)
{
/* Create the module and add the functions */
diff --git a/Modules/pcremodule.c b/Modules/pcremodule.c
index 383dde8..656539a 100644
--- a/Modules/pcremodule.c
+++ b/Modules/pcremodule.c
@@ -610,7 +610,7 @@
/* Initialization function for the module (*must* be called initpcre) */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initpcre(void)
{
PyObject *m, *d;
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index bf178f8..9b7640f 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -3211,6 +3211,7 @@
{
PROCESS_INFORMATION piProcInfo;
STARTUPINFO siStartInfo;
+ DWORD dwProcessFlags = 0; /* no NEW_CONSOLE by default for Ctrl+C handling */
char *s1,*s2, *s3 = " /c ";
const char *szConsoleSpawn = "w9xpopen.exe";
int i;
@@ -3303,6 +3304,16 @@
s1,
s3,
cmdstring);
+ /* Not passing CREATE_NEW_CONSOLE has been known to
+ cause random failures on win9x. Specifically a
+ dialog:
+ "Your program accessed mem currently in use at xxx"
+ and a hopeful warning about the stability of your
+ system.
+ Cost is Ctrl+C wont kill children, but anyone
+ who cares can have a go!
+ */
+ dwProcessFlags |= CREATE_NEW_CONSOLE;
}
}
@@ -3328,7 +3339,7 @@
NULL,
NULL,
TRUE,
- 0, /* no new console so Ctrl+C kills child too */
+ dwProcessFlags,
NULL,
NULL,
&siStartInfo,
@@ -6746,7 +6757,7 @@
#define MODNAME "posix"
#endif
-DL_EXPORT(void)
+PyMODINIT_FUNC
INITFUNC(void)
{
PyObject *m, *v;
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index b51b7f9..cb139bb 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -157,7 +157,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initpwd(void)
{
PyObject *m;
diff --git a/Modules/python.c b/Modules/python.c
index 316dd3b..f9262e8 100644
--- a/Modules/python.c
+++ b/Modules/python.c
@@ -2,8 +2,6 @@
#include "Python.h"
-extern DL_EXPORT(int) Py_Main(int, char **);
-
int
main(int argc, char **argv)
{
diff --git a/Modules/readline.c b/Modules/readline.c
index afd80db..a2efd47 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -652,7 +652,7 @@
PyDoc_STRVAR(doc_module,
"Importing this module enables command line editing using GNU readline.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initreadline(void)
{
PyObject *m;
diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c
index 4c7035e..db54161 100644
--- a/Modules/regexmodule.c
+++ b/Modules/regexmodule.c
@@ -642,7 +642,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initregex(void)
{
PyObject *m, *d, *v;
diff --git a/Modules/resource.c b/Modules/resource.c
index 5ed98a1..b1dd5d1 100644
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -210,7 +210,7 @@
/* Module initialization */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initresource(void)
{
PyObject *m, *v;
diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 596ea4f..904c64b 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -751,7 +751,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initrgbimg(void)
{
PyObject *m, *d;
diff --git a/Modules/rotormodule.c b/Modules/rotormodule.c
index 7137b00..dcca0c6 100644
--- a/Modules/rotormodule.c
+++ b/Modules/rotormodule.c
@@ -615,7 +615,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initrotor(void)
{
Rotor_Type.ob_type = &PyType_Type;
diff --git a/Modules/shamodule.c b/Modules/shamodule.c
index 14e51ea..5b9040d 100644
--- a/Modules/shamodule.c
+++ b/Modules/shamodule.c
@@ -525,7 +525,7 @@
#define insint(n,v) { PyModule_AddIntConstant(m,n,v); }
-DL_EXPORT(void)
+PyMODINIT_FUNC
initsha(void)
{
PyObject *m;
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 25d5d94..0f9574f 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -469,7 +469,7 @@
A signal handler function is called with two arguments:\n\
the first is the signal number, the second is the interrupted stack frame.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initsignal(void)
{
PyObject *m, *d, *x;
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 8024006..b9358b7 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -3008,7 +3008,7 @@
"Implementation module for socket operations. See the socket module\n\
for documentation.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_socket(void)
{
PyObject *m;
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index 09bcc3d..8eb64a0 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -1203,7 +1203,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initstrop(void)
{
PyObject *m, *s;
diff --git a/Modules/structmodule.c b/Modules/structmodule.c
index 5d4de11..093cd7b 100644
--- a/Modules/structmodule.c
+++ b/Modules/structmodule.c
@@ -1499,7 +1499,7 @@
/* Module initialization */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initstruct(void)
{
PyObject *m;
diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c
index e24e72f..9854a1c 100644
--- a/Modules/symtablemodule.c
+++ b/Modules/symtablemodule.c
@@ -43,7 +43,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
init_symtable(void)
{
PyObject *m;
diff --git a/Modules/syslogmodule.c b/Modules/syslogmodule.c
index 2d886e1..75deb1b 100644
--- a/Modules/syslogmodule.c
+++ b/Modules/syslogmodule.c
@@ -155,7 +155,7 @@
/* Initialization function for the module */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initsyslog(void)
{
PyObject *m;
diff --git a/Modules/termios.c b/Modules/termios.c
index ed78ece..3ace25c 100644
--- a/Modules/termios.c
+++ b/Modules/termios.c
@@ -892,7 +892,7 @@
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
PyInit_termios(void)
{
PyObject *m;
diff --git a/Modules/threadmodule.c b/Modules/threadmodule.c
index b872dd0..896d4fa 100644
--- a/Modules/threadmodule.c
+++ b/Modules/threadmodule.c
@@ -360,7 +360,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.");
-DL_EXPORT(void)
+PyMODINIT_FUNC
initthread(void)
{
PyObject *m, *d;
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index eb48c2b..13da2ff 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -620,7 +620,7 @@
strptime() -- parse string to time tuple according to format specification");
-DL_EXPORT(void)
+PyMODINIT_FUNC
inittime(void)
{
PyObject *m;
diff --git a/Modules/timingmodule.c b/Modules/timingmodule.c
index 4e10e31..56e057a 100644
--- a/Modules/timingmodule.c
+++ b/Modules/timingmodule.c
@@ -52,7 +52,7 @@
};
-DL_EXPORT(void) inittiming(void)
+PyMODINIT_FUNC inittiming(void)
{
(void)Py_InitModule("timing", timing_methods);
}
diff --git a/Modules/xreadlinesmodule.c b/Modules/xreadlinesmodule.c
index 8c6b91f..3009768 100644
--- a/Modules/xreadlinesmodule.c
+++ b/Modules/xreadlinesmodule.c
@@ -168,7 +168,7 @@
{NULL, NULL}
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initxreadlines(void)
{
XReadlinesObject_Type.ob_type = &PyType_Type;
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
index 2264dfb..125d2ec 100644
--- a/Modules/xxmodule.c
+++ b/Modules/xxmodule.c
@@ -218,7 +218,7 @@
/* Initialization function for the module (*must* be called initxx) */
-DL_EXPORT(void)
+PyMODINIT_FUNC
initxx(void)
{
PyObject *m;
diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c
index 9013467..c826b6e 100644
--- a/Modules/xxsubtype.c
+++ b/Modules/xxsubtype.c
@@ -263,7 +263,7 @@
{NULL, NULL} /* sentinel */
};
-DL_EXPORT(void)
+PyMODINIT_FUNC
initxxsubtype(void)
{
PyObject *m;