diff --git a/test/libc/release/clang.sh b/test/libc/release/clang.sh index 898bdce39..7387ebed0 100755 --- a/test/libc/release/clang.sh +++ b/test/libc/release/clang.sh @@ -4,24 +4,24 @@ if CLANG=$(command -v clang); then mkdir -p o/$MODE/test/libc/release - $CLANG \ - -o o/$MODE/test/libc/release/smokeclang.com.dbg \ - -Os \ - -Wall \ - -Werror \ - -static \ - -fno-pie \ - -nostdlib \ - -nostdinc \ - -fuse-ld=lld \ - -mno-red-zone \ - -Wl,-T,o/$MODE/ape/ape.lds \ - -include o/cosmopolitan.h \ - test/libc/release/smoke.c \ - o/$MODE/libc/crt/crt.o \ - o/$MODE/ape/ape.o \ + $CLANG \ + -o o/$MODE/test/libc/release/smokeclang2.com.dbg \ + -Os \ + -Wall \ + -Werror \ + -static \ + -fno-pie \ + -nostdlib \ + -nostdinc \ + -fuse-ld=lld \ + -mno-red-zone \ + -Wl,-T,o/$MODE/ape/ape.lds \ + -include o/cosmopolitan.h \ + test/libc/release/smoke.c \ + o/$MODE/libc/crt/crt.o \ + o/$MODE/ape/ape.o \ o/$MODE/cosmopolitan.a || exit - o/$MODE/test/libc/release/smokeclang.com.dbg || exit + o/$MODE/test/libc/release/smokeclang2.com.dbg || exit fi touch o/$MODE/test/libc/release/clang.ok diff --git a/third_party/python/PC/python3.def b/third_party/python/PC/python3.def deleted file mode 100644 index 4fc4a6814..000000000 --- a/third_party/python/PC/python3.def +++ /dev/null @@ -1,789 +0,0 @@ -; This file specifies the import forwarding for python3.dll -; It is used when building python3dll.vcxproj -LIBRARY "python3" -EXPORTS - PyArg_Parse=python36.PyArg_Parse - PyArg_ParseTuple=python36.PyArg_ParseTuple - PyArg_ParseTupleAndKeywords=python36.PyArg_ParseTupleAndKeywords - PyArg_UnpackTuple=python36.PyArg_UnpackTuple - PyArg_VaParse=python36.PyArg_VaParse - PyArg_VaParseTupleAndKeywords=python36.PyArg_VaParseTupleAndKeywords - PyArg_ValidateKeywordArguments=python36.PyArg_ValidateKeywordArguments - PyBaseObject_Type=python36.PyBaseObject_Type DATA - PyBool_FromLong=python36.PyBool_FromLong - PyBool_Type=python36.PyBool_Type DATA - PyByteArrayIter_Type=python36.PyByteArrayIter_Type DATA - PyByteArray_AsString=python36.PyByteArray_AsString - PyByteArray_Concat=python36.PyByteArray_Concat - PyByteArray_FromObject=python36.PyByteArray_FromObject - PyByteArray_FromStringAndSize=python36.PyByteArray_FromStringAndSize - PyByteArray_Resize=python36.PyByteArray_Resize - PyByteArray_Size=python36.PyByteArray_Size - PyByteArray_Type=python36.PyByteArray_Type DATA - PyBytesIter_Type=python36.PyBytesIter_Type DATA - PyBytes_AsString=python36.PyBytes_AsString - PyBytes_AsStringAndSize=python36.PyBytes_AsStringAndSize - PyBytes_Concat=python36.PyBytes_Concat - PyBytes_ConcatAndDel=python36.PyBytes_ConcatAndDel - PyBytes_DecodeEscape=python36.PyBytes_DecodeEscape - PyBytes_FromFormat=python36.PyBytes_FromFormat - PyBytes_FromFormatV=python36.PyBytes_FromFormatV - PyBytes_FromObject=python36.PyBytes_FromObject - PyBytes_FromString=python36.PyBytes_FromString - PyBytes_FromStringAndSize=python36.PyBytes_FromStringAndSize - PyBytes_Repr=python36.PyBytes_Repr - PyBytes_Size=python36.PyBytes_Size - PyBytes_Type=python36.PyBytes_Type DATA - PyCFunction_Call=python36.PyCFunction_Call - PyCFunction_ClearFreeList=python36.PyCFunction_ClearFreeList - PyCFunction_GetFlags=python36.PyCFunction_GetFlags - PyCFunction_GetFunction=python36.PyCFunction_GetFunction - PyCFunction_GetSelf=python36.PyCFunction_GetSelf - PyCFunction_New=python36.PyCFunction_New - PyCFunction_NewEx=python36.PyCFunction_NewEx - PyCFunction_Type=python36.PyCFunction_Type DATA - PyCallIter_New=python36.PyCallIter_New - PyCallIter_Type=python36.PyCallIter_Type DATA - PyCallable_Check=python36.PyCallable_Check - PyCapsule_GetContext=python36.PyCapsule_GetContext - PyCapsule_GetDestructor=python36.PyCapsule_GetDestructor - PyCapsule_GetName=python36.PyCapsule_GetName - PyCapsule_GetPointer=python36.PyCapsule_GetPointer - PyCapsule_Import=python36.PyCapsule_Import - PyCapsule_IsValid=python36.PyCapsule_IsValid - PyCapsule_New=python36.PyCapsule_New - PyCapsule_SetContext=python36.PyCapsule_SetContext - PyCapsule_SetDestructor=python36.PyCapsule_SetDestructor - PyCapsule_SetName=python36.PyCapsule_SetName - PyCapsule_SetPointer=python36.PyCapsule_SetPointer - PyCapsule_Type=python36.PyCapsule_Type DATA - PyClassMethodDescr_Type=python36.PyClassMethodDescr_Type DATA - PyCodec_BackslashReplaceErrors=python36.PyCodec_BackslashReplaceErrors - PyCodec_Decode=python36.PyCodec_Decode - PyCodec_Decoder=python36.PyCodec_Decoder - PyCodec_Encode=python36.PyCodec_Encode - PyCodec_Encoder=python36.PyCodec_Encoder - PyCodec_IgnoreErrors=python36.PyCodec_IgnoreErrors - PyCodec_IncrementalDecoder=python36.PyCodec_IncrementalDecoder - PyCodec_IncrementalEncoder=python36.PyCodec_IncrementalEncoder - PyCodec_KnownEncoding=python36.PyCodec_KnownEncoding - PyCodec_LookupError=python36.PyCodec_LookupError - PyCodec_NameReplaceErrors=python36.PyCodec_NameReplaceErrors - PyCodec_Register=python36.PyCodec_Register - PyCodec_RegisterError=python36.PyCodec_RegisterError - PyCodec_ReplaceErrors=python36.PyCodec_ReplaceErrors - PyCodec_StreamReader=python36.PyCodec_StreamReader - PyCodec_StreamWriter=python36.PyCodec_StreamWriter - PyCodec_StrictErrors=python36.PyCodec_StrictErrors - PyCodec_XMLCharRefReplaceErrors=python36.PyCodec_XMLCharRefReplaceErrors - PyComplex_FromDoubles=python36.PyComplex_FromDoubles - PyComplex_ImagAsDouble=python36.PyComplex_ImagAsDouble - PyComplex_RealAsDouble=python36.PyComplex_RealAsDouble - PyComplex_Type=python36.PyComplex_Type DATA - PyDescr_NewClassMethod=python36.PyDescr_NewClassMethod - PyDescr_NewGetSet=python36.PyDescr_NewGetSet - PyDescr_NewMember=python36.PyDescr_NewMember - PyDescr_NewMethod=python36.PyDescr_NewMethod - PyDictItems_Type=python36.PyDictItems_Type DATA - PyDictIterItem_Type=python36.PyDictIterItem_Type DATA - PyDictIterKey_Type=python36.PyDictIterKey_Type DATA - PyDictIterValue_Type=python36.PyDictIterValue_Type DATA - PyDictKeys_Type=python36.PyDictKeys_Type DATA - PyDictProxy_New=python36.PyDictProxy_New - PyDictProxy_Type=python36.PyDictProxy_Type DATA - PyDictValues_Type=python36.PyDictValues_Type DATA - PyDict_Clear=python36.PyDict_Clear - PyDict_Contains=python36.PyDict_Contains - PyDict_Copy=python36.PyDict_Copy - PyDict_DelItem=python36.PyDict_DelItem - PyDict_DelItemString=python36.PyDict_DelItemString - PyDict_GetItem=python36.PyDict_GetItem - PyDict_GetItemString=python36.PyDict_GetItemString - PyDict_GetItemWithError=python36.PyDict_GetItemWithError - PyDict_Items=python36.PyDict_Items - PyDict_Keys=python36.PyDict_Keys - PyDict_Merge=python36.PyDict_Merge - PyDict_MergeFromSeq2=python36.PyDict_MergeFromSeq2 - PyDict_New=python36.PyDict_New - PyDict_Next=python36.PyDict_Next - PyDict_SetItem=python36.PyDict_SetItem - PyDict_SetItemString=python36.PyDict_SetItemString - PyDict_Size=python36.PyDict_Size - PyDict_Type=python36.PyDict_Type DATA - PyDict_Update=python36.PyDict_Update - PyDict_Values=python36.PyDict_Values - PyEllipsis_Type=python36.PyEllipsis_Type DATA - PyEnum_Type=python36.PyEnum_Type DATA - PyErr_BadArgument=python36.PyErr_BadArgument - PyErr_BadInternalCall=python36.PyErr_BadInternalCall - PyErr_CheckSignals=python36.PyErr_CheckSignals - PyErr_Clear=python36.PyErr_Clear - PyErr_Display=python36.PyErr_Display - PyErr_ExceptionMatches=python36.PyErr_ExceptionMatches - PyErr_Fetch=python36.PyErr_Fetch - PyErr_Format=python36.PyErr_Format - PyErr_FormatV=python36.PyErr_FormatV - PyErr_GetExcInfo=python36.PyErr_GetExcInfo - PyErr_GivenExceptionMatches=python36.PyErr_GivenExceptionMatches - PyErr_NewException=python36.PyErr_NewException - PyErr_NewExceptionWithDoc=python36.PyErr_NewExceptionWithDoc - PyErr_NoMemory=python36.PyErr_NoMemory - PyErr_NormalizeException=python36.PyErr_NormalizeException - PyErr_Occurred=python36.PyErr_Occurred - PyErr_Print=python36.PyErr_Print - PyErr_PrintEx=python36.PyErr_PrintEx - PyErr_ProgramText=python36.PyErr_ProgramText - PyErr_ResourceWarning=python36.PyErr_ResourceWarning - PyErr_Restore=python36.PyErr_Restore - PyErr_SetExcFromWindowsErr=python36.PyErr_SetExcFromWindowsErr - PyErr_SetExcFromWindowsErrWithFilename=python36.PyErr_SetExcFromWindowsErrWithFilename - PyErr_SetExcFromWindowsErrWithFilenameObject=python36.PyErr_SetExcFromWindowsErrWithFilenameObject - PyErr_SetExcFromWindowsErrWithFilenameObjects=python36.PyErr_SetExcFromWindowsErrWithFilenameObjects - PyErr_SetExcInfo=python36.PyErr_SetExcInfo - PyErr_SetFromErrno=python36.PyErr_SetFromErrno - PyErr_SetFromErrnoWithFilename=python36.PyErr_SetFromErrnoWithFilename - PyErr_SetFromErrnoWithFilenameObject=python36.PyErr_SetFromErrnoWithFilenameObject - PyErr_SetFromErrnoWithFilenameObjects=python36.PyErr_SetFromErrnoWithFilenameObjects - PyErr_SetFromWindowsErr=python36.PyErr_SetFromWindowsErr - PyErr_SetFromWindowsErrWithFilename=python36.PyErr_SetFromWindowsErrWithFilename - PyErr_SetImportError=python36.PyErr_SetImportError - PyErr_SetImportErrorSubclass=python36.PyErr_SetImportErrorSubclass - PyErr_SetInterrupt=python36.PyErr_SetInterrupt - PyErr_SetNone=python36.PyErr_SetNone - PyErr_SetObject=python36.PyErr_SetObject - PyErr_SetString=python36.PyErr_SetString - PyErr_SyntaxLocation=python36.PyErr_SyntaxLocation - PyErr_SyntaxLocationEx=python36.PyErr_SyntaxLocationEx - PyErr_WarnEx=python36.PyErr_WarnEx - PyErr_WarnExplicit=python36.PyErr_WarnExplicit - PyErr_WarnFormat=python36.PyErr_WarnFormat - PyErr_WriteUnraisable=python36.PyErr_WriteUnraisable - PyEval_AcquireLock=python36.PyEval_AcquireLock - PyEval_AcquireThread=python36.PyEval_AcquireThread - PyEval_CallFunction=python36.PyEval_CallFunction - PyEval_CallMethod=python36.PyEval_CallMethod - PyEval_CallObjectWithKeywords=python36.PyEval_CallObjectWithKeywords - PyEval_EvalCode=python36.PyEval_EvalCode - PyEval_EvalCodeEx=python36.PyEval_EvalCodeEx - PyEval_EvalFrame=python36.PyEval_EvalFrame - PyEval_EvalFrameEx=python36.PyEval_EvalFrameEx - PyEval_GetBuiltins=python36.PyEval_GetBuiltins - PyEval_GetCallStats=python36.PyEval_GetCallStats - PyEval_GetFrame=python36.PyEval_GetFrame - PyEval_GetFuncDesc=python36.PyEval_GetFuncDesc - PyEval_GetFuncName=python36.PyEval_GetFuncName - PyEval_GetGlobals=python36.PyEval_GetGlobals - PyEval_GetLocals=python36.PyEval_GetLocals - PyEval_InitThreads=python36.PyEval_InitThreads - PyEval_ReInitThreads=python36.PyEval_ReInitThreads - PyEval_ReleaseLock=python36.PyEval_ReleaseLock - PyEval_ReleaseThread=python36.PyEval_ReleaseThread - PyEval_RestoreThread=python36.PyEval_RestoreThread - PyEval_SaveThread=python36.PyEval_SaveThread - PyEval_ThreadsInitialized=python36.PyEval_ThreadsInitialized - PyExc_ArithmeticError=python36.PyExc_ArithmeticError DATA - PyExc_AssertionError=python36.PyExc_AssertionError DATA - PyExc_AttributeError=python36.PyExc_AttributeError DATA - PyExc_BaseException=python36.PyExc_BaseException DATA - PyExc_BlockingIOError=python36.PyExc_BlockingIOError DATA - PyExc_BrokenPipeError=python36.PyExc_BrokenPipeError DATA - PyExc_BufferError=python36.PyExc_BufferError DATA - PyExc_BytesWarning=python36.PyExc_BytesWarning DATA - PyExc_ChildProcessError=python36.PyExc_ChildProcessError DATA - PyExc_ConnectionAbortedError=python36.PyExc_ConnectionAbortedError DATA - PyExc_ConnectionError=python36.PyExc_ConnectionError DATA - PyExc_ConnectionRefusedError=python36.PyExc_ConnectionRefusedError DATA - PyExc_ConnectionResetError=python36.PyExc_ConnectionResetError DATA - PyExc_DeprecationWarning=python36.PyExc_DeprecationWarning DATA - PyExc_EOFError=python36.PyExc_EOFError DATA - PyExc_EnvironmentError=python36.PyExc_EnvironmentError DATA - PyExc_Exception=python36.PyExc_Exception DATA - PyExc_FileExistsError=python36.PyExc_FileExistsError DATA - PyExc_FileNotFoundError=python36.PyExc_FileNotFoundError DATA - PyExc_FloatingPointError=python36.PyExc_FloatingPointError DATA - PyExc_FutureWarning=python36.PyExc_FutureWarning DATA - PyExc_GeneratorExit=python36.PyExc_GeneratorExit DATA - PyExc_IOError=python36.PyExc_IOError DATA - PyExc_ImportError=python36.PyExc_ImportError DATA - PyExc_ImportWarning=python36.PyExc_ImportWarning DATA - PyExc_IndentationError=python36.PyExc_IndentationError DATA - PyExc_IndexError=python36.PyExc_IndexError DATA - PyExc_InterruptedError=python36.PyExc_InterruptedError DATA - PyExc_IsADirectoryError=python36.PyExc_IsADirectoryError DATA - PyExc_KeyError=python36.PyExc_KeyError DATA - PyExc_KeyboardInterrupt=python36.PyExc_KeyboardInterrupt DATA - PyExc_LookupError=python36.PyExc_LookupError DATA - PyExc_MemoryError=python36.PyExc_MemoryError DATA - PyExc_ModuleNotFoundError=python36.PyExc_ModuleNotFoundError DATA - PyExc_NameError=python36.PyExc_NameError DATA - PyExc_NotADirectoryError=python36.PyExc_NotADirectoryError DATA - PyExc_NotImplementedError=python36.PyExc_NotImplementedError DATA - PyExc_OSError=python36.PyExc_OSError DATA - PyExc_OverflowError=python36.PyExc_OverflowError DATA - PyExc_PendingDeprecationWarning=python36.PyExc_PendingDeprecationWarning DATA - PyExc_PermissionError=python36.PyExc_PermissionError DATA - PyExc_ProcessLookupError=python36.PyExc_ProcessLookupError DATA - PyExc_RecursionError=python36.PyExc_RecursionError DATA - PyExc_ReferenceError=python36.PyExc_ReferenceError DATA - PyExc_ResourceWarning=python36.PyExc_ResourceWarning DATA - PyExc_RuntimeError=python36.PyExc_RuntimeError DATA - PyExc_RuntimeWarning=python36.PyExc_RuntimeWarning DATA - PyExc_StopAsyncIteration=python36.PyExc_StopAsyncIteration DATA - PyExc_StopIteration=python36.PyExc_StopIteration DATA - PyExc_SyntaxError=python36.PyExc_SyntaxError DATA - PyExc_SyntaxWarning=python36.PyExc_SyntaxWarning DATA - PyExc_SystemError=python36.PyExc_SystemError DATA - PyExc_SystemExit=python36.PyExc_SystemExit DATA - PyExc_TabError=python36.PyExc_TabError DATA - PyExc_TimeoutError=python36.PyExc_TimeoutError DATA - PyExc_TypeError=python36.PyExc_TypeError DATA - PyExc_UnboundLocalError=python36.PyExc_UnboundLocalError DATA - PyExc_UnicodeDecodeError=python36.PyExc_UnicodeDecodeError DATA - PyExc_UnicodeEncodeError=python36.PyExc_UnicodeEncodeError DATA - PyExc_UnicodeError=python36.PyExc_UnicodeError DATA - PyExc_UnicodeTranslateError=python36.PyExc_UnicodeTranslateError DATA - PyExc_UnicodeWarning=python36.PyExc_UnicodeWarning DATA - PyExc_UserWarning=python36.PyExc_UserWarning DATA - PyExc_ValueError=python36.PyExc_ValueError DATA - PyExc_Warning=python36.PyExc_Warning DATA - PyExc_WindowsError=python36.PyExc_WindowsError DATA - PyExc_ZeroDivisionError=python36.PyExc_ZeroDivisionError DATA - PyException_GetCause=python36.PyException_GetCause - PyException_GetContext=python36.PyException_GetContext - PyException_GetTraceback=python36.PyException_GetTraceback - PyException_SetCause=python36.PyException_SetCause - PyException_SetContext=python36.PyException_SetContext - PyException_SetTraceback=python36.PyException_SetTraceback - PyFile_FromFd=python36.PyFile_FromFd - PyFile_GetLine=python36.PyFile_GetLine - PyFile_WriteObject=python36.PyFile_WriteObject - PyFile_WriteString=python36.PyFile_WriteString - PyFilter_Type=python36.PyFilter_Type DATA - PyFloat_AsDouble=python36.PyFloat_AsDouble - PyFloat_FromDouble=python36.PyFloat_FromDouble - PyFloat_FromString=python36.PyFloat_FromString - PyFloat_GetInfo=python36.PyFloat_GetInfo - PyFloat_GetMax=python36.PyFloat_GetMax - PyFloat_GetMin=python36.PyFloat_GetMin - PyFloat_Type=python36.PyFloat_Type DATA - PyFrozenSet_New=python36.PyFrozenSet_New - PyFrozenSet_Type=python36.PyFrozenSet_Type DATA - PyGC_Collect=python36.PyGC_Collect - PyGILState_Ensure=python36.PyGILState_Ensure - PyGILState_GetThisThreadState=python36.PyGILState_GetThisThreadState - PyGILState_Release=python36.PyGILState_Release - PyGetSetDescr_Type=python36.PyGetSetDescr_Type DATA - PyImport_AddModule=python36.PyImport_AddModule - PyImport_AddModuleObject=python36.PyImport_AddModuleObject - PyImport_AppendInittab=python36.PyImport_AppendInittab - PyImport_Cleanup=python36.PyImport_Cleanup - PyImport_ExecCodeModule=python36.PyImport_ExecCodeModule - PyImport_ExecCodeModuleEx=python36.PyImport_ExecCodeModuleEx - PyImport_ExecCodeModuleObject=python36.PyImport_ExecCodeModuleObject - PyImport_ExecCodeModuleWithPathnames=python36.PyImport_ExecCodeModuleWithPathnames - PyImport_GetImporter=python36.PyImport_GetImporter - PyImport_GetMagicNumber=python36.PyImport_GetMagicNumber - PyImport_GetMagicTag=python36.PyImport_GetMagicTag - PyImport_GetModuleDict=python36.PyImport_GetModuleDict - PyImport_Import=python36.PyImport_Import - PyImport_ImportFrozenModule=python36.PyImport_ImportFrozenModule - PyImport_ImportFrozenModuleObject=python36.PyImport_ImportFrozenModuleObject - PyImport_ImportModule=python36.PyImport_ImportModule - PyImport_ImportModuleLevel=python36.PyImport_ImportModuleLevel - PyImport_ImportModuleLevelObject=python36.PyImport_ImportModuleLevelObject - PyImport_ImportModuleNoBlock=python36.PyImport_ImportModuleNoBlock - PyImport_ReloadModule=python36.PyImport_ReloadModule - PyInterpreterState_Clear=python36.PyInterpreterState_Clear - PyInterpreterState_Delete=python36.PyInterpreterState_Delete - PyInterpreterState_New=python36.PyInterpreterState_New - PyIter_Next=python36.PyIter_Next - PyListIter_Type=python36.PyListIter_Type DATA - PyListRevIter_Type=python36.PyListRevIter_Type DATA - PyList_Append=python36.PyList_Append - PyList_AsTuple=python36.PyList_AsTuple - PyList_GetItem=python36.PyList_GetItem - PyList_GetSlice=python36.PyList_GetSlice - PyList_Insert=python36.PyList_Insert - PyList_New=python36.PyList_New - PyList_Reverse=python36.PyList_Reverse - PyList_SetItem=python36.PyList_SetItem - PyList_SetSlice=python36.PyList_SetSlice - PyList_Size=python36.PyList_Size - PyList_Sort=python36.PyList_Sort - PyList_Type=python36.PyList_Type DATA - PyLongRangeIter_Type=python36.PyLongRangeIter_Type DATA - PyLong_AsDouble=python36.PyLong_AsDouble - PyLong_AsLong=python36.PyLong_AsLong - PyLong_AsLongAndOverflow=python36.PyLong_AsLongAndOverflow - PyLong_AsLongLong=python36.PyLong_AsLongLong - PyLong_AsLongLongAndOverflow=python36.PyLong_AsLongLongAndOverflow - PyLong_AsSize_t=python36.PyLong_AsSize_t - PyLong_AsSsize_t=python36.PyLong_AsSsize_t - PyLong_AsUnsignedLong=python36.PyLong_AsUnsignedLong - PyLong_AsUnsignedLongLong=python36.PyLong_AsUnsignedLongLong - PyLong_AsUnsignedLongLongMask=python36.PyLong_AsUnsignedLongLongMask - PyLong_AsUnsignedLongMask=python36.PyLong_AsUnsignedLongMask - PyLong_AsVoidPtr=python36.PyLong_AsVoidPtr - PyLong_FromDouble=python36.PyLong_FromDouble - PyLong_FromLong=python36.PyLong_FromLong - PyLong_FromLongLong=python36.PyLong_FromLongLong - PyLong_FromSize_t=python36.PyLong_FromSize_t - PyLong_FromSsize_t=python36.PyLong_FromSsize_t - PyLong_FromString=python36.PyLong_FromString - PyLong_FromUnsignedLong=python36.PyLong_FromUnsignedLong - PyLong_FromUnsignedLongLong=python36.PyLong_FromUnsignedLongLong - PyLong_FromVoidPtr=python36.PyLong_FromVoidPtr - PyLong_GetInfo=python36.PyLong_GetInfo - PyLong_Type=python36.PyLong_Type DATA - PyMap_Type=python36.PyMap_Type DATA - PyMapping_Check=python36.PyMapping_Check - PyMapping_GetItemString=python36.PyMapping_GetItemString - PyMapping_HasKey=python36.PyMapping_HasKey - PyMapping_HasKeyString=python36.PyMapping_HasKeyString - PyMapping_Items=python36.PyMapping_Items - PyMapping_Keys=python36.PyMapping_Keys - PyMapping_Length=python36.PyMapping_Length - PyMapping_SetItemString=python36.PyMapping_SetItemString - PyMapping_Size=python36.PyMapping_Size - PyMapping_Values=python36.PyMapping_Values - PyMem_Calloc=python36.PyMem_Calloc - PyMem_Free=python36.PyMem_Free - PyMem_Malloc=python36.PyMem_Malloc - PyMem_Realloc=python36.PyMem_Realloc - PyMemberDescr_Type=python36.PyMemberDescr_Type DATA - PyMemoryView_FromMemory=python36.PyMemoryView_FromMemory - PyMemoryView_FromObject=python36.PyMemoryView_FromObject - PyMemoryView_GetContiguous=python36.PyMemoryView_GetContiguous - PyMemoryView_Type=python36.PyMemoryView_Type DATA - PyMethodDescr_Type=python36.PyMethodDescr_Type DATA - PyModuleDef_Init=python36.PyModuleDef_Init - PyModuleDef_Type=python36.PyModuleDef_Type DATA - PyModule_AddFunctions=python36.PyModule_AddFunctions - PyModule_AddIntConstant=python36.PyModule_AddIntConstant - PyModule_AddObject=python36.PyModule_AddObject - PyModule_AddStringConstant=python36.PyModule_AddStringConstant - PyModule_Create2=python36.PyModule_Create2 - PyModule_ExecDef=python36.PyModule_ExecDef - PyModule_FromDefAndSpec2=python36.PyModule_FromDefAndSpec2 - PyModule_GetDef=python36.PyModule_GetDef - PyModule_GetDict=python36.PyModule_GetDict - PyModule_GetFilename=python36.PyModule_GetFilename - PyModule_GetFilenameObject=python36.PyModule_GetFilenameObject - PyModule_GetName=python36.PyModule_GetName - PyModule_GetNameObject=python36.PyModule_GetNameObject - PyModule_GetState=python36.PyModule_GetState - PyModule_New=python36.PyModule_New - PyModule_NewObject=python36.PyModule_NewObject - PyModule_SetDocString=python36.PyModule_SetDocString - PyModule_Type=python36.PyModule_Type DATA - PyNullImporter_Type=python36.PyNullImporter_Type DATA - PyNumber_Absolute=python36.PyNumber_Absolute - PyNumber_Add=python36.PyNumber_Add - PyNumber_And=python36.PyNumber_And - PyNumber_AsSsize_t=python36.PyNumber_AsSsize_t - PyNumber_Check=python36.PyNumber_Check - PyNumber_Divmod=python36.PyNumber_Divmod - PyNumber_Float=python36.PyNumber_Float - PyNumber_FloorDivide=python36.PyNumber_FloorDivide - PyNumber_InPlaceAdd=python36.PyNumber_InPlaceAdd - PyNumber_InPlaceAnd=python36.PyNumber_InPlaceAnd - PyNumber_InPlaceFloorDivide=python36.PyNumber_InPlaceFloorDivide - PyNumber_InPlaceLshift=python36.PyNumber_InPlaceLshift - PyNumber_InPlaceMatrixMultiply=python36.PyNumber_InPlaceMatrixMultiply - PyNumber_InPlaceMultiply=python36.PyNumber_InPlaceMultiply - PyNumber_InPlaceOr=python36.PyNumber_InPlaceOr - PyNumber_InPlacePower=python36.PyNumber_InPlacePower - PyNumber_InPlaceRemainder=python36.PyNumber_InPlaceRemainder - PyNumber_InPlaceRshift=python36.PyNumber_InPlaceRshift - PyNumber_InPlaceSubtract=python36.PyNumber_InPlaceSubtract - PyNumber_InPlaceTrueDivide=python36.PyNumber_InPlaceTrueDivide - PyNumber_InPlaceXor=python36.PyNumber_InPlaceXor - PyNumber_Index=python36.PyNumber_Index - PyNumber_Invert=python36.PyNumber_Invert - PyNumber_Long=python36.PyNumber_Long - PyNumber_Lshift=python36.PyNumber_Lshift - PyNumber_MatrixMultiply=python36.PyNumber_MatrixMultiply - PyNumber_Multiply=python36.PyNumber_Multiply - PyNumber_Negative=python36.PyNumber_Negative - PyNumber_Or=python36.PyNumber_Or - PyNumber_Positive=python36.PyNumber_Positive - PyNumber_Power=python36.PyNumber_Power - PyNumber_Remainder=python36.PyNumber_Remainder - PyNumber_Rshift=python36.PyNumber_Rshift - PyNumber_Subtract=python36.PyNumber_Subtract - PyNumber_ToBase=python36.PyNumber_ToBase - PyNumber_TrueDivide=python36.PyNumber_TrueDivide - PyNumber_Xor=python36.PyNumber_Xor - PyODictItems_Type=python36.PyODictItems_Type DATA - PyODictIter_Type=python36.PyODictIter_Type DATA - PyODictKeys_Type=python36.PyODictKeys_Type DATA - PyODictValues_Type=python36.PyODictValues_Type DATA - PyODict_DelItem=python36.PyODict_DelItem - PyODict_New=python36.PyODict_New - PyODict_SetItem=python36.PyODict_SetItem - PyODict_Type=python36.PyODict_Type DATA - PyOS_AfterFork=python36.PyOS_AfterFork - PyOS_CheckStack=python36.PyOS_CheckStack - PyOS_FSPath=python36.PyOS_FSPath - PyOS_InitInterrupts=python36.PyOS_InitInterrupts - PyOS_InputHook=python36.PyOS_InputHook DATA - PyOS_InterruptOccurred=python36.PyOS_InterruptOccurred - PyOS_ReadlineFunctionPointer=python36.PyOS_ReadlineFunctionPointer DATA - PyOS_double_to_string=python36.PyOS_double_to_string - PyOS_getsig=python36.PyOS_getsig - PyOS_mystricmp=python36.PyOS_mystricmp - PyOS_mystrnicmp=python36.PyOS_mystrnicmp - PyOS_setsig=python36.PyOS_setsig - PyOS_snprintf=python36.PyOS_snprintf - PyOS_string_to_double=python36.PyOS_string_to_double - PyOS_strtol=python36.PyOS_strtol - PyOS_strtoul=python36.PyOS_strtoul - PyOS_vsnprintf=python36.PyOS_vsnprintf - PyObject_ASCII=python36.PyObject_ASCII - PyObject_AsCharBuffer=python36.PyObject_AsCharBuffer - PyObject_AsFileDescriptor=python36.PyObject_AsFileDescriptor - PyObject_AsReadBuffer=python36.PyObject_AsReadBuffer - PyObject_AsWriteBuffer=python36.PyObject_AsWriteBuffer - PyObject_Bytes=python36.PyObject_Bytes - PyObject_Call=python36.PyObject_Call - PyObject_CallFunction=python36.PyObject_CallFunction - PyObject_CallFunctionObjArgs=python36.PyObject_CallFunctionObjArgs - PyObject_CallMethod=python36.PyObject_CallMethod - PyObject_CallMethodObjArgs=python36.PyObject_CallMethodObjArgs - PyObject_CallObject=python36.PyObject_CallObject - PyObject_Calloc=python36.PyObject_Calloc - PyObject_CheckReadBuffer=python36.PyObject_CheckReadBuffer - PyObject_ClearWeakRefs=python36.PyObject_ClearWeakRefs - PyObject_DelItem=python36.PyObject_DelItem - PyObject_DelItemString=python36.PyObject_DelItemString - PyObject_Dir=python36.PyObject_Dir - PyObject_Format=python36.PyObject_Format - PyObject_Free=python36.PyObject_Free - PyObject_GC_Del=python36.PyObject_GC_Del - PyObject_GC_Track=python36.PyObject_GC_Track - PyObject_GC_UnTrack=python36.PyObject_GC_UnTrack - PyObject_GenericGetAttr=python36.PyObject_GenericGetAttr - PyObject_GenericSetAttr=python36.PyObject_GenericSetAttr - PyObject_GenericSetDict=python36.PyObject_GenericSetDict - PyObject_GetAttr=python36.PyObject_GetAttr - PyObject_GetAttrString=python36.PyObject_GetAttrString - PyObject_GetItem=python36.PyObject_GetItem - PyObject_GetIter=python36.PyObject_GetIter - PyObject_HasAttr=python36.PyObject_HasAttr - PyObject_HasAttrString=python36.PyObject_HasAttrString - PyObject_Hash=python36.PyObject_Hash - PyObject_HashNotImplemented=python36.PyObject_HashNotImplemented - PyObject_Init=python36.PyObject_Init - PyObject_InitVar=python36.PyObject_InitVar - PyObject_IsInstance=python36.PyObject_IsInstance - PyObject_IsSubclass=python36.PyObject_IsSubclass - PyObject_IsTrue=python36.PyObject_IsTrue - PyObject_Length=python36.PyObject_Length - PyObject_Malloc=python36.PyObject_Malloc - PyObject_Not=python36.PyObject_Not - PyObject_Realloc=python36.PyObject_Realloc - PyObject_Repr=python36.PyObject_Repr - PyObject_RichCompare=python36.PyObject_RichCompare - PyObject_RichCompareBool=python36.PyObject_RichCompareBool - PyObject_SelfIter=python36.PyObject_SelfIter - PyObject_SetAttr=python36.PyObject_SetAttr - PyObject_SetAttrString=python36.PyObject_SetAttrString - PyObject_SetItem=python36.PyObject_SetItem - PyObject_Size=python36.PyObject_Size - PyObject_Str=python36.PyObject_Str - PyObject_Type=python36.PyObject_Type - PyParser_SimpleParseFileFlags=python36.PyParser_SimpleParseFileFlags - PyParser_SimpleParseStringFlags=python36.PyParser_SimpleParseStringFlags - PyParser_SimpleParseStringFlagsFilename=python36.PyParser_SimpleParseStringFlagsFilename - PyProperty_Type=python36.PyProperty_Type DATA - PyRangeIter_Type=python36.PyRangeIter_Type DATA - PyRange_Type=python36.PyRange_Type DATA - PyReversed_Type=python36.PyReversed_Type DATA - PySeqIter_New=python36.PySeqIter_New - PySeqIter_Type=python36.PySeqIter_Type DATA - PySequence_Check=python36.PySequence_Check - PySequence_Concat=python36.PySequence_Concat - PySequence_Contains=python36.PySequence_Contains - PySequence_Count=python36.PySequence_Count - PySequence_DelItem=python36.PySequence_DelItem - PySequence_DelSlice=python36.PySequence_DelSlice - PySequence_Fast=python36.PySequence_Fast - PySequence_GetItem=python36.PySequence_GetItem - PySequence_GetSlice=python36.PySequence_GetSlice - PySequence_In=python36.PySequence_In - PySequence_InPlaceConcat=python36.PySequence_InPlaceConcat - PySequence_InPlaceRepeat=python36.PySequence_InPlaceRepeat - PySequence_Index=python36.PySequence_Index - PySequence_Length=python36.PySequence_Length - PySequence_List=python36.PySequence_List - PySequence_Repeat=python36.PySequence_Repeat - PySequence_SetItem=python36.PySequence_SetItem - PySequence_SetSlice=python36.PySequence_SetSlice - PySequence_Size=python36.PySequence_Size - PySequence_Tuple=python36.PySequence_Tuple - PySetIter_Type=python36.PySetIter_Type DATA - PySet_Add=python36.PySet_Add - PySet_Clear=python36.PySet_Clear - PySet_Contains=python36.PySet_Contains - PySet_Discard=python36.PySet_Discard - PySet_New=python36.PySet_New - PySet_Pop=python36.PySet_Pop - PySet_Size=python36.PySet_Size - PySet_Type=python36.PySet_Type DATA - PySlice_AdjustIndices=python36.PySlice_AdjustIndices - PySlice_GetIndices=python36.PySlice_GetIndices - PySlice_GetIndicesEx=python36.PySlice_GetIndicesEx - PySlice_New=python36.PySlice_New - PySlice_Type=python36.PySlice_Type DATA - PySlice_Unpack=python36.PySlice_Unpack - PySortWrapper_Type=python36.PySortWrapper_Type DATA - PyState_AddModule=python36.PyState_AddModule - PyState_FindModule=python36.PyState_FindModule - PyState_RemoveModule=python36.PyState_RemoveModule - PyStructSequence_GetItem=python36.PyStructSequence_GetItem - PyStructSequence_New=python36.PyStructSequence_New - PyStructSequence_NewType=python36.PyStructSequence_NewType - PyStructSequence_SetItem=python36.PyStructSequence_SetItem - PySuper_Type=python36.PySuper_Type DATA - PySys_AddWarnOption=python36.PySys_AddWarnOption - PySys_AddWarnOptionUnicode=python36.PySys_AddWarnOptionUnicode - PySys_AddXOption=python36.PySys_AddXOption - PySys_FormatStderr=python36.PySys_FormatStderr - PySys_FormatStdout=python36.PySys_FormatStdout - PySys_GetObject=python36.PySys_GetObject - PySys_GetXOptions=python36.PySys_GetXOptions - PySys_HasWarnOptions=python36.PySys_HasWarnOptions - PySys_ResetWarnOptions=python36.PySys_ResetWarnOptions - PySys_SetArgv=python36.PySys_SetArgv - PySys_SetArgvEx=python36.PySys_SetArgvEx - PySys_SetObject=python36.PySys_SetObject - PySys_SetPath=python36.PySys_SetPath - PySys_WriteStderr=python36.PySys_WriteStderr - PySys_WriteStdout=python36.PySys_WriteStdout - PyThreadState_Clear=python36.PyThreadState_Clear - PyThreadState_Delete=python36.PyThreadState_Delete - PyThreadState_DeleteCurrent=python36.PyThreadState_DeleteCurrent - PyThreadState_Get=python36.PyThreadState_Get - PyThreadState_GetDict=python36.PyThreadState_GetDict - PyThreadState_New=python36.PyThreadState_New - PyThreadState_SetAsyncExc=python36.PyThreadState_SetAsyncExc - PyThreadState_Swap=python36.PyThreadState_Swap - PyTraceBack_Here=python36.PyTraceBack_Here - PyTraceBack_Print=python36.PyTraceBack_Print - PyTraceBack_Type=python36.PyTraceBack_Type DATA - PyTupleIter_Type=python36.PyTupleIter_Type DATA - PyTuple_ClearFreeList=python36.PyTuple_ClearFreeList - PyTuple_GetItem=python36.PyTuple_GetItem - PyTuple_GetSlice=python36.PyTuple_GetSlice - PyTuple_New=python36.PyTuple_New - PyTuple_Pack=python36.PyTuple_Pack - PyTuple_SetItem=python36.PyTuple_SetItem - PyTuple_Size=python36.PyTuple_Size - PyTuple_Type=python36.PyTuple_Type DATA - PyType_ClearCache=python36.PyType_ClearCache - PyType_FromSpec=python36.PyType_FromSpec - PyType_FromSpecWithBases=python36.PyType_FromSpecWithBases - PyType_GenericAlloc=python36.PyType_GenericAlloc - PyType_GenericNew=python36.PyType_GenericNew - PyType_GetFlags=python36.PyType_GetFlags - PyType_GetSlot=python36.PyType_GetSlot - PyType_IsSubtype=python36.PyType_IsSubtype - PyType_Modified=python36.PyType_Modified - PyType_Ready=python36.PyType_Ready - PyType_Type=python36.PyType_Type DATA - PyUnicodeDecodeError_Create=python36.PyUnicodeDecodeError_Create - PyUnicodeDecodeError_GetEncoding=python36.PyUnicodeDecodeError_GetEncoding - PyUnicodeDecodeError_GetEnd=python36.PyUnicodeDecodeError_GetEnd - PyUnicodeDecodeError_GetObject=python36.PyUnicodeDecodeError_GetObject - PyUnicodeDecodeError_GetReason=python36.PyUnicodeDecodeError_GetReason - PyUnicodeDecodeError_GetStart=python36.PyUnicodeDecodeError_GetStart - PyUnicodeDecodeError_SetEnd=python36.PyUnicodeDecodeError_SetEnd - PyUnicodeDecodeError_SetReason=python36.PyUnicodeDecodeError_SetReason - PyUnicodeDecodeError_SetStart=python36.PyUnicodeDecodeError_SetStart - PyUnicodeEncodeError_GetEncoding=python36.PyUnicodeEncodeError_GetEncoding - PyUnicodeEncodeError_GetEnd=python36.PyUnicodeEncodeError_GetEnd - PyUnicodeEncodeError_GetObject=python36.PyUnicodeEncodeError_GetObject - PyUnicodeEncodeError_GetReason=python36.PyUnicodeEncodeError_GetReason - PyUnicodeEncodeError_GetStart=python36.PyUnicodeEncodeError_GetStart - PyUnicodeEncodeError_SetEnd=python36.PyUnicodeEncodeError_SetEnd - PyUnicodeEncodeError_SetReason=python36.PyUnicodeEncodeError_SetReason - PyUnicodeEncodeError_SetStart=python36.PyUnicodeEncodeError_SetStart - PyUnicodeIter_Type=python36.PyUnicodeIter_Type DATA - PyUnicodeTranslateError_GetEnd=python36.PyUnicodeTranslateError_GetEnd - PyUnicodeTranslateError_GetObject=python36.PyUnicodeTranslateError_GetObject - PyUnicodeTranslateError_GetReason=python36.PyUnicodeTranslateError_GetReason - PyUnicodeTranslateError_GetStart=python36.PyUnicodeTranslateError_GetStart - PyUnicodeTranslateError_SetEnd=python36.PyUnicodeTranslateError_SetEnd - PyUnicodeTranslateError_SetReason=python36.PyUnicodeTranslateError_SetReason - PyUnicodeTranslateError_SetStart=python36.PyUnicodeTranslateError_SetStart - PyUnicode_Append=python36.PyUnicode_Append - PyUnicode_AppendAndDel=python36.PyUnicode_AppendAndDel - PyUnicode_AsASCIIString=python36.PyUnicode_AsASCIIString - PyUnicode_AsCharmapString=python36.PyUnicode_AsCharmapString - PyUnicode_AsDecodedObject=python36.PyUnicode_AsDecodedObject - PyUnicode_AsDecodedUnicode=python36.PyUnicode_AsDecodedUnicode - PyUnicode_AsEncodedObject=python36.PyUnicode_AsEncodedObject - PyUnicode_AsEncodedString=python36.PyUnicode_AsEncodedString - PyUnicode_AsEncodedUnicode=python36.PyUnicode_AsEncodedUnicode - PyUnicode_AsLatin1String=python36.PyUnicode_AsLatin1String - PyUnicode_AsMBCSString=python36.PyUnicode_AsMBCSString - PyUnicode_AsRawUnicodeEscapeString=python36.PyUnicode_AsRawUnicodeEscapeString - PyUnicode_AsUCS4=python36.PyUnicode_AsUCS4 - PyUnicode_AsUCS4Copy=python36.PyUnicode_AsUCS4Copy - PyUnicode_AsUTF16String=python36.PyUnicode_AsUTF16String - PyUnicode_AsUTF32String=python36.PyUnicode_AsUTF32String - PyUnicode_AsUTF8String=python36.PyUnicode_AsUTF8String - PyUnicode_AsUnicodeEscapeString=python36.PyUnicode_AsUnicodeEscapeString - PyUnicode_AsWideChar=python36.PyUnicode_AsWideChar - PyUnicode_AsWideCharString=python36.PyUnicode_AsWideCharString - PyUnicode_BuildEncodingMap=python36.PyUnicode_BuildEncodingMap - PyUnicode_ClearFreeList=python36.PyUnicode_ClearFreeList - PyUnicode_Compare=python36.PyUnicode_Compare - PyUnicode_CompareWithASCIIString=python36.PyUnicode_CompareWithASCIIString - PyUnicode_Concat=python36.PyUnicode_Concat - PyUnicode_Contains=python36.PyUnicode_Contains - PyUnicode_Count=python36.PyUnicode_Count - PyUnicode_Decode=python36.PyUnicode_Decode - PyUnicode_DecodeASCII=python36.PyUnicode_DecodeASCII - PyUnicode_DecodeCharmap=python36.PyUnicode_DecodeCharmap - PyUnicode_DecodeCodePageStateful=python36.PyUnicode_DecodeCodePageStateful - PyUnicode_DecodeFSDefault=python36.PyUnicode_DecodeFSDefault - PyUnicode_DecodeFSDefaultAndSize=python36.PyUnicode_DecodeFSDefaultAndSize - PyUnicode_DecodeLatin1=python36.PyUnicode_DecodeLatin1 - PyUnicode_DecodeLocale=python36.PyUnicode_DecodeLocale - PyUnicode_DecodeLocaleAndSize=python36.PyUnicode_DecodeLocaleAndSize - PyUnicode_DecodeMBCS=python36.PyUnicode_DecodeMBCS - PyUnicode_DecodeMBCSStateful=python36.PyUnicode_DecodeMBCSStateful - PyUnicode_DecodeRawUnicodeEscape=python36.PyUnicode_DecodeRawUnicodeEscape - PyUnicode_DecodeUTF16=python36.PyUnicode_DecodeUTF16 - PyUnicode_DecodeUTF16Stateful=python36.PyUnicode_DecodeUTF16Stateful - PyUnicode_DecodeUTF32=python36.PyUnicode_DecodeUTF32 - PyUnicode_DecodeUTF32Stateful=python36.PyUnicode_DecodeUTF32Stateful - PyUnicode_DecodeUTF7=python36.PyUnicode_DecodeUTF7 - PyUnicode_DecodeUTF7Stateful=python36.PyUnicode_DecodeUTF7Stateful - PyUnicode_DecodeUTF8=python36.PyUnicode_DecodeUTF8 - PyUnicode_DecodeUTF8Stateful=python36.PyUnicode_DecodeUTF8Stateful - PyUnicode_DecodeUnicodeEscape=python36.PyUnicode_DecodeUnicodeEscape - PyUnicode_EncodeCodePage=python36.PyUnicode_EncodeCodePage - PyUnicode_EncodeFSDefault=python36.PyUnicode_EncodeFSDefault - PyUnicode_EncodeLocale=python36.PyUnicode_EncodeLocale - PyUnicode_FSConverter=python36.PyUnicode_FSConverter - PyUnicode_FSDecoder=python36.PyUnicode_FSDecoder - PyUnicode_Find=python36.PyUnicode_Find - PyUnicode_FindChar=python36.PyUnicode_FindChar - PyUnicode_Format=python36.PyUnicode_Format - PyUnicode_FromEncodedObject=python36.PyUnicode_FromEncodedObject - PyUnicode_FromFormat=python36.PyUnicode_FromFormat - PyUnicode_FromFormatV=python36.PyUnicode_FromFormatV - PyUnicode_FromObject=python36.PyUnicode_FromObject - PyUnicode_FromOrdinal=python36.PyUnicode_FromOrdinal - PyUnicode_FromString=python36.PyUnicode_FromString - PyUnicode_FromStringAndSize=python36.PyUnicode_FromStringAndSize - PyUnicode_FromWideChar=python36.PyUnicode_FromWideChar - PyUnicode_GetDefaultEncoding=python36.PyUnicode_GetDefaultEncoding - PyUnicode_GetLength=python36.PyUnicode_GetLength - PyUnicode_GetSize=python36.PyUnicode_GetSize - PyUnicode_InternFromString=python36.PyUnicode_InternFromString - PyUnicode_InternImmortal=python36.PyUnicode_InternImmortal - PyUnicode_InternInPlace=python36.PyUnicode_InternInPlace - PyUnicode_IsIdentifier=python36.PyUnicode_IsIdentifier - PyUnicode_Join=python36.PyUnicode_Join - PyUnicode_Partition=python36.PyUnicode_Partition - PyUnicode_RPartition=python36.PyUnicode_RPartition - PyUnicode_RSplit=python36.PyUnicode_RSplit - PyUnicode_ReadChar=python36.PyUnicode_ReadChar - PyUnicode_Replace=python36.PyUnicode_Replace - PyUnicode_Resize=python36.PyUnicode_Resize - PyUnicode_RichCompare=python36.PyUnicode_RichCompare - PyUnicode_Split=python36.PyUnicode_Split - PyUnicode_Splitlines=python36.PyUnicode_Splitlines - PyUnicode_Substring=python36.PyUnicode_Substring - PyUnicode_Tailmatch=python36.PyUnicode_Tailmatch - PyUnicode_Translate=python36.PyUnicode_Translate - PyUnicode_Type=python36.PyUnicode_Type DATA - PyUnicode_WriteChar=python36.PyUnicode_WriteChar - PyWeakref_GetObject=python36.PyWeakref_GetObject - PyWeakref_NewProxy=python36.PyWeakref_NewProxy - PyWeakref_NewRef=python36.PyWeakref_NewRef - PyWrapperDescr_Type=python36.PyWrapperDescr_Type DATA - PyWrapper_New=python36.PyWrapper_New - PyZip_Type=python36.PyZip_Type DATA - Py_AddPendingCall=python36.Py_AddPendingCall - Py_AtExit=python36.Py_AtExit - Py_BuildValue=python36.Py_BuildValue - Py_CompileString=python36.Py_CompileString - Py_DecRef=python36.Py_DecRef - Py_DecodeLocale=python36.Py_DecodeLocale - Py_EncodeLocale=python36.Py_EncodeLocale - Py_EndInterpreter=python36.Py_EndInterpreter - Py_Exit=python36.Py_Exit - Py_FatalError=python36.Py_FatalError - Py_FileSystemDefaultEncodeErrors=python36.Py_FileSystemDefaultEncodeErrors DATA - Py_FileSystemDefaultEncoding=python36.Py_FileSystemDefaultEncoding DATA - Py_Finalize=python36.Py_Finalize - Py_FinalizeEx=python36.Py_FinalizeEx - Py_GetBuildInfo=python36.Py_GetBuildInfo - Py_GetCompiler=python36.Py_GetCompiler - Py_GetCopyright=python36.Py_GetCopyright - Py_GetExecPrefix=python36.Py_GetExecPrefix - Py_GetPath=python36.Py_GetPath - Py_GetPlatform=python36.Py_GetPlatform - Py_GetPrefix=python36.Py_GetPrefix - Py_GetProgramFullPath=python36.Py_GetProgramFullPath - Py_GetProgramName=python36.Py_GetProgramName - Py_GetPythonHome=python36.Py_GetPythonHome - Py_GetRecursionLimit=python36.Py_GetRecursionLimit - Py_GetVersion=python36.Py_GetVersion - Py_HasFileSystemDefaultEncoding=python36.Py_HasFileSystemDefaultEncoding DATA - Py_IncRef=python36.Py_IncRef - Py_Initialize=python36.Py_Initialize - Py_InitializeEx=python36.Py_InitializeEx - Py_IsInitialized=python36.Py_IsInitialized - Py_Main=python36.Py_Main - Py_MakePendingCalls=python36.Py_MakePendingCalls - Py_NewInterpreter=python36.Py_NewInterpreter - Py_ReprEnter=python36.Py_ReprEnter - Py_ReprLeave=python36.Py_ReprLeave - Py_SetPath=python36.Py_SetPath - Py_SetProgramName=python36.Py_SetProgramName - Py_SetPythonHome=python36.Py_SetPythonHome - Py_SetRecursionLimit=python36.Py_SetRecursionLimit - Py_SymtableString=python36.Py_SymtableString - Py_VaBuildValue=python36.Py_VaBuildValue - _PyArg_ParseTupleAndKeywords_SizeT=python36._PyArg_ParseTupleAndKeywords_SizeT - _PyArg_ParseTuple_SizeT=python36._PyArg_ParseTuple_SizeT - _PyArg_Parse_SizeT=python36._PyArg_Parse_SizeT - _PyArg_VaParseTupleAndKeywords_SizeT=python36._PyArg_VaParseTupleAndKeywords_SizeT - _PyArg_VaParse_SizeT=python36._PyArg_VaParse_SizeT - _PyErr_BadInternalCall=python36._PyErr_BadInternalCall - _PyObject_CallFunction_SizeT=python36._PyObject_CallFunction_SizeT - _PyObject_CallMethod_SizeT=python36._PyObject_CallMethod_SizeT - _PyObject_GC_Malloc=python36._PyObject_GC_Malloc - _PyObject_GC_New=python36._PyObject_GC_New - _PyObject_GC_NewVar=python36._PyObject_GC_NewVar - _PyObject_GC_Resize=python36._PyObject_GC_Resize - _PyObject_New=python36._PyObject_New - _PyObject_NewVar=python36._PyObject_NewVar - _PyState_AddModule=python36._PyState_AddModule - _PyThreadState_Init=python36._PyThreadState_Init - _PyThreadState_Prealloc=python36._PyThreadState_Prealloc - _PyTrash_delete_later=python36._PyTrash_delete_later DATA - _PyTrash_delete_nesting=python36._PyTrash_delete_nesting DATA - _PyTrash_deposit_object=python36._PyTrash_deposit_object - _PyTrash_destroy_chain=python36._PyTrash_destroy_chain - _PyTrash_thread_deposit_object=python36._PyTrash_thread_deposit_object - _PyTrash_thread_destroy_chain=python36._PyTrash_thread_destroy_chain - _PyWeakref_CallableProxyType=python36._PyWeakref_CallableProxyType DATA - _PyWeakref_ProxyType=python36._PyWeakref_ProxyType DATA - _PyWeakref_RefType=python36._PyWeakref_RefType DATA - _Py_BuildValue_SizeT=python36._Py_BuildValue_SizeT - _Py_CheckRecursionLimit=python36._Py_CheckRecursionLimit DATA - _Py_CheckRecursiveCall=python36._Py_CheckRecursiveCall - _Py_Dealloc=python36._Py_Dealloc - _Py_EllipsisObject=python36._Py_EllipsisObject DATA - _Py_FalseStruct=python36._Py_FalseStruct DATA - _Py_NoneStruct=python36._Py_NoneStruct DATA - _Py_NotImplementedStruct=python36._Py_NotImplementedStruct DATA - _Py_SwappedOp=python36._Py_SwappedOp DATA - _Py_TrueStruct=python36._Py_TrueStruct DATA - _Py_VaBuildValue_SizeT=python36._Py_VaBuildValue_SizeT diff --git a/third_party/python/Python/dynload_aix.c b/third_party/python/Python/dynload_aix.c deleted file mode 100644 index b3ff8e288..000000000 --- a/third_party/python/Python/dynload_aix.c +++ /dev/null @@ -1,184 +0,0 @@ - -/* Support for dynamic loading of extension modules */ - -#include "Python.h" -#include "importdl.h" - -#include /* for global errno */ -#include /* for strerror() */ -#include /* for malloc(), free() */ -#include - - -#ifdef AIX_GENUINE_CPLUSPLUS -#include -#define aix_load loadAndInit -#else -#define aix_load load -#endif - - -extern char *Py_GetProgramName(void); - -typedef struct Module { - struct Module *next; - void *entry; -} Module, *ModulePtr; - -const char *_PyImport_DynLoadFiletab[] = {".so", NULL}; - -static int -aix_getoldmodules(void **modlistptr) -{ - ModulePtr modptr, prevmodptr; - struct ld_info *ldiptr; - char *ldibuf; - int errflag, bufsize = 1024; - unsigned int offset; - char *progname = Py_GetProgramName(); - - /* - -- Get the list of loaded modules into ld_info structures. - */ - if ((ldibuf = malloc(bufsize)) == NULL) { - PyErr_SetString(PyExc_ImportError, strerror(errno)); - return -1; - } - while ((errflag = loadquery(L_GETINFO, ldibuf, bufsize)) == -1 - && errno == ENOMEM) { - free(ldibuf); - bufsize += 1024; - if ((ldibuf = malloc(bufsize)) == NULL) { - PyErr_SetString(PyExc_ImportError, strerror(errno)); - return -1; - } - } - if (errflag == -1) { - PyErr_SetString(PyExc_ImportError, strerror(errno)); - return -1; - } - /* - -- Make the modules list from the ld_info structures. - */ - ldiptr = (struct ld_info *)ldibuf; - prevmodptr = NULL; - do { - if (strstr(progname, ldiptr->ldinfo_filename) == NULL && - strstr(ldiptr->ldinfo_filename, "python") == NULL) { - /* - -- Extract only the modules belonging to the main - -- executable + those containing "python" as a - -- substring (like the "python[version]" binary or - -- "libpython[version].a" in case it's a shared lib). - */ - offset = (unsigned int)ldiptr->ldinfo_next; - ldiptr = (struct ld_info *)((char*)ldiptr + offset); - continue; - } - if ((modptr = (ModulePtr)malloc(sizeof(Module))) == NULL) { - PyErr_SetString(PyExc_ImportError, strerror(errno)); - while (*modlistptr) { - modptr = (ModulePtr)*modlistptr; - *modlistptr = (void *)modptr->next; - free(modptr); - } - return -1; - } - modptr->entry = ldiptr->ldinfo_dataorg; - modptr->next = NULL; - if (prevmodptr == NULL) - *modlistptr = (void *)modptr; - else - prevmodptr->next = modptr; - prevmodptr = modptr; - offset = (unsigned int)ldiptr->ldinfo_next; - ldiptr = (struct ld_info *)((char*)ldiptr + offset); - } while (offset); - free(ldibuf); - return 0; -} - - -static void -aix_loaderror(const char *pathname) -{ - - char *message[1024], errbuf[1024]; - PyObject *pathname_ob = NULL; - PyObject *errbuf_ob = NULL; - int i,j; - - struct errtab { - int errNo; - char *errstr; - } load_errtab[] = { - {L_ERROR_TOOMANY, "too many errors, rest skipped."}, - {L_ERROR_NOLIB, "can't load library:"}, - {L_ERROR_UNDEF, "can't find symbol in library:"}, - {L_ERROR_RLDBAD, - "RLD index out of range or bad relocation type:"}, - {L_ERROR_FORMAT, "not a valid, executable xcoff file:"}, - {L_ERROR_MEMBER, - "file not an archive or does not contain requested member:"}, - {L_ERROR_TYPE, "symbol table mismatch:"}, - {L_ERROR_ALIGN, "text alignment in file is wrong."}, - {L_ERROR_SYSTEM, "System error:"}, - {L_ERROR_ERRNO, NULL} - }; - -#define ERRBUF_APPEND(s) strncat(errbuf, s, sizeof(errbuf)-strlen(errbuf)-1) - - PyOS_snprintf(errbuf, sizeof(errbuf), "from module %.200s ", pathname); - - if (!loadquery(L_GETMESSAGES, &message[0], sizeof(message))) { - ERRBUF_APPEND(strerror(errno)); - ERRBUF_APPEND("\n"); - } - for(i = 0; message[i] && *message[i]; i++) { - int nerr = atoi(message[i]); - for (j=0; j < Py_ARRAY_LENGTH(load_errtab); j++) { - if (nerr == load_errtab[j].errNo && load_errtab[j].errstr) - ERRBUF_APPEND(load_errtab[j].errstr); - } - while (Py_ISDIGIT(Py_CHARMASK(*message[i]))) message[i]++ ; - ERRBUF_APPEND(message[i]); - ERRBUF_APPEND("\n"); - } - errbuf[strlen(errbuf)-1] = '\0'; /* trim off last newline */ - pathname_ob = PyUnicode_FromString(pathname); - errbuf_ob = PyUnicode_FromString(errbuf); - PyErr_SetImportError(errbuf_ob, NULL, pathname); - Py_DECREF(pathname_ob); - Py_DECREF(errbuf_ob); - return; -} - - -dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, - const char *shortname, - const char *pathname, FILE *fp) -{ - dl_funcptr p; - - /* - -- Invoke load() with L_NOAUTODEFER leaving the imported symbols - -- of the shared module unresolved. Thus we have to resolve them - -- explicitly with loadbind. The new module is loaded, then we - -- resolve its symbols using the list of already loaded modules - -- (only those that belong to the python executable). Get these - -- with loadquery(L_GETINFO). - */ - - static void *staticmodlistptr = NULL; - - if (!staticmodlistptr) - if (aix_getoldmodules(&staticmodlistptr) == -1) - return NULL; - p = (dl_funcptr) aix_load((char *)pathname, L_NOAUTODEFER, 0); - if (p == NULL) { - aix_loaderror(pathname); - return NULL; - } - - return p; -} diff --git a/third_party/python/Python/dynload_hpux.c b/third_party/python/Python/dynload_hpux.c deleted file mode 100644 index 4967afc39..000000000 --- a/third_party/python/Python/dynload_hpux.c +++ /dev/null @@ -1,66 +0,0 @@ - -/* Support for dynamic loading of extension modules */ - -#include "dl.h" -#include - -#include "Python.h" -#include "importdl.h" - -#if defined(__hp9000s300) -#define FUNCNAME_PATTERN "_%.20s_%.200s" -#else -#define FUNCNAME_PATTERN "%.20s_%.200s" -#endif - -const char *_PyImport_DynLoadFiletab[] = {SHLIB_EXT, NULL}; - -dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, - const char *shortname, - const char *pathname, FILE *fp) -{ - dl_funcptr p; - shl_t lib; - int flags; - char funcname[258]; - - flags = BIND_FIRST | BIND_DEFERRED; - if (Py_VerboseFlag) { - flags = BIND_FIRST | BIND_IMMEDIATE | - BIND_NONFATAL | BIND_VERBOSE; - printf("shl_load %s\n",pathname); - } - lib = shl_load(pathname, flags, 0); - /* XXX Chuck Blake once wrote that 0 should be BIND_NOSTART? */ - if (lib == NULL) { - char buf[256]; - PyObject *pathname_ob = NULL; - PyObject *buf_ob = NULL; - PyObject *shortname_ob = NULL; - - if (Py_VerboseFlag) - perror(pathname); - PyOS_snprintf(buf, sizeof(buf), "Failed to load %.200s", - pathname); - buf_ob = PyUnicode_FromString(buf); - shortname_ob = PyUnicode_FromString(shortname); - pathname_ob = PyUnicode_FromString(pathname); - PyErr_SetImportError(buf_ob, shortname_ob, pathname_ob); - Py_DECREF(buf_ob); - Py_DECREF(shortname_ob); - Py_DECREF(pathname_ob); - return NULL; - } - PyOS_snprintf(funcname, sizeof(funcname), FUNCNAME_PATTERN, - prefix, shortname); - if (Py_VerboseFlag) - printf("shl_findsym %s\n", funcname); - if (shl_findsym(&lib, funcname, TYPE_UNDEFINED, (void *) &p) == -1) { - shl_unload(lib); - p = NULL; - } - if (p == NULL && Py_VerboseFlag) - perror(funcname); - - return p; -} diff --git a/third_party/python/Python/dynload_next.c b/third_party/python/Python/dynload_next.c deleted file mode 100644 index 83a8b2bb3..000000000 --- a/third_party/python/Python/dynload_next.c +++ /dev/null @@ -1,111 +0,0 @@ - -/* Support for dynamic loading of extension modules on Mac OS X -** All references to "NeXT" are for historical reasons. -*/ - -#include "Python.h" -#include "importdl.h" - -#include - -const char *_PyImport_DynLoadFiletab[] = {".so", NULL}; - -/* -** Python modules are Mach-O MH_BUNDLE files. The best way to load these -** is each in a private namespace, so you can load, say, a module bar and a -** module foo.bar. If we load everything in the global namespace the two -** initbar() symbols will conflict. -** However, it seems some extension packages depend upon being able to access -** each others' global symbols. There seems to be no way to eat our cake and -** have it, so the USE_DYLD_GLOBAL_NAMESPACE define determines which behaviour -** you get. -*/ - -#ifdef USE_DYLD_GLOBAL_NAMESPACE -#define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW|NSLINKMODULE_OPTION_RETURN_ON_ERROR -#else -#define LINKOPTIONS NSLINKMODULE_OPTION_BINDNOW| \ - NSLINKMODULE_OPTION_RETURN_ON_ERROR|NSLINKMODULE_OPTION_PRIVATE -#endif -dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix, - const char *shortname, - const char *pathname, FILE *fp) -{ - dl_funcptr p = NULL; - char funcname[258]; - NSObjectFileImageReturnCode rc; - NSObjectFileImage image; - NSModule newModule; - NSSymbol theSym; - const char *errString; - char errBuf[512]; - - PyOS_snprintf(funcname, sizeof(funcname), "_%.20s_%.200s", prefix, shortname); - -#ifdef USE_DYLD_GLOBAL_NAMESPACE - if (NSIsSymbolNameDefined(funcname)) { - theSym = NSLookupAndBindSymbol(funcname); - p = (dl_funcptr)NSAddressOfSymbol(theSym); - return p; - } -#endif - rc = NSCreateObjectFileImageFromFile(pathname, &image); - switch(rc) { - default: - case NSObjectFileImageFailure: - case NSObjectFileImageFormat: - /* for these a message is printed on stderr by dyld */ - errString = "Can't create object file image"; - break; - case NSObjectFileImageSuccess: - errString = NULL; - break; - case NSObjectFileImageInappropriateFile: - errString = "Inappropriate file type for dynamic loading"; - break; - case NSObjectFileImageArch: - errString = "Wrong CPU type in object file"; - break; - case NSObjectFileImageAccess: - errString = "Can't read object file (no access)"; - break; - } - if (errString == NULL) { - newModule = NSLinkModule(image, pathname, LINKOPTIONS); - if (newModule == NULL) { - int errNo; - const char *fileName, *moreErrorStr; - NSLinkEditErrors c; - NSLinkEditError( &c, &errNo, &fileName, &moreErrorStr ); - PyOS_snprintf(errBuf, 512, "Failure linking new module: %s: %s", - fileName, moreErrorStr); - errString = errBuf; - } - } - if (errString != NULL) { - PyErr_SetString(PyExc_ImportError, errString); - return NULL; - } -#ifdef USE_DYLD_GLOBAL_NAMESPACE - if (!NSIsSymbolNameDefined(funcname)) { - /* UnlinkModule() isn't implemented in current versions, but calling it does no harm */ - /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC code */ - PyErr_Format(PyExc_ImportError, - "Loaded module does not contain symbol %.200s", - funcname); - return NULL; - } - theSym = NSLookupAndBindSymbol(funcname); -#else - theSym = NSLookupSymbolInModule(newModule, funcname); - if ( theSym == NULL ) { - /* NSUnLinkModule(newModule, FALSE); removed: causes problems for ObjC code */ - PyErr_Format(PyExc_ImportError, - "Loaded module does not contain symbol %.200s", - funcname); - return NULL; - } -#endif - p = (dl_funcptr)NSAddressOfSymbol(theSym); - return p; -} diff --git a/third_party/python/Python/strdup.c b/third_party/python/Python/strdup.c deleted file mode 100644 index 769d3db13..000000000 --- a/third_party/python/Python/strdup.c +++ /dev/null @@ -1,14 +0,0 @@ -/* strdup() replacement (from stdwin, if you must know) */ - -#include "pgenheaders.h" - -char * -strdup(const char *str) -{ - if (str != NULL) { - char *copy = malloc(strlen(str) + 1); - if (copy != NULL) - return strcpy(copy, str); - } - return NULL; -} diff --git a/third_party/python/python-modules.mk b/third_party/python/python-modules.mk index 152685380..544ce6375 100644 --- a/third_party/python/python-modules.mk +++ b/third_party/python/python-modules.mk @@ -10,26 +10,32 @@ # these modules are always required # _elementtree -EXTMODULE_ELEMENTTREE_SRCS_C = \ +EXTMODULE_ELEMENTTREE_SRCS = \ third_party/python/Modules/_elementtree.c EXTMODULE_ELEMENTTREE_OBJS = \ - $(EXTMODULE_ELEMENTTREE_SRCS_C:%.c=o/$(MODE)/%.o) + $(EXTMODULE_ELEMENTTREE_SRCS:%.c=o/$(MODE)/%.o) # _io -EXTMODULE_IO_SRCS_C = \ - $(wildcard third_party/python/Modules/_io/*.c) +EXTMODULE_IO_SRCS = \ + third_party/python/Modules/_io/_iomodule.c \ + third_party/python/Modules/_io/bufferedio.c \ + third_party/python/Modules/_io/bytesio.c \ + third_party/python/Modules/_io/fileio.c \ + third_party/python/Modules/_io/iobase.c \ + third_party/python/Modules/_io/stringio.c \ + third_party/python/Modules/_io/textio.c EXTMODULE_IO_OBJS = \ - $(EXTMODULE_IO_SRCS_C:%.c=o/$(MODE)/%.o) + $(EXTMODULE_IO_SRCS:%.c=o/$(MODE)/%.o) # _tracemalloc -EXTMODULE_TRACEMALLOC_SRCS_C = \ +EXTMODULE_TRACEMALLOC_SRCS = \ third_party/python/Modules/_tracemalloc.c \ third_party/python/Modules/hashtable.c # these modules don't rely on POSIX -EXTMODULE_BASE_INDEP_SRCS_C = \ +EXTMODULE_BASE_INDEP_SRCS = \ third_party/python/Modules/gcmodule.c \ third_party/python/Modules/arraymodule.c \ third_party/python/Modules/cmathmodule.c \ @@ -44,12 +50,12 @@ EXTMODULE_BASE_INDEP_SRCS_C = \ third_party/python/Modules/_bisectmodule.c \ third_party/python/Modules/_heapqmodule.c \ third_party/python/Modules/unicodedata.c \ - $(EXTMODULE_TRACEMALLOC_SRCS_C) \ - $(EXTMODULE_ELEMENTTREE_SRCS_C) + $(EXTMODULE_TRACEMALLOC_SRCS) \ + $(EXTMODULE_ELEMENTTREE_SRCS) # these modules require POSIX-compliant libs -EXTMODULE_BASE_POSIX_SRCS_C = \ +EXTMODULE_BASE_POSIX_SRCS = \ third_party/python/Modules/main.c \ third_party/python/Modules/posixmodule.c \ third_party/python/Modules/errnomodule.c \ @@ -73,35 +79,43 @@ EXTMODULE_BASE_POSIX_SRCS_C = \ third_party/python/Modules/mmapmodule.c \ third_party/python/Modules/_csv.c \ third_party/python/Modules/_localemodule.c \ - $(EXTMODULE_IO_SRCS_C) + $(EXTMODULE_IO_SRCS) # optional modules # _blake -EXTMODULE_BLAKE_SRCS_C = \ - $(wildcard third_party/python/Modules/_blake2/*.c) +EXTMODULE_BLAKE_SRCS = \ + third_party/python/Modules/_blake2/blake2b_impl.c \ + third_party/python/Modules/_blake2/blake2module.c \ + third_party/python/Modules/_blake2/blake2s_impl.c EXTMODULE_BLAKE_OBJS = \ - $(EXTMODULE_BLAKE_SRCS_C:%.c=o/$(MODE)/%.o) + $(EXTMODULE_BLAKE_SRCS:%.c=o/$(MODE)/%.o) # pyexpat -EXTMODULE_PYEXPAT_SRCS_C = \ +EXTMODULE_PYEXPAT_SRCS = \ third_party/python/Modules/expat/xmlparse.c \ third_party/python/Modules/expat/xmlrole.c \ third_party/python/Modules/expat/xmltok.c \ third_party/python/Modules/pyexpat.c EXTMODULE_PYEXPAT_OBJS = \ - $(EXTMODULE_PYEXPAT_SRCS_C:%.c=o/$(MODE)/%.o) + $(EXTMODULE_PYEXPAT_SRCS:%.c=o/$(MODE)/%.o) # lsprof -EXTMODULE_LSPROF_SRCS_C = \ +EXTMODULE_LSPROF_SRCS = \ third_party/python/Modules/_lsprof.c \ third_party/python/Modules/rotatingtree.c # CJK codecs -EXTMODULE_CJKCODECS_SRCS_C = \ - $(wildcard third_party/python/Modules/cjkcodecs/*.c) +EXTMODULE_CJKCODECS_SRCS = \ + third_party/python/Modules/cjkcodecs/_codecs_cn.c \ + third_party/python/Modules/cjkcodecs/_codecs_hk.c \ + third_party/python/Modules/cjkcodecs/_codecs_iso2022.c \ + third_party/python/Modules/cjkcodecs/_codecs_jp.c \ + third_party/python/Modules/cjkcodecs/_codecs_kr.c \ + third_party/python/Modules/cjkcodecs/_codecs_tw.c \ + third_party/python/Modules/cjkcodecs/multibytecodec.c # sqlite @@ -117,20 +131,33 @@ EXTMODULE_CJKCODECS_SRCS_C = \ # _decimal module (w/libmpdec) -EXTMODULE_DECIMAL_SRCS_C = \ - $(wildcard third_party/python/Modules/_decimal/libmpdec/*.c) \ +EXTMODULE_DECIMAL_SRCS = \ + third_party/python/Modules/_decimal/libmpdec/basearith.c \ + third_party/python/Modules/_decimal/libmpdec/constants.c \ + third_party/python/Modules/_decimal/libmpdec/context.c \ + third_party/python/Modules/_decimal/libmpdec/convolute.c \ + third_party/python/Modules/_decimal/libmpdec/crt.c \ + third_party/python/Modules/_decimal/libmpdec/difradix2.c \ + third_party/python/Modules/_decimal/libmpdec/fnt.c \ + third_party/python/Modules/_decimal/libmpdec/fourstep.c \ + third_party/python/Modules/_decimal/libmpdec/io.c \ + third_party/python/Modules/_decimal/libmpdec/memory.c \ + third_party/python/Modules/_decimal/libmpdec/mpdecimal.c \ + third_party/python/Modules/_decimal/libmpdec/numbertheory.c \ + third_party/python/Modules/_decimal/libmpdec/sixstep.c \ + third_party/python/Modules/_decimal/libmpdec/transpose.c \ third_party/python/Modules/_decimal/_decimal.c EXTMODULE_DECIMAL_OBJS = \ - $(EXTMODULE_DECIMAL_SRCS_C:%.c=o/$(MODE)/%.o) + $(EXTMODULE_DECIMAL_SRCS:%.c=o/$(MODE)/%.o) -EXTMODULE_OPT_SRCS_C = \ - $(EXTMODULE_CJKCODECS_SRCS_C) \ - $(EXTMODULE_LSPROF_SRCS_C) \ - $(EXTMODULE_BLAKE_SRCS_C) \ - $(EXTMODULE_LSPROF_SRCS_C) \ - $(EXTMODULE_DECIMAL_SRCS_C) \ - $(EXTMODULE_PYEXPAT_SRCS_C) \ +EXTMODULE_OPT_SRCS = \ + $(EXTMODULE_CJKCODECS_SRCS) \ + $(EXTMODULE_LSPROF_SRCS) \ + $(EXTMODULE_BLAKE_SRCS) \ + $(EXTMODULE_LSPROF_SRCS) \ + $(EXTMODULE_DECIMAL_SRCS) \ + $(EXTMODULE_PYEXPAT_SRCS) \ third_party/python/Modules/socketmodule.c \ third_party/python/Modules/md5module.c \ third_party/python/Modules/sha1module.c \ @@ -150,16 +177,16 @@ EXTMODULE_OPT_SRCS_C = \ # add all of the module source files together to use in python.mk -THIRD_PARTY_PYTHON_MODULES_SRCS_C = \ +THIRD_PARTY_PYTHON_MODULES_SRCS = \ third_party/python/Modules/config.c \ third_party/python/Modules/getbuildinfo.c \ third_party/python/Modules/getpath.c \ - $(EXTMODULE_BASE_INDEP_SRCS_C) \ - $(EXTMODULE_BASE_POSIX_SRCS_C) \ - $(EXTMODULE_OPT_SRCS_C) + $(EXTMODULE_BASE_INDEP_SRCS) \ + $(EXTMODULE_BASE_POSIX_SRCS) \ + $(EXTMODULE_OPT_SRCS) THIRD_PARTY_PYTHON_MODULES_OBJS = \ - $(THIRD_PARTY_PYTHON_MODULES_SRCS_C:%.c=o/$(MODE)/%.o) + $(THIRD_PARTY_PYTHON_MODULES_SRCS:%.c=o/$(MODE)/%.o) THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS = \ @@ -184,7 +211,7 @@ $(EXTMODULE_ELEMENTTREE_OBJS): \ $(EXTMODULE_IO_OBJS): \ OVERRIDE_CFLAGS += \ - -Ithird_party/python/Modules/_io + -Ithird_party/python/Modules/_io $(EXTMODULE_BLAKE_OBJS): \ OVERRIDE_CFLAGS += \ diff --git a/third_party/python/python.mk b/third_party/python/python.mk index 7f9f8f106..21cdc246d 100644 --- a/third_party/python/python.mk +++ b/third_party/python/python.mk @@ -10,129 +10,217 @@ THIRD_PARTY_PYTHON_A = o/$(MODE)/third_party/python/libpython3.6m.a include third_party/python/python-modules.mk include third_party/python/python-stdlib.mk -THIRD_PARTY_PYTHON_OBJECT_SRCS_C = \ - $(wildcard third_party/python/Objects/*.c) +THIRD_PARTY_PYTHON_OBJECT_SRCS = \ + third_party/python/Objects/abstract.c \ + third_party/python/Objects/accu.c \ + third_party/python/Objects/boolobject.c \ + third_party/python/Objects/bytearrayobject.c \ + third_party/python/Objects/bytes_methods.c \ + third_party/python/Objects/bytesobject.c \ + third_party/python/Objects/capsule.c \ + third_party/python/Objects/cellobject.c \ + third_party/python/Objects/classobject.c \ + third_party/python/Objects/codeobject.c \ + third_party/python/Objects/complexobject.c \ + third_party/python/Objects/descrobject.c \ + third_party/python/Objects/dictobject.c \ + third_party/python/Objects/enumobject.c \ + third_party/python/Objects/exceptions.c \ + third_party/python/Objects/fileobject.c \ + third_party/python/Objects/floatobject.c \ + third_party/python/Objects/frameobject.c \ + third_party/python/Objects/funcobject.c \ + third_party/python/Objects/genobject.c \ + third_party/python/Objects/iterobject.c \ + third_party/python/Objects/listobject.c \ + third_party/python/Objects/longobject.c \ + third_party/python/Objects/memoryobject.c \ + third_party/python/Objects/methodobject.c \ + third_party/python/Objects/moduleobject.c \ + third_party/python/Objects/namespaceobject.c \ + third_party/python/Objects/object.c \ + third_party/python/Objects/obmalloc.c \ + third_party/python/Objects/odictobject.c \ + third_party/python/Objects/rangeobject.c \ + third_party/python/Objects/setobject.c \ + third_party/python/Objects/sliceobject.c \ + third_party/python/Objects/structseq.c \ + third_party/python/Objects/tupleobject.c \ + third_party/python/Objects/typeobject.c \ + third_party/python/Objects/unicodectype.c \ + third_party/python/Objects/unicodeobject.c \ + third_party/python/Objects/weakrefobject.c -THIRD_PARTY_PYTHON_PARSER_SKIP_SRCS_C = \ - third_party/python/Parser/tokenizer_pgen.c \ - third_party/python/Parser/pgenmain.c \ - third_party/python/Parser/printgrammar.c \ - third_party/python/Parser/parsetok_pgen.c -THIRD_PARTY_PYTHON_PARSER_SRCS_C = \ - $(filter-out $(THIRD_PARTY_PYTHON_PARSER_SKIP_SRCS_C),$(wildcard third_party/python/Parser/*.c)) +THIRD_PARTY_PYTHON_PARSER_SRCS = \ + third_party/python/Parser/acceler.c \ + third_party/python/Parser/bitset.c \ + third_party/python/Parser/firstsets.c \ + third_party/python/Parser/grammar.c \ + third_party/python/Parser/grammar1.c \ + third_party/python/Parser/listnode.c \ + third_party/python/Parser/metagrammar.c \ + third_party/python/Parser/myreadline.c \ + third_party/python/Parser/node.c \ + third_party/python/Parser/parser.c \ + third_party/python/Parser/parsetok.c \ + third_party/python/Parser/pgen.c \ + third_party/python/Parser/tokenizer.c -THIRD_PARTY_PYTHON_CORE_SKIP_SRCS_C = \ - third_party/python/Python/dynload_%.c \ - third_party/python/Python/strdup.c \ - third_party/python/Python/thread.c -THIRD_PARTY_PYTHON_CORE_SRCS_C = \ - $(filter-out $(THIRD_PARTY_PYTHON_CORE_SKIP_SRCS_C),$(wildcard third_party/python/Python/*.c)) \ - third_party/python/Python/dynload_shlib.c +THIRD_PARTY_PYTHON_CORE_SRCS = \ + third_party/python/Python/Python-ast.c \ + third_party/python/Python/_warnings.c \ + third_party/python/Python/asdl.c \ + third_party/python/Python/ast.c \ + third_party/python/Python/bltinmodule.c \ + third_party/python/Python/ceval.c \ + third_party/python/Python/codecs.c \ + third_party/python/Python/compile.c \ + third_party/python/Python/dtoa.c \ + third_party/python/Python/dup2.c \ + third_party/python/Python/dynamic_annotations.c \ + third_party/python/Python/dynload_shlib.c \ + third_party/python/Python/errors.c \ + third_party/python/Python/fileutils.c \ + third_party/python/Python/formatter_unicode.c \ + third_party/python/Python/frozen.c \ + third_party/python/Python/frozenmain.c \ + third_party/python/Python/future.c \ + third_party/python/Python/getargs.c \ + third_party/python/Python/getcompiler.c \ + third_party/python/Python/getcopyright.c \ + third_party/python/Python/getopt.c \ + third_party/python/Python/getplatform.c \ + third_party/python/Python/getversion.c \ + third_party/python/Python/graminit.c \ + third_party/python/Python/import.c \ + third_party/python/Python/importdl.c \ + third_party/python/Python/marshal.c \ + third_party/python/Python/modsupport.c \ + third_party/python/Python/mysnprintf.c \ + third_party/python/Python/mystrtoul.c \ + third_party/python/Python/peephole.c \ + third_party/python/Python/pyarena.c \ + third_party/python/Python/pyctype.c \ + third_party/python/Python/pyfpe.c \ + third_party/python/Python/pyhash.c \ + third_party/python/Python/pylifecycle.c \ + third_party/python/Python/pymath.c \ + third_party/python/Python/pystate.c \ + third_party/python/Python/pystrcmp.c \ + third_party/python/Python/pystrhex.c \ + third_party/python/Python/pystrtod.c \ + third_party/python/Python/pythonrun.c \ + third_party/python/Python/pytime.c \ + third_party/python/Python/random.c \ + third_party/python/Python/sigcheck.c \ + third_party/python/Python/structmember.c \ + third_party/python/Python/symtable.c \ + third_party/python/Python/sysmodule.c \ + third_party/python/Python/traceback.c -THIRD_PARTY_PYTHON_SRCS_C = \ - third_party/python/Programs/python.c \ - $(THIRD_PARTY_PYTHON_OBJECT_SRCS_C) \ - $(THIRD_PARTY_PYTHON_PARSER_SRCS_C) \ - $(THIRD_PARTY_PYTHON_CORE_SRCS_C) \ - $(THIRD_PARTY_PYTHON_MODULES_SRCS_C) +THIRD_PARTY_PYTHON_SRCS_C = \ + third_party/python/Programs/python.c \ + $(THIRD_PARTY_PYTHON_OBJECT_SRCS) \ + $(THIRD_PARTY_PYTHON_PARSER_SRCS) \ + $(THIRD_PARTY_PYTHON_CORE_SRCS) \ + $(THIRD_PARTY_PYTHON_MODULES_SRCS) -THIRD_PARTY_PYTHON_OBJS = \ +THIRD_PARTY_PYTHON_OBJS = \ $(THIRD_PARTY_PYTHON_SRCS_C:%.c=o/$(MODE)/%.o) -THIRD_PARTY_PYTHON_A_OBJS = \ +THIRD_PARTY_PYTHON_A_OBJS = \ $(filter-out o/$(MODE)/third_party/python/Programs/python.o,$(THIRD_PARTY_PYTHON_OBJS)) -THIRD_PARTY_PYTHON_BINS = \ +THIRD_PARTY_PYTHON_BINS = \ $(THIRD_PARTY_PYTHON_COMS) $(THIRD_PARTY_PYTHON_COMS:%=%.dbg) -THIRD_PARTY_PYTHON_COMS = \ +THIRD_PARTY_PYTHON_COMS = \ o/$(MODE)/third_party/python/python.com -THIRD_PARTY_PYTHON_A_CHECKS = \ +THIRD_PARTY_PYTHON_A_CHECKS = \ $(THIRD_PARTY_PYTHON_A).pkg # add .h.ok check here -THIRD_PARTY_PYTHON_A_DIRECTDEPS0 = \ - $(THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS) \ - LIBC_ALG \ - LIBC_BITS \ - LIBC_CALLS \ - LIBC_FMT \ - LIBC_INTRIN \ - LIBC_LOG \ - LIBC_MEM \ - LIBC_NEXGEN32E \ - LIBC_RAND \ - LIBC_RUNTIME \ - LIBC_SOCK \ - LIBC_DNS \ - LIBC_STDIO \ - LIBC_STR \ - LIBC_STUBS \ - LIBC_SYSV \ - LIBC_SYSV_CALLS \ - LIBC_TIME \ - LIBC_TINYMATH \ - LIBC_UNICODE \ - LIBC_ZIPOS \ - THIRD_PARTY_GDTOA \ - THIRD_PARTY_GETOPT \ - THIRD_PARTY_MUSL \ +THIRD_PARTY_PYTHON_A_DIRECTDEPS0 = \ + $(THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS) \ + LIBC_ALG \ + LIBC_BITS \ + LIBC_CALLS \ + LIBC_FMT \ + LIBC_INTRIN \ + LIBC_LOG \ + LIBC_MEM \ + LIBC_NEXGEN32E \ + LIBC_RAND \ + LIBC_RUNTIME \ + LIBC_SOCK \ + LIBC_DNS \ + LIBC_STDIO \ + LIBC_STR \ + LIBC_STUBS \ + LIBC_SYSV \ + LIBC_SYSV_CALLS \ + LIBC_TIME \ + LIBC_TINYMATH \ + LIBC_UNICODE \ + LIBC_ZIPOS \ + THIRD_PARTY_GDTOA \ + THIRD_PARTY_GETOPT \ + THIRD_PARTY_MUSL \ THIRD_PARTY_ZLIB -THIRD_PARTY_PYTHON_A_DIRECTDEPS = \ +THIRD_PARTY_PYTHON_A_DIRECTDEPS = \ $(call uniq,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS0)) -THIRD_PARTY_PYTHON_A_DEPS = \ +THIRD_PARTY_PYTHON_A_DEPS = \ $(call uniq,$(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x)))) -o/$(MODE)/third_party/python/python.com.dbg: \ - $(THIRD_PARTY_PYTHON_A_DEPS) \ - $(THIRD_PARTY_PYTHON_A) \ - $(THIRD_PARTY_PYTHON_STDLIB_PY_OBJS) \ - o/$(MODE)/third_party/python/Programs/python.o \ - $(CRT) \ - $(APE) +o/$(MODE)/third_party/python/python.com.dbg: \ + $(THIRD_PARTY_PYTHON_A_DEPS) \ + $(THIRD_PARTY_PYTHON_A) \ + $(THIRD_PARTY_PYTHON_STDLIB_PY_OBJS) \ + o/$(MODE)/third_party/python/Programs/python.o \ + $(CRT) \ + $(APE) -@$(APELINK) -$(THIRD_PARTY_PYTHON_A): \ - third_party/python \ - $(THIRD_PARTY_PYTHON_A).pkg \ +$(THIRD_PARTY_PYTHON_A): \ + third_party/python \ + $(THIRD_PARTY_PYTHON_A).pkg \ $(THIRD_PARTY_PYTHON_A_OBJS) -$(THIRD_PARTY_PYTHON_A).pkg: \ - $(THIRD_PARTY_PYTHON_A_OBJS) \ +$(THIRD_PARTY_PYTHON_A).pkg: \ + $(THIRD_PARTY_PYTHON_A_OBJS) \ $(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x)_A).pkg) -$(THIRD_PARTY_PYTHON_OBJS): \ - OVERRIDE_CFLAGS += \ - -DPy_BUILD_CORE \ - -DPLATFORM='"linux"' \ - -DMULTIARCH='"x86_64-linux-gnu"' \ - -isystem libc/isystem \ - -Ithird_party/python \ +$(THIRD_PARTY_PYTHON_OBJS): \ + OVERRIDE_CFLAGS += \ + -DPy_BUILD_CORE \ + -DPLATFORM='"linux"' \ + -DMULTIARCH='"x86_64-linux-gnu"' \ + -isystem libc/isystem \ + -Ithird_party/python \ -Ithird_party/python/Include -o/$(MODE)/third_party/python/Programs/python.o \ -o/$(MODE)/third_party/python/Python/marshal.o \ -o/$(MODE)/third_party/python/Python/sysmodule.o \ -o/$(MODE)/third_party/python/Modules/selectmodule.o \ -o/$(MODE)/third_party/python/Modules/getpath.o \ -o/$(MODE)/third_party/python/Objects/listobject.o: \ - OVERRIDE_CFLAGS += \ +o/$(MODE)/third_party/python/Programs/python.o \ +o/$(MODE)/third_party/python/Python/marshal.o \ +o/$(MODE)/third_party/python/Python/sysmodule.o \ +o/$(MODE)/third_party/python/Modules/selectmodule.o \ +o/$(MODE)/third_party/python/Modules/getpath.o \ +o/$(MODE)/third_party/python/Objects/listobject.o: \ + OVERRIDE_CFLAGS += \ -DSTACK_FRAME_UNLIMITED -o/$(MODE)/third_party/python/Python/dynload_shlib.o: \ - OVERRIDE_CFLAGS += \ +o/$(MODE)/third_party/python/Python/dynload_shlib.o: \ + OVERRIDE_CFLAGS += \ -DSOABI='"cpython36m-x86_64-linux-gnu"' -o/$(MODE)/third_party/python/Python/sysmodule.o: \ - OVERRIDE_CFLAGS += \ +o/$(MODE)/third_party/python/Python/sysmodule.o: \ + OVERRIDE_CFLAGS += \ -DABIFLAGS='"m"' - -$(THIRD_PARTY_PYTHON_OBJS): \ - third_party/python/python.mk \ +$(THIRD_PARTY_PYTHON_OBJS): \ + third_party/python/python.mk \ third_party/python/python-modules.mk .PHONY: o/$(MODE)/third_party/python -o/$(MODE)/third_party/python: \ - $(THIRD_PARTY_PYTHON_BINS) \ +o/$(MODE)/third_party/python: \ + $(THIRD_PARTY_PYTHON_BINS) \ $(THIRD_PARTY_PYTHON_CHECKS)