mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.1225: linker errors when building with dynamic Python 3.9
Problem: Linker errors when building with dynamic Python 3.9. Solution: Add #defined items. (closes #6461)
This commit is contained in:
@@ -203,6 +203,9 @@ typedef PySliceObject PySliceObject_T;
|
|||||||
# define PySys_GetObject py3_PySys_GetObject
|
# define PySys_GetObject py3_PySys_GetObject
|
||||||
# define PySys_SetArgv py3_PySys_SetArgv
|
# define PySys_SetArgv py3_PySys_SetArgv
|
||||||
# define PyType_Ready py3_PyType_Ready
|
# define PyType_Ready py3_PyType_Ready
|
||||||
|
# if PY_VERSION_HEX >= 0x030900b0
|
||||||
|
# define PyType_GetFlags py3_PyType_GetFlags
|
||||||
|
# endif
|
||||||
#undef Py_BuildValue
|
#undef Py_BuildValue
|
||||||
# define Py_BuildValue py3_Py_BuildValue
|
# define Py_BuildValue py3_Py_BuildValue
|
||||||
# define Py_SetPythonHome py3_Py_SetPythonHome
|
# define Py_SetPythonHome py3_Py_SetPythonHome
|
||||||
@@ -233,6 +236,9 @@ typedef PySliceObject PySliceObject_T;
|
|||||||
# define PyBytes_FromString py3_PyBytes_FromString
|
# define PyBytes_FromString py3_PyBytes_FromString
|
||||||
# undef PyBytes_FromStringAndSize
|
# undef PyBytes_FromStringAndSize
|
||||||
# define PyBytes_FromStringAndSize py3_PyBytes_FromStringAndSize
|
# define PyBytes_FromStringAndSize py3_PyBytes_FromStringAndSize
|
||||||
|
# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0
|
||||||
|
# define _Py_Dealloc py3__Py_Dealloc
|
||||||
|
# endif
|
||||||
# define PyFloat_FromDouble py3_PyFloat_FromDouble
|
# define PyFloat_FromDouble py3_PyFloat_FromDouble
|
||||||
# define PyFloat_AsDouble py3_PyFloat_AsDouble
|
# define PyFloat_AsDouble py3_PyFloat_AsDouble
|
||||||
# define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
|
# define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
|
||||||
@@ -247,7 +253,6 @@ typedef PySliceObject PySliceObject_T;
|
|||||||
# ifdef Py_DEBUG
|
# ifdef Py_DEBUG
|
||||||
# define _Py_NegativeRefcount py3__Py_NegativeRefcount
|
# define _Py_NegativeRefcount py3__Py_NegativeRefcount
|
||||||
# define _Py_RefTotal (*py3__Py_RefTotal)
|
# define _Py_RefTotal (*py3__Py_RefTotal)
|
||||||
# define _Py_Dealloc py3__Py_Dealloc
|
|
||||||
# define PyModule_Create2TraceRefs py3_PyModule_Create2TraceRefs
|
# define PyModule_Create2TraceRefs py3_PyModule_Create2TraceRefs
|
||||||
# else
|
# else
|
||||||
# define PyModule_Create2 py3_PyModule_Create2
|
# define PyModule_Create2 py3_PyModule_Create2
|
||||||
@@ -287,6 +292,10 @@ typedef PySliceObject PySliceObject_T;
|
|||||||
# define PyObject_NEW(type, typeobj) \
|
# define PyObject_NEW(type, typeobj) \
|
||||||
( (type *) PyObject_Init( \
|
( (type *) PyObject_Init( \
|
||||||
(PyObject *) _PyObject_DebugMalloc( _PyObject_SIZE(typeobj) ), (typeobj)) )
|
(PyObject *) _PyObject_DebugMalloc( _PyObject_SIZE(typeobj) ), (typeobj)) )
|
||||||
|
# elif PY_VERSION_HEX >= 0x030900b0
|
||||||
|
# undef PyObject_NEW
|
||||||
|
# define PyObject_NEW(type, typeobj) \
|
||||||
|
((type *)py3__PyObject_New(typeobj))
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -352,6 +361,9 @@ static PyObject* (*py3_PyObject_Repr)(PyObject *);
|
|||||||
static PyObject* (*py3_PyObject_GetItem)(PyObject *, PyObject *);
|
static PyObject* (*py3_PyObject_GetItem)(PyObject *, PyObject *);
|
||||||
static int (*py3_PyObject_IsTrue)(PyObject *);
|
static int (*py3_PyObject_IsTrue)(PyObject *);
|
||||||
static PyObject* (*py3_Py_BuildValue)(char *, ...);
|
static PyObject* (*py3_Py_BuildValue)(char *, ...);
|
||||||
|
# if PY_VERSION_HEX >= 0x030900b0
|
||||||
|
static int (*py3_PyType_GetFlags)(PyTypeObject *o);
|
||||||
|
# endif
|
||||||
static int (*py3_PyType_Ready)(PyTypeObject *type);
|
static int (*py3_PyType_Ready)(PyTypeObject *type);
|
||||||
static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
|
static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
|
||||||
static PyObject* (*py3_PyUnicode_FromString)(const char *u);
|
static PyObject* (*py3_PyUnicode_FromString)(const char *u);
|
||||||
@@ -396,6 +408,12 @@ static char* (*py3_PyBytes_AsString)(PyObject *bytes);
|
|||||||
static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, Py_ssize_t *length);
|
static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, Py_ssize_t *length);
|
||||||
static PyObject* (*py3_PyBytes_FromString)(char *str);
|
static PyObject* (*py3_PyBytes_FromString)(char *str);
|
||||||
static PyObject* (*py3_PyBytes_FromStringAndSize)(char *str, Py_ssize_t length);
|
static PyObject* (*py3_PyBytes_FromStringAndSize)(char *str, Py_ssize_t length);
|
||||||
|
# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0
|
||||||
|
static void (*py3__Py_Dealloc)(PyObject *obj);
|
||||||
|
# endif
|
||||||
|
# if PY_VERSION_HEX >= 0x030900b0
|
||||||
|
static PyObject* (*py3__PyObject_New)(PyTypeObject *);
|
||||||
|
# endif
|
||||||
static PyObject* (*py3_PyFloat_FromDouble)(double num);
|
static PyObject* (*py3_PyFloat_FromDouble)(double num);
|
||||||
static double (*py3_PyFloat_AsDouble)(PyObject *);
|
static double (*py3_PyFloat_AsDouble)(PyObject *);
|
||||||
static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
|
static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
|
||||||
@@ -414,7 +432,6 @@ static void* (*py3_PyCapsule_GetPointer)(PyObject *, char *);
|
|||||||
# ifdef Py_DEBUG
|
# ifdef Py_DEBUG
|
||||||
static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
|
static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
|
||||||
static Py_ssize_t* py3__Py_RefTotal;
|
static Py_ssize_t* py3__Py_RefTotal;
|
||||||
static void (*py3__Py_Dealloc)(PyObject *obj);
|
|
||||||
static PyObject* (*py3_PyModule_Create2TraceRefs)(struct PyModuleDef* module, int module_api_version);
|
static PyObject* (*py3_PyModule_Create2TraceRefs)(struct PyModuleDef* module, int module_api_version);
|
||||||
# else
|
# else
|
||||||
static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
|
static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
|
||||||
@@ -525,6 +542,9 @@ static struct
|
|||||||
{"PyObject_IsTrue", (PYTHON_PROC*)&py3_PyObject_IsTrue},
|
{"PyObject_IsTrue", (PYTHON_PROC*)&py3_PyObject_IsTrue},
|
||||||
{"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong},
|
{"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong},
|
||||||
{"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New},
|
{"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New},
|
||||||
|
# if PY_VERSION_HEX >= 0x030900b0
|
||||||
|
{"PyType_GetFlags", (PYTHON_PROC*)&py3_PyType_GetFlags},
|
||||||
|
# endif
|
||||||
{"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready},
|
{"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready},
|
||||||
{"PyDict_SetItemString", (PYTHON_PROC*)&py3_PyDict_SetItemString},
|
{"PyDict_SetItemString", (PYTHON_PROC*)&py3_PyDict_SetItemString},
|
||||||
{"PyLong_AsLong", (PYTHON_PROC*)&py3_PyLong_AsLong},
|
{"PyLong_AsLong", (PYTHON_PROC*)&py3_PyLong_AsLong},
|
||||||
@@ -562,6 +582,12 @@ static struct
|
|||||||
{"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
|
{"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize},
|
||||||
{"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
|
{"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
|
||||||
{"PyBytes_FromStringAndSize", (PYTHON_PROC*)&py3_PyBytes_FromStringAndSize},
|
{"PyBytes_FromStringAndSize", (PYTHON_PROC*)&py3_PyBytes_FromStringAndSize},
|
||||||
|
# if defined(Py_DEBUG) || PY_VERSION_HEX >= 0x030900b0
|
||||||
|
{"_Py_Dealloc", (PYTHON_PROC*)&py3__Py_Dealloc},
|
||||||
|
# endif
|
||||||
|
# if PY_VERSION_HEX >= 0x030900b0
|
||||||
|
{"_PyObject_New", (PYTHON_PROC*)&py3__PyObject_New},
|
||||||
|
# endif
|
||||||
{"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble},
|
{"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble},
|
||||||
{"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble},
|
{"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble},
|
||||||
{"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
|
{"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
|
||||||
@@ -578,7 +604,6 @@ static struct
|
|||||||
# ifdef Py_DEBUG
|
# ifdef Py_DEBUG
|
||||||
{"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
|
{"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
|
||||||
{"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal},
|
{"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal},
|
||||||
{"_Py_Dealloc", (PYTHON_PROC*)&py3__Py_Dealloc},
|
|
||||||
{"PyModule_Create2TraceRefs", (PYTHON_PROC*)&py3_PyModule_Create2TraceRefs},
|
{"PyModule_Create2TraceRefs", (PYTHON_PROC*)&py3_PyModule_Create2TraceRefs},
|
||||||
# else
|
# else
|
||||||
{"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
|
{"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
|
||||||
@@ -634,6 +659,15 @@ py3__Py_XDECREF(PyObject *op)
|
|||||||
# define Py_XDECREF(op) py3__Py_XDECREF(_PyObject_CAST(op))
|
# define Py_XDECREF(op) py3__Py_XDECREF(_PyObject_CAST(op))
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if PY_VERSION_HEX >= 0x030900b0
|
||||||
|
static inline int
|
||||||
|
py3_PyType_HasFeature(PyTypeObject *type, unsigned long feature)
|
||||||
|
{
|
||||||
|
return ((PyType_GetFlags(type) & feature) != 0);
|
||||||
|
}
|
||||||
|
# define PyType_HasFeature(t,f) py3_PyType_HasFeature(t,f)
|
||||||
|
# endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Load library and get all pointers.
|
* Load library and get all pointers.
|
||||||
* Parameter 'libname' provides name of DLL.
|
* Parameter 'libname' provides name of DLL.
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1225,
|
||||||
/**/
|
/**/
|
||||||
1224,
|
1224,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user