mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
Remove wildcard from Python build config
It's important for build performance to use := rather than = notation so that $(wildcard foo/*) isn't a lazily evaluated lambda. In the case of Python where we need a lot of tuning and excludes, it should help to spell things out a bit more to just not use wildcard for now.
This commit is contained in:
parent
53b9f83e1c
commit
10aade69e3
8 changed files with 257 additions and 1306 deletions
|
@ -5,7 +5,7 @@
|
|||
if CLANG=$(command -v clang); then
|
||||
mkdir -p o/$MODE/test/libc/release
|
||||
$CLANG \
|
||||
-o o/$MODE/test/libc/release/smokeclang.com.dbg \
|
||||
-o o/$MODE/test/libc/release/smokeclang2.com.dbg \
|
||||
-Os \
|
||||
-Wall \
|
||||
-Werror \
|
||||
|
@ -21,7 +21,7 @@ if CLANG=$(command -v clang); then
|
|||
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
|
||||
|
|
789
third_party/python/PC/python3.def
vendored
789
third_party/python/PC/python3.def
vendored
|
@ -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
|
184
third_party/python/Python/dynload_aix.c
vendored
184
third_party/python/Python/dynload_aix.c
vendored
|
@ -1,184 +0,0 @@
|
|||
|
||||
/* Support for dynamic loading of extension modules */
|
||||
|
||||
#include "Python.h"
|
||||
#include "importdl.h"
|
||||
|
||||
#include <errno.h> /* for global errno */
|
||||
#include <string.h> /* for strerror() */
|
||||
#include <stdlib.h> /* for malloc(), free() */
|
||||
#include <sys/ldr.h>
|
||||
|
||||
|
||||
#ifdef AIX_GENUINE_CPLUSPLUS
|
||||
#include <load.h>
|
||||
#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;
|
||||
}
|
66
third_party/python/Python/dynload_hpux.c
vendored
66
third_party/python/Python/dynload_hpux.c
vendored
|
@ -1,66 +0,0 @@
|
|||
|
||||
/* Support for dynamic loading of extension modules */
|
||||
|
||||
#include "dl.h"
|
||||
#include <errno.h>
|
||||
|
||||
#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;
|
||||
}
|
111
third_party/python/Python/dynload_next.c
vendored
111
third_party/python/Python/dynload_next.c
vendored
|
@ -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 <mach-o/dyld.h>
|
||||
|
||||
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;
|
||||
}
|
14
third_party/python/Python/strdup.c
vendored
14
third_party/python/Python/strdup.c
vendored
|
@ -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;
|
||||
}
|
95
third_party/python/python-modules.mk
vendored
95
third_party/python/python-modules.mk
vendored
|
@ -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 = \
|
||||
|
|
130
third_party/python/python.mk
vendored
130
third_party/python/python.mk
vendored
|
@ -10,31 +10,120 @@ 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_OBJECT_SRCS) \
|
||||
$(THIRD_PARTY_PYTHON_PARSER_SRCS) \
|
||||
$(THIRD_PARTY_PYTHON_CORE_SRCS) \
|
||||
$(THIRD_PARTY_PYTHON_MODULES_SRCS)
|
||||
|
||||
THIRD_PARTY_PYTHON_OBJS = \
|
||||
$(THIRD_PARTY_PYTHON_SRCS_C:%.c=o/$(MODE)/%.o)
|
||||
|
@ -127,7 +216,6 @@ o/$(MODE)/third_party/python/Python/sysmodule.o: \
|
|||
OVERRIDE_CFLAGS += \
|
||||
-DABIFLAGS='"m"'
|
||||
|
||||
|
||||
$(THIRD_PARTY_PYTHON_OBJS): \
|
||||
third_party/python/python.mk \
|
||||
third_party/python/python-modules.mk
|
||||
|
|
Loading…
Reference in a new issue