summaryrefslogtreecommitdiffstats
path: root/PC
diff options
context:
space:
mode:
authorAndrew MacIntyre <andymac@bullseye.apana.org.au>2003-07-13 13:41:59 (GMT)
committerAndrew MacIntyre <andymac@bullseye.apana.org.au>2003-07-13 13:41:59 (GMT)
commit4ee893fe39f11aca1cfcf7472c95c10e61d4aedd (patch)
tree089c7001a6a17428885304665d30e574534f5148 /PC
parentf9ce67d65fc86e1efee60a960e15eea27c6ab108 (diff)
downloadcpython-4ee893fe39f11aca1cfcf7472c95c10e61d4aedd.zip
cpython-4ee893fe39f11aca1cfcf7472c95c10e61d4aedd.tar.gz
cpython-4ee893fe39f11aca1cfcf7472c95c10e61d4aedd.tar.bz2
More pre-2.3 build tweaks for the OS/2 EMX port:
- separate the building of the core from the wrapper executables and the external modules (.PYDs), based on the Py_BUILD_CORE define; - clean up the generated import library definiton (.DEF file) to remove references to a number of non-static symbols that aren't part of the Python API and which shouldn't be exported by the core DLL; - compile the release build with -fomit-frame-pointer, for a small performance gain; - make "make clean" remove byte compiled Python library files.
Diffstat (limited to 'PC')
-rw-r--r--PC/os2emx/Makefile39
-rw-r--r--PC/os2emx/pyconfig.h12
-rw-r--r--PC/os2emx/python23.def685
3 files changed, 473 insertions, 263 deletions
diff --git a/PC/os2emx/Makefile b/PC/os2emx/Makefile
index 1726613..296200b 100644
--- a/PC/os2emx/Makefile
+++ b/PC/os2emx/Makefile
@@ -83,6 +83,7 @@ ARFLAGS= crs
IMPLIB= emximp
EXPLIB= emxexp
EXEOPT= emxbind
+PY_DEF= -DPy_BUILD_CORE
# adjust C compiler settings based on build options
@@ -90,9 +91,10 @@ ifeq ($(MODE),debug)
CFLAGS+= -g -O
LDFLAGS+= -g
else
- CFLAGS+= -s -O2
+ CFLAGS+= -s -O2 -fomit-frame-pointer
LDFLAGS+= -s
endif
+CFLAGS+= $(PY_DEF)
ifeq ($(ASSERTIONS),no)
CFLAGS+= -DNDEBUG
endif
@@ -474,12 +476,16 @@ EXTERNDLLS+= $(addsuffix $(MODULE.EXT),$(patsubst %module,%,$(HARDEXTMODULES)))
# Targets
all: $(OUT) $(PYTHON.LIB) $(PYTHON.DEF) $(PYTHON.IMPLIB) $(PYTHON.DLL) \
- $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) $(EXTERNDLLS)
+ python_noncore
+
+python_noncore:
+ make PY_DEF= $(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) $(EXTERNDLLS)
clean:
rm -f $(OUT)*
rm -f $(PYTHON.LIB) $(PYTHON.IMPLIB) $(PYTHON.EXEIMP) $(PYTHON.DLL) \
$(PYTHON.EXE) $(PYTHONPM.EXE) $(PGEN.EXE) *$(MODULE.EXT)
+ find ../../Lib -name "*.py[co]" -exec rm {} ";"
lx:
@echo Packing everything with lxLite...
@@ -498,6 +504,9 @@ $(PYTHON.LIB): $(OBJ.LIB)
rm.exe -f $@
$(AR) $(ARFLAGS) $@ $^
+# the Python core DLL .def file needs to have a number of non-static
+# symbols that aren't part of the Python C API removed (commented out)
+# from the DLL export list.
$(PYTHON.DEF): $(PYTHON.LIB)
@echo Creating .DEF file: $@
@echo LIBRARY $(PYTHON_LIB) INITINSTANCE TERMINSTANCE >$@
@@ -505,7 +514,29 @@ $(PYTHON.DEF): $(PYTHON.LIB)
@echo PROTMODE >>$@
@echo DATA MULTIPLE NONSHARED >>$@
@echo EXPORTS >>$@
- $(EXPLIB) -u $(PYTHON.LIB) >>$@
+ $(EXPLIB) -u $(PYTHON.LIB) |\
+ sed -e "/ .init.*/s/^ /; /" \
+ -e "/ .pcre_.*/s/^ /; /" \
+ -e "/ .array_methods/s/^ /; /" \
+ -e "/ .fast_save_leave/s/^ /; /" \
+ -e "/ .dlopen/s/^ /; /" \
+ -e "/ .dlsym/s/^ /; /" \
+ -e "/ .dlclose/s/^ /; /" \
+ -e "/ .dlerror/s/^ /; /" \
+ -e "/ .cycle_type/s/^ /; /" \
+ -e "/ .dropwhile_type/s/^ /; /" \
+ -e "/ .takewhile_type/s/^ /; /" \
+ -e "/ .islice_type/s/^ /; /" \
+ -e "/ .starmap_type/s/^ /; /" \
+ -e "/ .imap_type/s/^ /; /" \
+ -e "/ .chain_type/s/^ /; /" \
+ -e "/ .ifilter_type/s/^ /; /" \
+ -e "/ .ifilterfalse_type/s/^ /; /" \
+ -e "/ .count_type/s/^ /; /" \
+ -e "/ .izip_type/s/^ /; /" \
+ -e "/ .repeat_type/s/^ /; /" \
+ -e "/ ._Py_re_.*/s/^ /; /" \
+ -e "/ ._Py_MD5.*/s/^ /; /" >>$@
$(PYTHON.IMPLIB): $(PYTHON.DEF)
$(IMPLIB) -o $@ $^
@@ -627,7 +658,7 @@ readline$(MODULE.EXT): $(OUT)readline$O $(OUT)readline_m.def $(PYTHON.IMPLIB)
#_tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O $(OUT)tkappinit$O
_tkinter$(MODULE.EXT): $(OUT)_tkinter$O $(OUT)tclNotify$O \
- $(OUT)_tkinter_m.def $(PYTHON.IMPLIB)
+ $(OUT)_tkinter_m.def $(PYTHON.IMPLIB)
$(LD) $(LDFLAGS.DLL) -o $@ $(^^) $(L^) $(LIBS) $(TK_LIBS)
zlib$(MODULE.EXT): $(OUT)zlibmodule$O $(OUT)zlib_m.def $(PYTHON.IMPLIB)
diff --git a/PC/os2emx/pyconfig.h b/PC/os2emx/pyconfig.h
index 209d161..206223f 100644
--- a/PC/os2emx/pyconfig.h
+++ b/PC/os2emx/pyconfig.h
@@ -26,6 +26,18 @@
/*#define Py_DEBUG 1*/
#endif
+/* if building an extension or wrapper executable,
+ * mark Python API symbols "extern" so that symbols
+ * imported from the Python core DLL aren't duplicated.
+ */
+#ifdef Py_BUILD_CORE
+# define PyAPI_FUNC(RTYPE) RTYPE
+#else
+# define PyAPI_FUNC(RTYPE) extern RTYPE
+#endif
+#define PyAPI_DATA(RTYPE) extern RTYPE
+#define PyMODINIT_FUNC void
+
/* Use OS/2 flavour of threads */
#define WITH_THREAD 1
#define OS2_THREADS 1
diff --git a/PC/os2emx/python23.def b/PC/os2emx/python23.def
index f6c507a..7c33327 100644
--- a/PC/os2emx/python23.def
+++ b/PC/os2emx/python23.def
@@ -8,16 +8,16 @@ EXPORTS
"_PyImport_Inittab"
; From python23_s.lib(dlfcn)
- "dlopen"
- "dlsym"
- "dlclose"
- "dlerror"
+; "dlopen"
+; "dlsym"
+; "dlclose"
+; "dlerror"
; From python23_s.lib(getpathp)
- "Py_GetPath"
+ "Py_GetProgramFullPath"
"Py_GetPrefix"
"Py_GetExecPrefix"
- "Py_GetProgramFullPath"
+ "Py_GetPath"
; From python23_s.lib(getbuildinfo)
"Py_GetBuildInfo"
@@ -38,22 +38,22 @@ EXPORTS
"PyNode_ListTree"
; From python23_s.lib(node)
- "PyNode_New"
"PyNode_AddChild"
+ "PyNode_New"
"PyNode_Free"
; From python23_s.lib(parser)
+ "PyParser_AddToken"
"PyParser_New"
"PyParser_Delete"
- "PyParser_AddToken"
; From python23_s.lib(parsetok)
"Py_TabcheckFlag"
"PyParser_ParseString"
"PyParser_ParseStringFlags"
- "PyParser_ParseStringFlagsFilename"
"PyParser_ParseFile"
"PyParser_ParseFileFlags"
+ "PyParser_ParseStringFlagsFilename"
; From python23_s.lib(bitset)
"_Py_newbitset"
@@ -64,14 +64,15 @@ EXPORTS
; From python23_s.lib(metagrammar)
"_Py_meta_grammar"
+ "Py_meta_grammar"
; From python23_s.lib(tokenizer)
- "PyTokenizer_FromString"
- "PyTokenizer_FromFile"
- "PyTokenizer_Free"
"PyToken_OneChar"
"PyToken_TwoChars"
"PyToken_ThreeChars"
+ "PyTokenizer_FromString"
+ "PyTokenizer_FromFile"
+ "PyTokenizer_Free"
"PyTokenizer_Get"
"_PyParser_TokenNames"
@@ -82,97 +83,97 @@ EXPORTS
"PyOS_InputHook"
; From python23_s.lib(abstract)
- "PyObject_Cmp"
- "PyObject_Type"
- "PyObject_Size"
- "PyMapping_Size"
- "PyObject_Length"
"PyObject_GetItem"
"PySequence_GetItem"
"PyObject_SetItem"
"PySequence_SetItem"
"PyObject_DelItem"
"PySequence_DelItem"
+ "PyNumber_Multiply"
+ "PyNumber_InPlaceAdd"
+ "PyNumber_InPlaceMultiply"
+ "PyNumber_Int"
+ "PyNumber_Long"
+ "PyNumber_Float"
+ "PySequence_GetSlice"
+ "PySequence_SetSlice"
+ "PySequence_Tuple"
+ "PyObject_GetIter"
+ "PyIter_Next"
+ "PySequence_List"
+ "_PySequence_IterSearch"
+ "PyObject_CallFunction"
+ "PyObject_CallMethod"
+ "PyObject_CallMethodObjArgs"
+ "PyObject_CallFunctionObjArgs"
+ "PyObject_IsInstance"
+ "PyObject_IsSubclass"
+ "PyObject_Cmp"
+ "PyObject_Call"
+ "PyObject_CallObject"
+ "PyObject_Type"
+ "PyObject_Size"
+ "PyMapping_Size"
+ "PyObject_Length"
"PyObject_DelItemString"
"PyObject_AsCharBuffer"
"PyObject_CheckReadBuffer"
"PyObject_AsReadBuffer"
"PyObject_AsWriteBuffer"
"PyNumber_Check"
- "PyNumber_Or"
- "PyNumber_Xor"
- "PyNumber_And"
- "PyNumber_Lshift"
- "PyNumber_Rshift"
+ "PyNumber_Add"
"PyNumber_Subtract"
"PyNumber_Divide"
- "PyNumber_Divmod"
- "PyNumber_Add"
- "PyNumber_Multiply"
"PyNumber_FloorDivide"
"PyNumber_TrueDivide"
"PyNumber_Remainder"
+ "PyNumber_Divmod"
"PyNumber_Power"
- "PyNumber_InPlaceOr"
- "PyNumber_InPlaceXor"
- "PyNumber_InPlaceAnd"
- "PyNumber_InPlaceLshift"
- "PyNumber_InPlaceRshift"
+ "PyNumber_Negative"
+ "PyNumber_Positive"
+ "PyNumber_Absolute"
+ "PyNumber_Invert"
+ "PyNumber_Lshift"
+ "PyNumber_Rshift"
+ "PyNumber_And"
+ "PyNumber_Xor"
+ "PyNumber_Or"
"PyNumber_InPlaceSubtract"
"PyNumber_InPlaceDivide"
"PyNumber_InPlaceFloorDivide"
"PyNumber_InPlaceTrueDivide"
- "PyNumber_InPlaceAdd"
- "PyNumber_InPlaceMultiply"
"PyNumber_InPlaceRemainder"
"PyNumber_InPlacePower"
- "PyNumber_Negative"
- "PyNumber_Positive"
- "PyNumber_Invert"
- "PyNumber_Absolute"
- "PyNumber_Int"
- "PyNumber_Long"
- "PyNumber_Float"
+ "PyNumber_InPlaceLshift"
+ "PyNumber_InPlaceRshift"
+ "PyNumber_InPlaceAnd"
+ "PyNumber_InPlaceXor"
+ "PyNumber_InPlaceOr"
"PySequence_Check"
"PySequence_Size"
"PySequence_Length"
"PySequence_Concat"
"PySequence_Repeat"
- "PySequence_InPlaceConcat"
- "PySequence_InPlaceRepeat"
- "PySequence_GetSlice"
- "PySequence_SetSlice"
"PySequence_DelSlice"
- "PySequence_Tuple"
- "PyObject_GetIter"
- "PyIter_Next"
- "PySequence_List"
"PySequence_Fast"
- "_PySequence_IterSearch"
"PySequence_Count"
"PySequence_Contains"
"PySequence_In"
"PySequence_Index"
+ "PySequence_InPlaceConcat"
+ "PySequence_InPlaceRepeat"
"PyMapping_Check"
"PyMapping_Length"
- "PyMapping_GetItemString"
- "PyMapping_SetItemString"
"PyMapping_HasKeyString"
"PyMapping_HasKey"
- "PyObject_CallObject"
- "PyObject_Call"
- "PyObject_CallFunction"
- "PyObject_CallMethod"
- "PyObject_CallMethodObjArgs"
- "PyObject_CallFunctionObjArgs"
- "PyObject_IsInstance"
- "PyObject_IsSubclass"
+ "PyMapping_GetItemString"
+ "PyMapping_SetItemString"
; From python23_s.lib(boolobject)
"PyBool_FromLong"
+ "PyBool_Type"
"_Py_ZeroStruct"
"_Py_TrueStruct"
- "PyBool_Type"
; From python23_s.lib(bufferobject)
"PyBuffer_FromObject"
@@ -190,17 +191,18 @@ EXPORTS
; From python23_s.lib(classobject)
"PyClass_New"
- "PyMethod_Function"
- "PyMethod_Self"
- "PyMethod_Class"
"PyClass_IsSubclass"
"PyInstance_New"
"PyInstance_NewRaw"
"PyMethod_New"
+ "PyMethod_Function"
+ "PyMethod_Self"
+ "PyMethod_Class"
+ "_PyInstance_Lookup"
"PyMethod_Fini"
"PyClass_Type"
- "PyMethod_Type"
"PyInstance_Type"
+ "PyMethod_Type"
; From python23_s.lib(cobject)
"PyCObject_FromVoidPtr"
@@ -211,12 +213,12 @@ EXPORTS
"PyCObject_Type"
; From python23_s.lib(complexobject)
+ "_Py_c_pow"
"_Py_c_sum"
"_Py_c_diff"
"_Py_c_neg"
"_Py_c_prod"
"_Py_c_quot"
- "_Py_c_pow"
"PyComplex_FromCComplex"
"PyComplex_FromDoubles"
"PyComplex_RealAsDouble"
@@ -236,20 +238,20 @@ EXPORTS
"PyProperty_Type"
; From python23_s.lib(dictobject)
- "PyDict_New"
- "PyDict_GetItem"
"PyDict_SetItem"
"PyDict_DelItem"
"PyDict_Clear"
- "PyDict_Next"
- "PyDict_Update"
"PyDict_MergeFromSeq2"
"PyDict_Merge"
"PyDict_Copy"
- "PyDict_Size"
"PyDict_Keys"
"PyDict_Values"
+ "PyDict_New"
+ "PyDict_GetItem"
+ "PyDict_Next"
"PyDict_Items"
+ "PyDict_Size"
+ "PyDict_Update"
"PyDict_GetItemString"
"PyDict_SetItemString"
"PyDict_DelItemString"
@@ -260,11 +262,6 @@ EXPORTS
"PyEnum_Type"
; From python23_s.lib(fileobject)
- "PyFile_AsFile"
- "PyFile_Name"
- "PyFile_FromFile"
- "PyFile_FromString"
- "PyFile_SetBufSize"
"Py_UniversalNewlineFread"
"PyFile_GetLine"
"PyFile_SoftSpace"
@@ -272,26 +269,36 @@ EXPORTS
"PyFile_WriteString"
"PyObject_AsFileDescriptor"
"Py_UniversalNewlineFgets"
+ "PyFile_FromString"
+ "PyFile_SetBufSize"
+ "PyFile_SetEncoding"
+ "PyFile_FromFile"
+ "PyFile_AsFile"
+ "PyFile_Name"
"PyFile_Type"
; From python23_s.lib(floatobject)
- "PyFloat_FromDouble"
"PyFloat_FromString"
"PyFloat_AsDouble"
- "PyFloat_AsStringEx"
- "PyFloat_AsString"
- "PyFloat_AsReprString"
"PyFloat_Fini"
+ "_PyFloat_Pack4"
+ "_PyFloat_Pack8"
+ "PyFloat_FromDouble"
+ "PyFloat_AsReprString"
+ "PyFloat_AsString"
+ "_PyFloat_Unpack4"
+ "_PyFloat_Unpack8"
+ "PyFloat_AsStringEx"
"PyFloat_Type"
; From python23_s.lib(frameobject)
+ "PyFrame_New"
"PyFrame_FastToLocals"
+ "PyFrame_LocalsToFast"
"_PyFrame_Init"
- "PyFrame_New"
+ "PyFrame_Fini"
"PyFrame_BlockSetup"
"PyFrame_BlockPop"
- "PyFrame_LocalsToFast"
- "PyFrame_Fini"
"PyFrame_Type"
; From python23_s.lib(funcobject)
@@ -310,13 +317,15 @@ EXPORTS
"PyStaticMethod_Type"
; From python23_s.lib(intobject)
- "PyInt_GetMax"
- "PyInt_FromLong"
"PyInt_AsLong"
+ "PyInt_AsUnsignedLongMask"
+ "PyInt_AsUnsignedLongLongMask"
"PyInt_FromString"
+ "PyInt_Fini"
"PyInt_FromUnicode"
+ "PyInt_FromLong"
+ "PyInt_GetMax"
"_PyInt_Init"
- "PyInt_Fini"
"PyInt_Type"
; From python23_s.lib(iterobject)
@@ -327,11 +336,11 @@ EXPORTS
; From python23_s.lib(listobject)
"PyList_New"
+ "PyList_Insert"
+ "PyList_Append"
"PyList_Size"
"PyList_GetItem"
"PyList_SetItem"
- "PyList_Insert"
- "PyList_Append"
"PyList_GetSlice"
"PyList_SetSlice"
"PyList_Sort"
@@ -341,90 +350,93 @@ EXPORTS
"PyListIter_Type"
; From python23_s.lib(longobject)
- "_PyLong_New"
- "_PyLong_Copy"
- "PyLong_FromLong"
- "PyLong_FromUnsignedLong"
"PyLong_FromDouble"
"PyLong_AsLong"
- "PyLong_AsUnsignedLong"
- "_PyLong_Sign"
- "_PyLong_NumBits"
"_PyLong_FromByteArray"
"_PyLong_AsByteArray"
- "_PyLong_AsScaledDouble"
"PyLong_AsDouble"
+ "PyLong_FromString"
+ "PyLong_FromLong"
+ "PyLong_FromUnsignedLong"
+ "PyLong_AsUnsignedLong"
+ "PyLong_AsUnsignedLongMask"
+ "_PyLong_AsScaledDouble"
"PyLong_FromVoidPtr"
"PyLong_AsVoidPtr"
"PyLong_FromLongLong"
"PyLong_FromUnsignedLongLong"
"PyLong_AsLongLong"
"PyLong_AsUnsignedLongLong"
- "PyLong_FromString"
+ "PyLong_AsUnsignedLongLongMask"
"PyLong_FromUnicode"
+ "_PyLong_Sign"
+ "_PyLong_NumBits"
+ "_PyLong_New"
+ "_PyLong_Copy"
"PyLong_Type"
; From python23_s.lib(methodobject)
- "PyCFunction_NewEx"
+ "PyCFunction_Call"
+ "Py_FindMethodInChain"
"PyCFunction_GetFunction"
"PyCFunction_GetSelf"
"PyCFunction_GetFlags"
- "PyCFunction_Call"
- "Py_FindMethodInChain"
"Py_FindMethod"
+ "PyCFunction_NewEx"
"PyCFunction_Fini"
"PyCFunction_New"
"PyCFunction_Type"
; From python23_s.lib(moduleobject)
"PyModule_New"
+ "_PyModule_Clear"
"PyModule_GetDict"
"PyModule_GetName"
"PyModule_GetFilename"
- "_PyModule_Clear"
"PyModule_Type"
; From python23_s.lib(object)
"Py_DivisionWarningFlag"
- "PyObject_Init"
- "PyObject_InitVar"
- "_PyObject_New"
- "_PyObject_NewVar"
- "_PyObject_Del"
"PyObject_Str"
"PyObject_Repr"
- "PyObject_Print"
- "_PyObject_Dump"
"PyObject_Unicode"
"PyObject_GetAttr"
"PyObject_IsTrue"
"PyNumber_CoerceEx"
"PyObject_Compare"
"PyObject_RichCompare"
- "PyObject_RichCompareBool"
"_Py_HashDouble"
"PyObject_Hash"
- "_Py_HashPointer"
- "PyObject_GetAttrString"
- "PyObject_HasAttrString"
- "PyObject_SetAttrString"
"PyObject_SetAttr"
- "PyObject_HasAttr"
- "_PyObject_GetDictPtr"
"PyObject_GenericGetAttr"
"PyObject_GenericSetAttr"
- "PyObject_Not"
- "PyNumber_Coerce"
"PyCallable_Check"
"PyObject_Dir"
- "_Py_ReadyTypes"
"PyMem_Malloc"
"PyMem_Realloc"
"PyMem_Free"
+ "PyObject_Print"
+ "_PyObject_Dump"
+ "PyObject_RichCompareBool"
+ "PyObject_GetAttrString"
+ "PyObject_SetAttrString"
+ "PyObject_HasAttrString"
+ "PyObject_HasAttr"
+ "_PyObject_GetDictPtr"
+ "PyObject_SelfIter"
+ "PyObject_Not"
+ "PyNumber_Coerce"
"Py_ReprEnter"
"Py_ReprLeave"
+ "_Py_HashPointer"
"_PyTrash_deposit_object"
"_PyTrash_destroy_chain"
+ "PyObject_Init"
+ "PyObject_InitVar"
+ "_PyObject_New"
+ "_PyObject_NewVar"
+ "_PyObject_Del"
+ "_Py_ReadyTypes"
"_Py_NotImplementedStruct"
"_Py_NoneStruct"
"_Py_cobject_hack"
@@ -442,9 +454,9 @@ EXPORTS
"PyRange_Type"
; From python23_s.lib(sliceobject)
- "PySlice_New"
"PySlice_GetIndices"
"PySlice_GetIndicesEx"
+ "PySlice_New"
"_Py_EllipsisObject"
"PySlice_Type"
@@ -456,60 +468,58 @@ EXPORTS
"PyString_AsString"
"_PyString_Resize"
"PyString_FromFormat"
- "PyString_Decode"
"PyString_AsDecodedString"
- "PyString_AsDecodedObject"
- "PyString_Encode"
"PyString_AsEncodedString"
- "PyString_AsEncodedObject"
"PyString_DecodeEscape"
"PyString_Size"
- "PyString_AsStringAndSize"
"PyString_Repr"
- "_PyString_Eq"
- "_PyString_Join"
+ "PyString_AsStringAndSize"
+ "_PyString_FormatLong"
"PyString_Format"
+ "_Py_ReleaseInternedStrings"
"PyString_Concat"
"PyString_ConcatAndDel"
- "_PyString_FormatLong"
+ "_PyString_Eq"
"PyString_InternImmortal"
"PyString_InternFromString"
+ "_PyString_Join"
+ "PyString_Decode"
+ "PyString_Encode"
+ "PyString_AsEncodedObject"
+ "PyString_AsDecodedObject"
"PyString_Fini"
- "_Py_ReleaseInternedStrings"
"PyString_Type"
"PyBaseString_Type"
; From python23_s.lib(structseq)
- "PyStructSequence_New"
"PyStructSequence_InitType"
+ "PyStructSequence_New"
"PyStructSequence_UnnamedField"
; From python23_s.lib(tupleobject)
"PyTuple_New"
+ "_PyTuple_Resize"
"PyTuple_Size"
"PyTuple_GetItem"
"PyTuple_SetItem"
"PyTuple_GetSlice"
- "_PyTuple_Resize"
"PyTuple_Fini"
"PyTuple_Type"
"PyTupleIter_Type"
; From python23_s.lib(typeobject)
"PyType_IsSubtype"
- "PyType_GenericAlloc"
- "PyType_GenericNew"
"_PyType_Lookup"
"PyType_Ready"
+ "PyType_GenericAlloc"
"_PyObject_SlotCompare"
+ "PyType_GenericNew"
"PyType_Type"
"PyBaseObject_Type"
"PySuper_Type"
; From python23_s.lib(unicodeobject)
- "PyUnicodeUCS2_GetMax"
"PyUnicodeUCS2_Resize"
- "PyUnicodeUCS2_FromUnicode"
"PyUnicodeUCS2_FromOrdinal"
"PyUnicodeUCS2_FromObject"
"PyUnicodeUCS2_FromEncodedObject"
@@ -518,34 +528,21 @@ EXPORTS
"PyUnicodeUCS2_DecodeUTF8"
"PyUnicodeUCS2_DecodeLatin1"
"PyUnicodeUCS2_DecodeASCII"
- "PyUnicodeUCS2_Encode"
"PyUnicodeUCS2_AsEncodedString"
"PyUnicodeUCS2_AsUTF8String"
"PyUnicodeUCS2_AsLatin1String"
"PyUnicodeUCS2_AsASCIIString"
- "_PyUnicodeUCS2_AsDefaultEncodedString"
- "PyUnicodeUCS2_AsUnicode"
- "PyUnicodeUCS2_GetSize"
- "PyUnicodeUCS2_SetDefaultEncoding"
"PyUnicode_DecodeUTF7"
"PyUnicode_EncodeUTF7"
"PyUnicodeUCS2_EncodeUTF8"
"PyUnicodeUCS2_DecodeUTF16"
- "PyUnicodeUCS2_EncodeUTF16"
"PyUnicodeUCS2_AsUTF16String"
"PyUnicodeUCS2_DecodeUnicodeEscape"
- "PyUnicodeUCS2_EncodeUnicodeEscape"
- "PyUnicodeUCS2_AsUnicodeEscapeString"
"PyUnicodeUCS2_DecodeRawUnicodeEscape"
"PyUnicodeUCS2_EncodeRawUnicodeEscape"
- "PyUnicodeUCS2_AsRawUnicodeEscapeString"
- "PyUnicodeUCS2_EncodeLatin1"
- "PyUnicodeUCS2_EncodeASCII"
"PyUnicodeUCS2_DecodeCharmap"
"PyUnicodeUCS2_EncodeCharmap"
- "PyUnicodeUCS2_AsCharmapString"
"PyUnicodeUCS2_TranslateCharmap"
- "PyUnicodeUCS2_Translate"
"PyUnicodeUCS2_EncodeDecimal"
"PyUnicodeUCS2_Count"
"PyUnicodeUCS2_Find"
@@ -559,34 +556,49 @@ EXPORTS
"PyUnicodeUCS2_Replace"
"PyUnicodeUCS2_Split"
"PyUnicodeUCS2_Format"
- "_PyUnicodeUCS2_Init"
"_PyUnicodeUCS2_Fini"
+ "PyUnicodeUCS2_FromUnicode"
+ "PyUnicodeUCS2_AsUnicode"
+ "PyUnicodeUCS2_GetSize"
+ "PyUnicodeUCS2_GetMax"
+ "_PyUnicodeUCS2_AsDefaultEncodedString"
+ "PyUnicodeUCS2_SetDefaultEncoding"
+ "PyUnicodeUCS2_Encode"
+ "PyUnicodeUCS2_EncodeUTF16"
+ "PyUnicodeUCS2_AsUnicodeEscapeString"
+ "PyUnicodeUCS2_EncodeUnicodeEscape"
+ "PyUnicodeUCS2_AsRawUnicodeEscapeString"
+ "PyUnicodeUCS2_EncodeLatin1"
+ "PyUnicodeUCS2_EncodeASCII"
+ "PyUnicodeUCS2_AsCharmapString"
+ "PyUnicodeUCS2_Translate"
+ "_PyUnicodeUCS2_Init"
"PyUnicode_Type"
; From python23_s.lib(unicodectype)
"_PyUnicode_TypeRecords"
+ "_PyUnicodeUCS2_ToNumeric"
+ "_PyUnicodeUCS2_IsLowercase"
+ "_PyUnicodeUCS2_IsUppercase"
+ "_PyUnicodeUCS2_IsTitlecase"
+ "_PyUnicodeUCS2_IsWhitespace"
"_PyUnicodeUCS2_IsLinebreak"
+ "_PyUnicodeUCS2_ToLowercase"
+ "_PyUnicodeUCS2_ToUppercase"
"_PyUnicodeUCS2_ToTitlecase"
- "_PyUnicodeUCS2_IsTitlecase"
"_PyUnicodeUCS2_ToDecimalDigit"
- "_PyUnicodeUCS2_IsDecimalDigit"
"_PyUnicodeUCS2_ToDigit"
+ "_PyUnicodeUCS2_IsDecimalDigit"
"_PyUnicodeUCS2_IsDigit"
- "_PyUnicodeUCS2_ToNumeric"
"_PyUnicodeUCS2_IsNumeric"
- "_PyUnicodeUCS2_IsWhitespace"
- "_PyUnicodeUCS2_IsLowercase"
- "_PyUnicodeUCS2_IsUppercase"
- "_PyUnicodeUCS2_ToUppercase"
- "_PyUnicodeUCS2_ToLowercase"
"_PyUnicodeUCS2_IsAlpha"
; From python23_s.lib(weakrefobject)
- "_PyWeakref_GetWeakrefCount"
"PyWeakref_NewRef"
"PyWeakref_NewProxy"
- "PyWeakref_GetObject"
"PyObject_ClearWeakRefs"
+ "PyWeakref_GetObject"
+ "_PyWeakref_GetWeakrefCount"
"_PyWeakref_RefType"
"_PyWeakref_ProxyType"
"_PyWeakref_CallableProxyType"
@@ -596,11 +608,8 @@ EXPORTS
"Py_FileSystemDefaultEncoding"
; From python23_s.lib(exceptions)
- "PyExc_TypeError"
"PyExc_Exception"
- "PyExc_UnicodeEncodeError"
- "PyExc_UnicodeDecodeError"
- "PyExc_UnicodeTranslateError"
+ "PyExc_TypeError"
"PyExc_StopIteration"
"PyExc_StandardError"
"PyExc_SystemExit"
@@ -628,6 +637,9 @@ EXPORTS
"PyExc_FloatingPointError"
"PyExc_ValueError"
"PyExc_UnicodeError"
+ "PyExc_UnicodeEncodeError"
+ "PyExc_UnicodeDecodeError"
+ "PyExc_UnicodeTranslateError"
"PyExc_ReferenceError"
"PyExc_SystemError"
"PyExc_MemoryError"
@@ -640,19 +652,24 @@ EXPORTS
"PyExc_RuntimeWarning"
"PyExc_FutureWarning"
"PyExc_MemoryErrorInst"
+ "PyUnicodeEncodeError_GetStart"
+ "PyUnicodeDecodeError_GetStart"
+ "PyUnicodeEncodeError_GetEnd"
+ "PyUnicodeDecodeError_GetEnd"
+ "_PyExc_Init"
+ "_PyExc_Fini"
+ "PyUnicodeDecodeError_Create"
+ "PyUnicodeEncodeError_Create"
+ "PyUnicodeTranslateError_Create"
"PyUnicodeEncodeError_GetEncoding"
"PyUnicodeDecodeError_GetEncoding"
"PyUnicodeEncodeError_GetObject"
"PyUnicodeDecodeError_GetObject"
"PyUnicodeTranslateError_GetObject"
- "PyUnicodeEncodeError_GetStart"
- "PyUnicodeDecodeError_GetStart"
"PyUnicodeTranslateError_GetStart"
"PyUnicodeEncodeError_SetStart"
"PyUnicodeDecodeError_SetStart"
"PyUnicodeTranslateError_SetStart"
- "PyUnicodeEncodeError_GetEnd"
- "PyUnicodeDecodeError_GetEnd"
"PyUnicodeTranslateError_GetEnd"
"PyUnicodeEncodeError_SetEnd"
"PyUnicodeDecodeError_SetEnd"
@@ -663,100 +680,94 @@ EXPORTS
"PyUnicodeEncodeError_SetReason"
"PyUnicodeDecodeError_SetReason"
"PyUnicodeTranslateError_SetReason"
- "PyUnicodeEncodeError_Create"
- "PyUnicodeDecodeError_Create"
- "PyUnicodeTranslateError_Create"
- "_PyExc_Init"
- "_PyExc_Fini"
; From python23_s.lib(ceval)
- "PyEval_GetCallStats"
- "PyEval_InitThreads"
- "PyEval_AcquireLock"
- "PyEval_ReleaseLock"
- "PyEval_AcquireThread"
- "PyEval_ReleaseThread"
- "PyEval_ReInitThreads"
- "PyEval_SaveThread"
- "PyEval_RestoreThread"
- "Py_AddPendingCall"
- "Py_MakePendingCalls"
- "Py_GetRecursionLimit"
- "Py_SetRecursionLimit"
- "PyEval_EvalCode"
- "PyEval_EvalCodeEx"
"PyEval_CallObjectWithKeywords"
+ "PyEval_EvalCodeEx"
+ "_PyEval_SliceIndex"
+ "PyEval_GetFrame"
+ "PyEval_CallObject"
"PyEval_SetProfile"
"PyEval_SetTrace"
"PyEval_GetBuiltins"
- "PyEval_GetFrame"
- "PyEval_GetLocals"
"PyEval_GetGlobals"
+ "PyEval_GetLocals"
"PyEval_GetRestricted"
"PyEval_MergeCompilerFlags"
"Py_FlushLine"
- "PyEval_CallObject"
+ "Py_AddPendingCall"
+ "Py_MakePendingCalls"
+ "Py_SetRecursionLimit"
+ "Py_GetRecursionLimit"
"PyEval_GetFuncName"
"PyEval_GetFuncDesc"
- "_PyEval_SliceIndex"
- "_Py_Ticker"
+ "PyEval_GetCallStats"
+ "PyEval_SaveThread"
+ "PyEval_RestoreThread"
+ "PyEval_InitThreads"
+ "PyEval_AcquireLock"
+ "PyEval_ReleaseLock"
+ "PyEval_AcquireThread"
+ "PyEval_ReleaseThread"
+ "PyEval_ReInitThreads"
+ "PyEval_EvalCode"
+ "_PyEval_CallTracing"
"_Py_CheckInterval"
+ "_Py_Ticker"
; From python23_s.lib(compile)
"PyCode_New"
+ "PySymtable_Free"
"_Py_Mangle"
"PyNode_Compile"
"PyNode_CompileFlags"
- "PyNode_CompileSymtable"
- "PySymtable_Free"
"PyCode_Addr2Line"
+ "PyNode_CompileSymtable"
"Py_OptimizeFlag"
"PyCode_Type"
; From python23_s.lib(codecs)
- "PyCodec_Register"
"_PyCodec_Lookup"
- "PyCodec_Encoder"
- "PyCodec_Decoder"
"PyCodec_StreamReader"
"PyCodec_StreamWriter"
"PyCodec_Encode"
"PyCodec_Decode"
- "PyCodec_RegisterError"
- "PyCodec_LookupError"
- "PyCodec_StrictErrors"
"PyCodec_IgnoreErrors"
"PyCodec_ReplaceErrors"
"PyCodec_XMLCharRefReplaceErrors"
"PyCodec_BackslashReplaceErrors"
- "_PyCodecRegistry_Init"
- "_PyCodecRegistry_Fini"
+ "PyCodec_Register"
+ "PyCodec_Encoder"
+ "PyCodec_Decoder"
+ "PyCodec_RegisterError"
+ "PyCodec_LookupError"
+ "PyCodec_StrictErrors"
; From python23_s.lib(errors)
- "PyErr_Restore"
- "PyErr_SetObject"
"PyErr_SetNone"
"PyErr_SetString"
- "PyErr_Occurred"
- "PyErr_GivenExceptionMatches"
"PyErr_ExceptionMatches"
+ "PyErr_GivenExceptionMatches"
"PyErr_NormalizeException"
"PyErr_Fetch"
"PyErr_Clear"
- "PyErr_BadArgument"
"PyErr_NoMemory"
"PyErr_SetFromErrnoWithFilenameObject"
- "PyErr_SetFromErrnoWithFilename"
- "PyErr_SetFromErrno"
- "_PyErr_BadInternalCall"
"PyErr_Format"
- "PyErr_BadInternalCall"
"PyErr_NewException"
"PyErr_WriteUnraisable"
- "PyErr_Warn"
- "PyErr_WarnExplicit"
"PyErr_SyntaxLocation"
"PyErr_ProgramText"
+ "PyErr_SetObject"
+ "PyErr_Occurred"
+ "PyErr_Restore"
+ "PyErr_BadArgument"
+ "PyErr_SetFromErrno"
+ "PyErr_SetFromErrnoWithFilename"
+ "PyErr_BadInternalCall"
+ "_PyErr_BadInternalCall"
+ "PyErr_Warn"
+ "PyErr_WarnExplicit"
; From python23_s.lib(frozen)
"PyImport_FrozenModules"
@@ -770,9 +781,9 @@ EXPORTS
; From python23_s.lib(getargs)
"PyArg_Parse"
"PyArg_ParseTuple"
- "PyArg_VaParse"
"PyArg_ParseTupleAndKeywords"
"PyArg_UnpackTuple"
+ "PyArg_VaParse"
; From python23_s.lib(getcompiler)
"Py_GetCompiler"
@@ -796,22 +807,22 @@ EXPORTS
"_PyImport_Init"
"_PyImportHooks_Init"
"PyImport_ImportModule"
- "_PyImport_Fini"
- "PyImport_GetModuleDict"
"PyImport_Cleanup"
- "PyImport_GetMagicNumber"
"_PyImport_FixupExtension"
- "_PyImport_FindExtension"
"PyImport_AddModule"
- "PyImport_ExecCodeModule"
"PyImport_ExecCodeModuleEx"
"PyImport_ImportFrozenModule"
- "PyImport_Import"
"PyImport_ImportModuleEx"
"PyImport_ReloadModule"
+ "PyImport_Import"
; "initimp"
- "PyImport_ExtendInittab"
+ "_PyImport_Fini"
+ "PyImport_GetMagicNumber"
+ "PyImport_ExecCodeModule"
+ "PyImport_GetModuleDict"
+ "_PyImport_FindExtension"
"PyImport_AppendInittab"
+ "PyImport_ExtendInittab"
"PyImport_Inittab"
"_PyImport_Filetab"
@@ -819,14 +830,14 @@ EXPORTS
"_PyImport_LoadDynamicModule"
; From python23_s.lib(marshal)
- "PyMarshal_WriteLongToFile"
- "PyMarshal_WriteObjectToFile"
- "PyMarshal_ReadShortFromFile"
"PyMarshal_ReadLongFromFile"
"PyMarshal_ReadLastObjectFromFile"
"PyMarshal_ReadObjectFromString"
"PyMarshal_ReadObjectFromFile"
"PyMarshal_WriteObjectToString"
+ "PyMarshal_WriteLongToFile"
+ "PyMarshal_WriteObjectToFile"
+ "PyMarshal_ReadShortFromFile"
"PyMarshal_Init"
; From python23_s.lib(modsupport)
@@ -852,20 +863,26 @@ EXPORTS
"PyFPE_dummy"
; From python23_s.lib(pystate)
- "PyInterpreterState_New"
"PyInterpreterState_Clear"
"PyThreadState_Clear"
- "PyThreadState_Delete"
+ "PyGILState_Ensure"
+ "PyGILState_Release"
+ "PyInterpreterState_New"
"PyInterpreterState_Delete"
+ "PyThreadState_Delete"
"PyThreadState_New"
"PyThreadState_DeleteCurrent"
"PyThreadState_Get"
"PyThreadState_Swap"
"PyThreadState_GetDict"
+ "PyThreadState_SetAsyncExc"
+ "PyGILState_GetThisThreadState"
"PyInterpreterState_Head"
"PyInterpreterState_Next"
"PyInterpreterState_ThreadHead"
"PyThreadState_Next"
+ "_PyGILState_Init"
+ "_PyGILState_Fini"
"_PyThreadState_Current"
"_PyThreadState_GetFrame"
@@ -876,78 +893,80 @@ EXPORTS
"Py_NoSiteFlag"
"Py_InteractiveFlag"
"Py_FrozenFlag"
- "Py_IsInitialized"
"Py_Initialize"
"Py_FatalError"
- "Py_Finalize"
"Py_NewInterpreter"
"PyErr_Print"
- "Py_EndInterpreter"
+ "PyRun_InteractiveOneFlags"
+ "PyRun_SimpleFileExFlags"
+ "PyRun_FileExFlags"
+ "Py_Exit"
+ "PyErr_PrintEx"
+ "PyErr_Display"
"Py_SetProgramName"
"Py_GetProgramName"
"Py_SetPythonHome"
"Py_GetPythonHome"
+ "Py_Finalize"
+ "Py_IsInitialized"
+ "Py_EndInterpreter"
"PyRun_AnyFile"
"PyRun_AnyFileExFlags"
- "PyRun_AnyFileFlags"
"PyRun_AnyFileEx"
+ "PyRun_AnyFileFlags"
"Py_FdIsInteractive"
"PyRun_InteractiveLoopFlags"
- "PyRun_SimpleFileExFlags"
- "PyRun_InteractiveLoop"
- "PyRun_InteractiveOneFlags"
- "PyRun_InteractiveOne"
- "PyRun_SimpleFile"
- "PyRun_SimpleFileEx"
- "PyRun_FileExFlags"
"PyRun_SimpleString"
"PyRun_SimpleStringFlags"
"PyRun_StringFlags"
- "PyErr_PrintEx"
- "Py_Exit"
- "PyErr_Display"
- "PyRun_String"
+ "PyRun_SimpleFile"
+ "PyRun_SimpleFileEx"
+ "PyRun_InteractiveOne"
+ "PyRun_InteractiveLoop"
"PyParser_SimpleParseString"
- "PyRun_File"
- "PyRun_FileEx"
"PyParser_SimpleParseFile"
"PyParser_SimpleParseStringFlags"
- "PyRun_FileFlags"
+ "PyParser_SimpleParseStringFlagsFilename"
"PyParser_SimpleParseFileFlags"
+ "PyRun_String"
+ "PyRun_File"
+ "PyRun_FileEx"
+ "PyRun_FileFlags"
"Py_CompileString"
"Py_CompileStringFlags"
- "PyParser_SimpleParseStringFlagsFilename"
"Py_SymtableString"
- "PyParser_SimpleParseStringFilename"
"Py_AtExit"
"PyOS_getsig"
"PyOS_setsig"
+ "PyParser_SetError"
+ "PyParser_SimpleParseStringFilename"
"Py_UseClassExceptionsFlag"
"Py_UnicodeFlag"
"_Py_QnewFlag"
+ "PyModule_WarningsModule"
"_PyThread_Started"
; From python23_s.lib(structmember)
"PyMember_Get"
"PyMember_GetOne"
- "PyMember_Set"
"PyMember_SetOne"
+ "PyMember_Set"
; From python23_s.lib(symtable)
"PySymtableEntry_New"
"PySymtableEntry_Type"
; From python23_s.lib(sysmodule)
- "PySys_GetObject"
- "PySys_GetFile"
- "PySys_SetObject"
- "PySys_ResetWarnOptions"
- "PySys_AddWarnOption"
"_PySys_Init"
"PySys_SetPath"
"PySys_SetArgv"
"PySys_WriteStdout"
"PySys_WriteStderr"
+ "PySys_GetObject"
+ "PySys_SetObject"
+ "PySys_GetFile"
+ "PySys_ResetWarnOptions"
+ "PySys_AddWarnOption"
; From python23_s.lib(traceback)
"PyTraceBack_Here"
@@ -965,38 +984,44 @@ EXPORTS
"_PyImport_GetDynLoadFunc"
; From python23_s.lib(thread)
+ "PyThread_delete_key_value"
"PyThread_init_thread"
"PyThread_start_new_thread"
- "PyThread_get_thread_ident"
"PyThread_exit_thread"
- "PyThread__exit_thread"
+ "PyThread_get_thread_ident"
"PyThread_allocate_lock"
"PyThread_free_lock"
"PyThread_acquire_lock"
"PyThread_release_lock"
+ "PyThread_create_key"
+ "PyThread_delete_key"
+ "PyThread_set_key_value"
+ "PyThread_get_key_value"
+ "PyThread__exit_thread"
; From python23_s.lib(gcmodule)
; "initgc"
- "_PyGC_Dump"
- "PyObject_GC_Track"
- "_PyObject_GC_Track"
- "PyObject_GC_UnTrack"
- "_PyObject_GC_UnTrack"
- "_PyObject_GC_Malloc"
"_PyObject_GC_New"
"_PyObject_GC_NewVar"
+ "PyGC_Collect"
"_PyObject_GC_Resize"
+ "_PyObject_GC_Malloc"
+ "PyObject_GC_Track"
+ "PyObject_GC_UnTrack"
"PyObject_GC_Del"
+ "_PyGC_Dump"
+ "_PyObject_GC_Track"
+ "_PyObject_GC_UnTrack"
"_PyObject_GC_Del"
"_PyGC_generation0"
; From python23_s.lib(signalmodule)
- "PyErr_CheckSignals"
; "initsignal"
+ "PyErr_CheckSignals"
"PyErr_SetInterrupt"
- "PyOS_InitInterrupts"
"PyOS_FiniInterrupts"
"PyOS_InterruptOccurred"
+ "PyOS_InitInterrupts"
"PyOS_AfterFork"
; From python23_s.lib(posixmodule)
@@ -1004,3 +1029,145 @@ EXPORTS
; From python23_s.lib(threadmodule)
; "initthread"
+
+; From python23_s.lib(arraymodule)
+; "initarray"
+; "array_methods"
+
+; From python23_s.lib(binascii)
+; "initbinascii"
+
+; From python23_s.lib(cmathmodule)
+; "initcmath"
+
+; From python23_s.lib(_codecsmodule)
+; "init_codecs"
+
+; From python23_s.lib(cPickle)
+; "initcPickle"
+; "fast_save_leave"
+
+; From python23_s.lib(cStringIO)
+; "initcStringIO"
+
+; From python23_s.lib(_csv)
+; "init_csv"
+
+; From python23_s.lib(datetimemodule)
+; "initdatetime"
+
+; From python23_s.lib(dlmodule)
+; "initdl"
+
+; From python23_s.lib(errnomodule)
+; "initerrno"
+
+; From python23_s.lib(fcntlmodule)
+; "initfcntl"
+
+; From python23_s.lib(imageop)
+; "initimageop"
+
+; From python23_s.lib(itertoolsmodule)
+; "inititertools"
+; "cycle_type"
+; "dropwhile_type"
+; "takewhile_type"
+; "islice_type"
+; "starmap_type"
+; "imap_type"
+; "chain_type"
+; "ifilter_type"
+; "ifilterfalse_type"
+; "count_type"
+; "izip_type"
+; "repeat_type"
+
+; From python23_s.lib(_localemodule)
+; "init_locale"
+
+; From python23_s.lib(mathmodule)
+; "initmath"
+
+; From python23_s.lib(md5c)
+; "_Py_MD5Final"
+; "_Py_MD5Init"
+; "_Py_MD5Update"
+
+; From python23_s.lib(md5module)
+; "initmd5"
+
+; From python23_s.lib(operator)
+; "initoperator"
+
+; From python23_s.lib(pcremodule)
+; "initpcre"
+
+; From python23_s.lib(pypcre)
+; "pcre_study"
+; "pcre_compile"
+; "pcre_exec"
+; "pcre_info"
+; "pcre_version"
+; "pcre_lcc"
+; "pcre_fcc"
+; "pcre_cbits"
+; "pcre_ctypes"
+; "pcre_malloc"
+; "pcre_free"
+
+; From python23_s.lib(_randommodule)
+; "init_random"
+
+; From python23_s.lib(regexmodule)
+; "initregex"
+
+; From python23_s.lib(regexpr)
+; "_Py_re_syntax_table"
+; "_Py_re_compile_initialize"
+; "_Py_re_compile_pattern"
+; "_Py_re_match"
+; "_Py_re_search"
+; "_Py_re_set_syntax"
+; "_Py_re_compile_fastmap"
+; "_Py_re_syntax"
+
+; From python23_s.lib(rgbimgmodule)
+; "initrgbimg"
+
+; From python23_s.lib(shamodule)
+; "initsha"
+
+; From python23_s.lib(_sre)
+; "init_sre"
+
+; From python23_s.lib(stropmodule)
+; "initstrop"
+
+; From python23_s.lib(structmodule)
+; "initstruct"
+
+; From python23_s.lib(symtablemodule)
+; "init_symtable"
+
+; From python23_s.lib(termios)
+; "inittermios"
+
+; From python23_s.lib(timemodule)
+; "inittime"
+; "inittimezone"
+
+; From python23_s.lib(timingmodule)
+; "inittiming"
+
+; From python23_s.lib(_weakref)
+; "init_weakref"
+
+; From python23_s.lib(xreadlinesmodule)
+; "initxreadlines"
+
+; From python23_s.lib(xxsubtype)
+; "initxxsubtype"
+
+; From python23_s.lib(zipimport)
+; "initzipimport"