Bunchathings:
- initsigs(): Ignore SIGXFZ so writing files beyond the file system
size limit won't kill us.
- Py_Initialize(): call _Py_ReadyTypes() instead of readying types
here.
- Py_Initialize(): call _PyImport_FixupExtension() for module
"extensions". (SF bug #422004.)
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index f579f44..4ee82e4 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -94,6 +94,7 @@
PyThreadState *tstate;
PyObject *bimod, *sysmod;
char *p;
+ extern void _Py_ReadyTypes(void);
if (initialized)
return;
@@ -115,11 +116,7 @@
Py_FatalError("Py_Initialize: can't make first thread");
(void) PyThreadState_Swap(tstate);
- if (PyType_Ready(&PyType_Type) < 0)
- Py_FatalError("Py_Initialize: can't initialize 'type'");
-
- if (PyType_Ready(&PyList_Type) < 0)
- Py_FatalError("Py_Initialize: can't initialize 'list'");
+ _Py_ReadyTypes();
interp->modules = PyDict_New();
if (interp->modules == NULL)
@@ -155,6 +152,7 @@
/* phase 2 of builtins */
_PyImport_FixupExtension("__builtin__", "__builtin__");
+ _PyImport_FixupExtension("exceptions", "exceptions");
initsigs(); /* Signal handling stuff, including initintr() */
@@ -1326,6 +1324,9 @@
#ifdef SIGPIPE
signal(SIGPIPE, SIG_IGN);
#endif
+#ifdef SIGXFZ
+ signal(SIGXFZ, SIG_IGN);
+#endif
#endif /* HAVE_SIGNAL_H */
PyOS_InitInterrupts(); /* May imply initsignal() */
}