80 lines
2.7 KiB
Diff
80 lines
2.7 KiB
Diff
From 90478f35a8c78e2e10a4b4a8f135998dc04c91fa Mon Sep 17 00:00:00 2001
|
|
From: Zdenek Dohnal <zdohnal@redhat.com>
|
|
Date: Mon, 14 Jun 2021 15:08:30 +0200
|
|
Subject: [PATCH] patch 8.2.2995: linker errors with dynamic Python 3.10
|
|
|
|
Problem: Linker errors with dynamic Python 3.10.
|
|
Solution: Add a couple of library entries. (Zdenek Dohnal, closes #8381,
|
|
closes #8356)
|
|
---
|
|
src/if_python3.c | 18 ++++++++++++++++++
|
|
src/version.c | 2 ++
|
|
2 files changed, 20 insertions(+)
|
|
|
|
diff --git a/src/if_python3.c b/src/if_python3.c
|
|
index f9c8002da..c7db9d7a2 100644
|
|
--- a/src/if_python3.c
|
|
+++ b/src/if_python3.c
|
|
@@ -184,6 +184,9 @@ typedef PySliceObject PySliceObject_T;
|
|
# ifndef PyMapping_Keys
|
|
# define PyMapping_Keys py3_PyMapping_Keys
|
|
# endif
|
|
+# if PY_VERSION_HEX >= 0x030a00b2
|
|
+# define PyIter_Check py3_PyIter_Check
|
|
+# endif
|
|
# define PyIter_Next py3_PyIter_Next
|
|
# define PyObject_GetIter py3_PyObject_GetIter
|
|
# define PyObject_Repr py3_PyObject_Repr
|
|
@@ -358,6 +361,9 @@ static PyObject* (*py3_PyDict_GetItemString)(PyObject *, const char *);
|
|
static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **);
|
|
static PyObject* (*py3_PyLong_FromLong)(long);
|
|
static PyObject* (*py3_PyDict_New)(void);
|
|
+# if PY_VERSION_HEX >= 0x030a00b2
|
|
+static int (*py3_PyIter_Check)(PyObject *o);
|
|
+# endif
|
|
static PyObject* (*py3_PyIter_Next)(PyObject *);
|
|
static PyObject* (*py3_PyObject_GetIter)(PyObject *);
|
|
static PyObject* (*py3_PyObject_Repr)(PyObject *);
|
|
@@ -538,6 +544,9 @@ static struct
|
|
{"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next},
|
|
{"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check},
|
|
{"PyMapping_Keys", (PYTHON_PROC*)&py3_PyMapping_Keys},
|
|
+# if PY_VERSION_HEX >= 0x030a00b2
|
|
+ {"PyIter_Check", (PYTHON_PROC*)&py3_PyIter_Check},
|
|
+# endif
|
|
{"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next},
|
|
{"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter},
|
|
{"PyObject_Repr", (PYTHON_PROC*)&py3_PyObject_Repr},
|
|
@@ -671,6 +680,15 @@ py3_PyType_HasFeature(PyTypeObject *type, unsigned long feature)
|
|
# define PyType_HasFeature(t,f) py3_PyType_HasFeature(t,f)
|
|
# endif
|
|
|
|
+# if PY_VERSION_HEX >= 0x030a00b2
|
|
+ static inline int
|
|
+py3__PyObject_TypeCheck(PyObject *ob, PyTypeObject *type)
|
|
+{
|
|
+ return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type);
|
|
+}
|
|
+# define _PyObject_TypeCheck(o,t) py3__PyObject_TypeCheck(o,t)
|
|
+# endif
|
|
+
|
|
# ifdef MSWIN
|
|
/*
|
|
* Look up the library "libname" using the InstallPath registry key.
|
|
diff --git a/src/version.c b/src/version.c
|
|
index 58bd42016..b146efb69 100644
|
|
--- a/src/version.c
|
|
+++ b/src/version.c
|
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|
|
|
static int included_patches[] =
|
|
{ /* Add new patch number below this line */
|
|
+/**/
|
|
+ 2995,
|
|
/**/
|
|
2994,
|
|
/**/
|
|
--
|
|
2.31.1
|
|
|