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
|
@ -4,24 +4,24 @@
|
||||||
|
|
||||||
if CLANG=$(command -v clang); then
|
if CLANG=$(command -v clang); then
|
||||||
mkdir -p o/$MODE/test/libc/release
|
mkdir -p o/$MODE/test/libc/release
|
||||||
$CLANG \
|
$CLANG \
|
||||||
-o o/$MODE/test/libc/release/smokeclang.com.dbg \
|
-o o/$MODE/test/libc/release/smokeclang2.com.dbg \
|
||||||
-Os \
|
-Os \
|
||||||
-Wall \
|
-Wall \
|
||||||
-Werror \
|
-Werror \
|
||||||
-static \
|
-static \
|
||||||
-fno-pie \
|
-fno-pie \
|
||||||
-nostdlib \
|
-nostdlib \
|
||||||
-nostdinc \
|
-nostdinc \
|
||||||
-fuse-ld=lld \
|
-fuse-ld=lld \
|
||||||
-mno-red-zone \
|
-mno-red-zone \
|
||||||
-Wl,-T,o/$MODE/ape/ape.lds \
|
-Wl,-T,o/$MODE/ape/ape.lds \
|
||||||
-include o/cosmopolitan.h \
|
-include o/cosmopolitan.h \
|
||||||
test/libc/release/smoke.c \
|
test/libc/release/smoke.c \
|
||||||
o/$MODE/libc/crt/crt.o \
|
o/$MODE/libc/crt/crt.o \
|
||||||
o/$MODE/ape/ape.o \
|
o/$MODE/ape/ape.o \
|
||||||
o/$MODE/cosmopolitan.a || exit
|
o/$MODE/cosmopolitan.a || exit
|
||||||
o/$MODE/test/libc/release/smokeclang.com.dbg || exit
|
o/$MODE/test/libc/release/smokeclang2.com.dbg || exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
touch o/$MODE/test/libc/release/clang.ok
|
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;
|
|
||||||
}
|
|
97
third_party/python/python-modules.mk
vendored
97
third_party/python/python-modules.mk
vendored
|
@ -10,26 +10,32 @@
|
||||||
# these modules are always required
|
# these modules are always required
|
||||||
|
|
||||||
# _elementtree
|
# _elementtree
|
||||||
EXTMODULE_ELEMENTTREE_SRCS_C = \
|
EXTMODULE_ELEMENTTREE_SRCS = \
|
||||||
third_party/python/Modules/_elementtree.c
|
third_party/python/Modules/_elementtree.c
|
||||||
|
|
||||||
EXTMODULE_ELEMENTTREE_OBJS = \
|
EXTMODULE_ELEMENTTREE_OBJS = \
|
||||||
$(EXTMODULE_ELEMENTTREE_SRCS_C:%.c=o/$(MODE)/%.o)
|
$(EXTMODULE_ELEMENTTREE_SRCS:%.c=o/$(MODE)/%.o)
|
||||||
|
|
||||||
# _io
|
# _io
|
||||||
EXTMODULE_IO_SRCS_C = \
|
EXTMODULE_IO_SRCS = \
|
||||||
$(wildcard third_party/python/Modules/_io/*.c)
|
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_OBJS = \
|
||||||
$(EXTMODULE_IO_SRCS_C:%.c=o/$(MODE)/%.o)
|
$(EXTMODULE_IO_SRCS:%.c=o/$(MODE)/%.o)
|
||||||
|
|
||||||
# _tracemalloc
|
# _tracemalloc
|
||||||
EXTMODULE_TRACEMALLOC_SRCS_C = \
|
EXTMODULE_TRACEMALLOC_SRCS = \
|
||||||
third_party/python/Modules/_tracemalloc.c \
|
third_party/python/Modules/_tracemalloc.c \
|
||||||
third_party/python/Modules/hashtable.c
|
third_party/python/Modules/hashtable.c
|
||||||
|
|
||||||
# these modules don't rely on POSIX
|
# 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/gcmodule.c \
|
||||||
third_party/python/Modules/arraymodule.c \
|
third_party/python/Modules/arraymodule.c \
|
||||||
third_party/python/Modules/cmathmodule.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/_bisectmodule.c \
|
||||||
third_party/python/Modules/_heapqmodule.c \
|
third_party/python/Modules/_heapqmodule.c \
|
||||||
third_party/python/Modules/unicodedata.c \
|
third_party/python/Modules/unicodedata.c \
|
||||||
$(EXTMODULE_TRACEMALLOC_SRCS_C) \
|
$(EXTMODULE_TRACEMALLOC_SRCS) \
|
||||||
$(EXTMODULE_ELEMENTTREE_SRCS_C)
|
$(EXTMODULE_ELEMENTTREE_SRCS)
|
||||||
|
|
||||||
|
|
||||||
# these modules require POSIX-compliant libs
|
# 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/main.c \
|
||||||
third_party/python/Modules/posixmodule.c \
|
third_party/python/Modules/posixmodule.c \
|
||||||
third_party/python/Modules/errnomodule.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/mmapmodule.c \
|
||||||
third_party/python/Modules/_csv.c \
|
third_party/python/Modules/_csv.c \
|
||||||
third_party/python/Modules/_localemodule.c \
|
third_party/python/Modules/_localemodule.c \
|
||||||
$(EXTMODULE_IO_SRCS_C)
|
$(EXTMODULE_IO_SRCS)
|
||||||
|
|
||||||
# optional modules
|
# optional modules
|
||||||
|
|
||||||
# _blake
|
# _blake
|
||||||
EXTMODULE_BLAKE_SRCS_C = \
|
EXTMODULE_BLAKE_SRCS = \
|
||||||
$(wildcard third_party/python/Modules/_blake2/*.c)
|
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_OBJS = \
|
||||||
$(EXTMODULE_BLAKE_SRCS_C:%.c=o/$(MODE)/%.o)
|
$(EXTMODULE_BLAKE_SRCS:%.c=o/$(MODE)/%.o)
|
||||||
|
|
||||||
# pyexpat
|
# pyexpat
|
||||||
EXTMODULE_PYEXPAT_SRCS_C = \
|
EXTMODULE_PYEXPAT_SRCS = \
|
||||||
third_party/python/Modules/expat/xmlparse.c \
|
third_party/python/Modules/expat/xmlparse.c \
|
||||||
third_party/python/Modules/expat/xmlrole.c \
|
third_party/python/Modules/expat/xmlrole.c \
|
||||||
third_party/python/Modules/expat/xmltok.c \
|
third_party/python/Modules/expat/xmltok.c \
|
||||||
third_party/python/Modules/pyexpat.c
|
third_party/python/Modules/pyexpat.c
|
||||||
|
|
||||||
EXTMODULE_PYEXPAT_OBJS = \
|
EXTMODULE_PYEXPAT_OBJS = \
|
||||||
$(EXTMODULE_PYEXPAT_SRCS_C:%.c=o/$(MODE)/%.o)
|
$(EXTMODULE_PYEXPAT_SRCS:%.c=o/$(MODE)/%.o)
|
||||||
|
|
||||||
# lsprof
|
# lsprof
|
||||||
EXTMODULE_LSPROF_SRCS_C = \
|
EXTMODULE_LSPROF_SRCS = \
|
||||||
third_party/python/Modules/_lsprof.c \
|
third_party/python/Modules/_lsprof.c \
|
||||||
third_party/python/Modules/rotatingtree.c
|
third_party/python/Modules/rotatingtree.c
|
||||||
|
|
||||||
# CJK codecs
|
# CJK codecs
|
||||||
EXTMODULE_CJKCODECS_SRCS_C = \
|
EXTMODULE_CJKCODECS_SRCS = \
|
||||||
$(wildcard third_party/python/Modules/cjkcodecs/*.c)
|
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
|
# sqlite
|
||||||
|
|
||||||
|
@ -117,20 +131,33 @@ EXTMODULE_CJKCODECS_SRCS_C = \
|
||||||
|
|
||||||
|
|
||||||
# _decimal module (w/libmpdec)
|
# _decimal module (w/libmpdec)
|
||||||
EXTMODULE_DECIMAL_SRCS_C = \
|
EXTMODULE_DECIMAL_SRCS = \
|
||||||
$(wildcard third_party/python/Modules/_decimal/libmpdec/*.c) \
|
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
|
third_party/python/Modules/_decimal/_decimal.c
|
||||||
|
|
||||||
EXTMODULE_DECIMAL_OBJS = \
|
EXTMODULE_DECIMAL_OBJS = \
|
||||||
$(EXTMODULE_DECIMAL_SRCS_C:%.c=o/$(MODE)/%.o)
|
$(EXTMODULE_DECIMAL_SRCS:%.c=o/$(MODE)/%.o)
|
||||||
|
|
||||||
EXTMODULE_OPT_SRCS_C = \
|
EXTMODULE_OPT_SRCS = \
|
||||||
$(EXTMODULE_CJKCODECS_SRCS_C) \
|
$(EXTMODULE_CJKCODECS_SRCS) \
|
||||||
$(EXTMODULE_LSPROF_SRCS_C) \
|
$(EXTMODULE_LSPROF_SRCS) \
|
||||||
$(EXTMODULE_BLAKE_SRCS_C) \
|
$(EXTMODULE_BLAKE_SRCS) \
|
||||||
$(EXTMODULE_LSPROF_SRCS_C) \
|
$(EXTMODULE_LSPROF_SRCS) \
|
||||||
$(EXTMODULE_DECIMAL_SRCS_C) \
|
$(EXTMODULE_DECIMAL_SRCS) \
|
||||||
$(EXTMODULE_PYEXPAT_SRCS_C) \
|
$(EXTMODULE_PYEXPAT_SRCS) \
|
||||||
third_party/python/Modules/socketmodule.c \
|
third_party/python/Modules/socketmodule.c \
|
||||||
third_party/python/Modules/md5module.c \
|
third_party/python/Modules/md5module.c \
|
||||||
third_party/python/Modules/sha1module.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
|
# 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/config.c \
|
||||||
third_party/python/Modules/getbuildinfo.c \
|
third_party/python/Modules/getbuildinfo.c \
|
||||||
third_party/python/Modules/getpath.c \
|
third_party/python/Modules/getpath.c \
|
||||||
$(EXTMODULE_BASE_INDEP_SRCS_C) \
|
$(EXTMODULE_BASE_INDEP_SRCS) \
|
||||||
$(EXTMODULE_BASE_POSIX_SRCS_C) \
|
$(EXTMODULE_BASE_POSIX_SRCS) \
|
||||||
$(EXTMODULE_OPT_SRCS_C)
|
$(EXTMODULE_OPT_SRCS)
|
||||||
|
|
||||||
THIRD_PARTY_PYTHON_MODULES_OBJS = \
|
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 = \
|
THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS = \
|
||||||
|
@ -184,7 +211,7 @@ $(EXTMODULE_ELEMENTTREE_OBJS): \
|
||||||
|
|
||||||
$(EXTMODULE_IO_OBJS): \
|
$(EXTMODULE_IO_OBJS): \
|
||||||
OVERRIDE_CFLAGS += \
|
OVERRIDE_CFLAGS += \
|
||||||
-Ithird_party/python/Modules/_io
|
-Ithird_party/python/Modules/_io
|
||||||
|
|
||||||
$(EXTMODULE_BLAKE_OBJS): \
|
$(EXTMODULE_BLAKE_OBJS): \
|
||||||
OVERRIDE_CFLAGS += \
|
OVERRIDE_CFLAGS += \
|
||||||
|
|
268
third_party/python/python.mk
vendored
268
third_party/python/python.mk
vendored
|
@ -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-modules.mk
|
||||||
include third_party/python/python-stdlib.mk
|
include third_party/python/python-stdlib.mk
|
||||||
|
|
||||||
THIRD_PARTY_PYTHON_OBJECT_SRCS_C = \
|
THIRD_PARTY_PYTHON_OBJECT_SRCS = \
|
||||||
$(wildcard third_party/python/Objects/*.c)
|
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_SRCS = \
|
||||||
third_party/python/Parser/tokenizer_pgen.c \
|
third_party/python/Parser/acceler.c \
|
||||||
third_party/python/Parser/pgenmain.c \
|
third_party/python/Parser/bitset.c \
|
||||||
third_party/python/Parser/printgrammar.c \
|
third_party/python/Parser/firstsets.c \
|
||||||
third_party/python/Parser/parsetok_pgen.c
|
third_party/python/Parser/grammar.c \
|
||||||
THIRD_PARTY_PYTHON_PARSER_SRCS_C = \
|
third_party/python/Parser/grammar1.c \
|
||||||
$(filter-out $(THIRD_PARTY_PYTHON_PARSER_SKIP_SRCS_C),$(wildcard third_party/python/Parser/*.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_CORE_SRCS = \
|
||||||
third_party/python/Python/dynload_%.c \
|
third_party/python/Python/Python-ast.c \
|
||||||
third_party/python/Python/strdup.c \
|
third_party/python/Python/_warnings.c \
|
||||||
third_party/python/Python/thread.c
|
third_party/python/Python/asdl.c \
|
||||||
THIRD_PARTY_PYTHON_CORE_SRCS_C = \
|
third_party/python/Python/ast.c \
|
||||||
$(filter-out $(THIRD_PARTY_PYTHON_CORE_SKIP_SRCS_C),$(wildcard third_party/python/Python/*.c)) \
|
third_party/python/Python/bltinmodule.c \
|
||||||
third_party/python/Python/dynload_shlib.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_SRCS_C = \
|
||||||
third_party/python/Programs/python.c \
|
third_party/python/Programs/python.c \
|
||||||
$(THIRD_PARTY_PYTHON_OBJECT_SRCS_C) \
|
$(THIRD_PARTY_PYTHON_OBJECT_SRCS) \
|
||||||
$(THIRD_PARTY_PYTHON_PARSER_SRCS_C) \
|
$(THIRD_PARTY_PYTHON_PARSER_SRCS) \
|
||||||
$(THIRD_PARTY_PYTHON_CORE_SRCS_C) \
|
$(THIRD_PARTY_PYTHON_CORE_SRCS) \
|
||||||
$(THIRD_PARTY_PYTHON_MODULES_SRCS_C)
|
$(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_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))
|
$(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:%=%.dbg)
|
||||||
THIRD_PARTY_PYTHON_COMS = \
|
THIRD_PARTY_PYTHON_COMS = \
|
||||||
o/$(MODE)/third_party/python/python.com
|
o/$(MODE)/third_party/python/python.com
|
||||||
|
|
||||||
THIRD_PARTY_PYTHON_A_CHECKS = \
|
THIRD_PARTY_PYTHON_A_CHECKS = \
|
||||||
$(THIRD_PARTY_PYTHON_A).pkg
|
$(THIRD_PARTY_PYTHON_A).pkg
|
||||||
# add .h.ok check here
|
# add .h.ok check here
|
||||||
|
|
||||||
THIRD_PARTY_PYTHON_A_DIRECTDEPS0 = \
|
THIRD_PARTY_PYTHON_A_DIRECTDEPS0 = \
|
||||||
$(THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS) \
|
$(THIRD_PARTY_PYTHON_MODULES_DIRECTDEPS) \
|
||||||
LIBC_ALG \
|
LIBC_ALG \
|
||||||
LIBC_BITS \
|
LIBC_BITS \
|
||||||
LIBC_CALLS \
|
LIBC_CALLS \
|
||||||
LIBC_FMT \
|
LIBC_FMT \
|
||||||
LIBC_INTRIN \
|
LIBC_INTRIN \
|
||||||
LIBC_LOG \
|
LIBC_LOG \
|
||||||
LIBC_MEM \
|
LIBC_MEM \
|
||||||
LIBC_NEXGEN32E \
|
LIBC_NEXGEN32E \
|
||||||
LIBC_RAND \
|
LIBC_RAND \
|
||||||
LIBC_RUNTIME \
|
LIBC_RUNTIME \
|
||||||
LIBC_SOCK \
|
LIBC_SOCK \
|
||||||
LIBC_DNS \
|
LIBC_DNS \
|
||||||
LIBC_STDIO \
|
LIBC_STDIO \
|
||||||
LIBC_STR \
|
LIBC_STR \
|
||||||
LIBC_STUBS \
|
LIBC_STUBS \
|
||||||
LIBC_SYSV \
|
LIBC_SYSV \
|
||||||
LIBC_SYSV_CALLS \
|
LIBC_SYSV_CALLS \
|
||||||
LIBC_TIME \
|
LIBC_TIME \
|
||||||
LIBC_TINYMATH \
|
LIBC_TINYMATH \
|
||||||
LIBC_UNICODE \
|
LIBC_UNICODE \
|
||||||
LIBC_ZIPOS \
|
LIBC_ZIPOS \
|
||||||
THIRD_PARTY_GDTOA \
|
THIRD_PARTY_GDTOA \
|
||||||
THIRD_PARTY_GETOPT \
|
THIRD_PARTY_GETOPT \
|
||||||
THIRD_PARTY_MUSL \
|
THIRD_PARTY_MUSL \
|
||||||
THIRD_PARTY_ZLIB
|
THIRD_PARTY_ZLIB
|
||||||
|
|
||||||
THIRD_PARTY_PYTHON_A_DIRECTDEPS = \
|
THIRD_PARTY_PYTHON_A_DIRECTDEPS = \
|
||||||
$(call uniq,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS0))
|
$(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))))
|
$(call uniq,$(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x))))
|
||||||
|
|
||||||
o/$(MODE)/third_party/python/python.com.dbg: \
|
o/$(MODE)/third_party/python/python.com.dbg: \
|
||||||
$(THIRD_PARTY_PYTHON_A_DEPS) \
|
$(THIRD_PARTY_PYTHON_A_DEPS) \
|
||||||
$(THIRD_PARTY_PYTHON_A) \
|
$(THIRD_PARTY_PYTHON_A) \
|
||||||
$(THIRD_PARTY_PYTHON_STDLIB_PY_OBJS) \
|
$(THIRD_PARTY_PYTHON_STDLIB_PY_OBJS) \
|
||||||
o/$(MODE)/third_party/python/Programs/python.o \
|
o/$(MODE)/third_party/python/Programs/python.o \
|
||||||
$(CRT) \
|
$(CRT) \
|
||||||
$(APE)
|
$(APE)
|
||||||
-@$(APELINK)
|
-@$(APELINK)
|
||||||
|
|
||||||
$(THIRD_PARTY_PYTHON_A): \
|
$(THIRD_PARTY_PYTHON_A): \
|
||||||
third_party/python \
|
third_party/python \
|
||||||
$(THIRD_PARTY_PYTHON_A).pkg \
|
$(THIRD_PARTY_PYTHON_A).pkg \
|
||||||
$(THIRD_PARTY_PYTHON_A_OBJS)
|
$(THIRD_PARTY_PYTHON_A_OBJS)
|
||||||
|
|
||||||
$(THIRD_PARTY_PYTHON_A).pkg: \
|
$(THIRD_PARTY_PYTHON_A).pkg: \
|
||||||
$(THIRD_PARTY_PYTHON_A_OBJS) \
|
$(THIRD_PARTY_PYTHON_A_OBJS) \
|
||||||
$(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x)_A).pkg)
|
$(foreach x,$(THIRD_PARTY_PYTHON_A_DIRECTDEPS),$($(x)_A).pkg)
|
||||||
|
|
||||||
$(THIRD_PARTY_PYTHON_OBJS): \
|
$(THIRD_PARTY_PYTHON_OBJS): \
|
||||||
OVERRIDE_CFLAGS += \
|
OVERRIDE_CFLAGS += \
|
||||||
-DPy_BUILD_CORE \
|
-DPy_BUILD_CORE \
|
||||||
-DPLATFORM='"linux"' \
|
-DPLATFORM='"linux"' \
|
||||||
-DMULTIARCH='"x86_64-linux-gnu"' \
|
-DMULTIARCH='"x86_64-linux-gnu"' \
|
||||||
-isystem libc/isystem \
|
-isystem libc/isystem \
|
||||||
-Ithird_party/python \
|
-Ithird_party/python \
|
||||||
-Ithird_party/python/Include
|
-Ithird_party/python/Include
|
||||||
|
|
||||||
o/$(MODE)/third_party/python/Programs/python.o \
|
o/$(MODE)/third_party/python/Programs/python.o \
|
||||||
o/$(MODE)/third_party/python/Python/marshal.o \
|
o/$(MODE)/third_party/python/Python/marshal.o \
|
||||||
o/$(MODE)/third_party/python/Python/sysmodule.o \
|
o/$(MODE)/third_party/python/Python/sysmodule.o \
|
||||||
o/$(MODE)/third_party/python/Modules/selectmodule.o \
|
o/$(MODE)/third_party/python/Modules/selectmodule.o \
|
||||||
o/$(MODE)/third_party/python/Modules/getpath.o \
|
o/$(MODE)/third_party/python/Modules/getpath.o \
|
||||||
o/$(MODE)/third_party/python/Objects/listobject.o: \
|
o/$(MODE)/third_party/python/Objects/listobject.o: \
|
||||||
OVERRIDE_CFLAGS += \
|
OVERRIDE_CFLAGS += \
|
||||||
-DSTACK_FRAME_UNLIMITED
|
-DSTACK_FRAME_UNLIMITED
|
||||||
|
|
||||||
o/$(MODE)/third_party/python/Python/dynload_shlib.o: \
|
o/$(MODE)/third_party/python/Python/dynload_shlib.o: \
|
||||||
OVERRIDE_CFLAGS += \
|
OVERRIDE_CFLAGS += \
|
||||||
-DSOABI='"cpython36m-x86_64-linux-gnu"'
|
-DSOABI='"cpython36m-x86_64-linux-gnu"'
|
||||||
|
|
||||||
o/$(MODE)/third_party/python/Python/sysmodule.o: \
|
o/$(MODE)/third_party/python/Python/sysmodule.o: \
|
||||||
OVERRIDE_CFLAGS += \
|
OVERRIDE_CFLAGS += \
|
||||||
-DABIFLAGS='"m"'
|
-DABIFLAGS='"m"'
|
||||||
|
|
||||||
|
$(THIRD_PARTY_PYTHON_OBJS): \
|
||||||
$(THIRD_PARTY_PYTHON_OBJS): \
|
third_party/python/python.mk \
|
||||||
third_party/python/python.mk \
|
|
||||||
third_party/python/python-modules.mk
|
third_party/python/python-modules.mk
|
||||||
|
|
||||||
.PHONY: o/$(MODE)/third_party/python
|
.PHONY: o/$(MODE)/third_party/python
|
||||||
o/$(MODE)/third_party/python: \
|
o/$(MODE)/third_party/python: \
|
||||||
$(THIRD_PARTY_PYTHON_BINS) \
|
$(THIRD_PARTY_PYTHON_BINS) \
|
||||||
$(THIRD_PARTY_PYTHON_CHECKS)
|
$(THIRD_PARTY_PYTHON_CHECKS)
|
||||||
|
|
Loading…
Reference in a new issue