From a62b45cf541cf47d136bdff87dff4c13fd4296c2 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Fri, 7 Jun 2019 15:57:13 +0200 Subject: [PATCH] Adapt to upcoming Python 3.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ...which changed PyTypeObject in "bpo-36974: implement PEP 590 (GH-13185)". Change-Id: I687ec38aeda05d0747b9ed08221db75a758bed51 Reviewed-on: https://gerrit.libreoffice.org/73664 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara (cherry picked from commit 2bd585f31d7abb066e3f53d9b29c822af20aea69) Reviewed-on: https://gerrit.libreoffice.org/73778 --- pyuno/source/module/pyuno.cxx | 9 ++++++++- pyuno/source/module/pyuno_callable.cxx | 9 ++++++++- pyuno/source/module/pyuno_iterator.cxx | 18 ++++++++++++++++-- pyuno/source/module/pyuno_runtime.cxx | 9 ++++++++- pyuno/source/module/pyuno_struct.cxx | 9 ++++++++- 5 files changed, 48 insertions(+), 6 deletions(-) diff --git a/pyuno/source/module/pyuno.cxx b/pyuno/source/module/pyuno.cxx index f5f23bf058fa..e59319030eb8 100644 --- a/pyuno/source/module/pyuno.cxx +++ b/pyuno/source/module/pyuno.cxx @@ -1636,7 +1636,11 @@ static PyTypeObject PyUNOType = sizeof (PyUNO), 0, PyUNO_del, - nullptr, +#if PY_VERSION_HEX >= 0x03080000 + 0, // Py_ssize_t tp_vectorcall_offset +#else + nullptr, // printfunc tp_print +#endif PyUNO_getattr, PyUNO_setattr, /* this type does not exist in Python 3: (cmpfunc) */ nullptr, @@ -1680,6 +1684,9 @@ static PyTypeObject PyUNOType = , 0 #if PY_VERSION_HEX >= 0x03040000 , nullptr +#if PY_VERSION_HEX >= 0x03080000 + , nullptr // vectorcallfunc tp_vectorcall +#endif #endif }; diff --git a/pyuno/source/module/pyuno_callable.cxx b/pyuno/source/module/pyuno_callable.cxx index 6519d20734c9..656d1c84cb0e 100644 --- a/pyuno/source/module/pyuno_callable.cxx +++ b/pyuno/source/module/pyuno_callable.cxx @@ -181,7 +181,11 @@ static PyTypeObject PyUNO_callable_Type = sizeof (PyUNO_callable), 0, ::pyuno::PyUNO_callable_del, - nullptr, +#if PY_VERSION_HEX >= 0x03080000 + 0, // Py_ssize_t tp_vectorcall_offset +#else + nullptr, // printfunc tp_print +#endif nullptr, nullptr, nullptr, @@ -225,6 +229,9 @@ static PyTypeObject PyUNO_callable_Type = , 0 #if PY_VERSION_HEX >= 0x03040000 , nullptr +#if PY_VERSION_HEX >= 0x03080000 + , nullptr // vectorcallfunc tp_vectorcall +#endif #endif }; diff --git a/pyuno/source/module/pyuno_iterator.cxx b/pyuno/source/module/pyuno_iterator.cxx index 5f643c13b67e..a7862857d719 100644 --- a/pyuno/source/module/pyuno_iterator.cxx +++ b/pyuno/source/module/pyuno_iterator.cxx @@ -118,7 +118,11 @@ static PyTypeObject PyUNO_iterator_Type = sizeof (PyUNO_iterator), 0, PyUNO_iterator_del, - nullptr, +#if PY_VERSION_HEX >= 0x03080000 + 0, // Py_ssize_t tp_vectorcall_offset +#else + nullptr, // printfunc tp_print +#endif nullptr, nullptr, nullptr, @@ -162,6 +166,9 @@ static PyTypeObject PyUNO_iterator_Type = 0 #if PY_VERSION_HEX >= 0x03040000 , nullptr +#if PY_VERSION_HEX >= 0x03080000 + , nullptr // vectorcallfunc tp_vectorcall +#endif #endif }; @@ -248,7 +255,11 @@ static PyTypeObject PyUNO_list_iterator_Type = sizeof (PyUNO_list_iterator), 0, PyUNO_list_iterator_del, - nullptr, +#if PY_VERSION_HEX >= 0x03080000 + 0, // Py_ssize_t tp_vectorcall_offset +#else + nullptr, // printfunc tp_print +#endif nullptr, nullptr, nullptr, @@ -292,6 +303,9 @@ static PyTypeObject PyUNO_list_iterator_Type = 0 #if PY_VERSION_HEX >= 0x03040000 , nullptr +#if PY_VERSION_HEX >= 0x03080000 + , nullptr // vectorcallfunc tp_vectorcall +#endif #endif }; diff --git a/pyuno/source/module/pyuno_runtime.cxx b/pyuno/source/module/pyuno_runtime.cxx index 9887c1fbc828..d307f9af363c 100644 --- a/pyuno/source/module/pyuno_runtime.cxx +++ b/pyuno/source/module/pyuno_runtime.cxx @@ -75,7 +75,11 @@ static PyTypeObject RuntimeImpl_Type = sizeof (RuntimeImpl), 0, RuntimeImpl::del, - nullptr, +#if PY_VERSION_HEX >= 0x03080000 + 0, // Py_ssize_t tp_vectorcall_offset +#else + nullptr, // printfunc tp_print +#endif nullptr, nullptr, nullptr, @@ -119,6 +123,9 @@ static PyTypeObject RuntimeImpl_Type = , 0 #if PY_VERSION_HEX >= 0x03040000 , nullptr +#if PY_VERSION_HEX >= 0x03080000 + , nullptr // vectorcallfunc tp_vectorcall +#endif #endif }; diff --git a/pyuno/source/module/pyuno_struct.cxx b/pyuno/source/module/pyuno_struct.cxx index 7088fc346145..9ad9439318ce 100644 --- a/pyuno/source/module/pyuno_struct.cxx +++ b/pyuno/source/module/pyuno_struct.cxx @@ -296,7 +296,11 @@ static PyTypeObject PyUNOStructType = sizeof (PyUNO), 0, PyUNOStruct_del, - nullptr, +#if PY_VERSION_HEX >= 0x03080000 + 0, // Py_ssize_t tp_vectorcall_offset +#else + nullptr, // printfunc tp_print +#endif PyUNOStruct_getattr, PyUNOStruct_setattr, /* this type does not exist in Python 3: (cmpfunc) */ nullptr, @@ -340,6 +344,9 @@ static PyTypeObject PyUNOStructType = , 0 #if PY_VERSION_HEX >= 0x03040000 , nullptr +#if PY_VERSION_HEX >= 0x03080000 + , nullptr // vectorcallfunc tp_vectorcall +#endif #endif }; diff --git a/configure.ac b/configure.ac index 77cbacb109b6..39dd082b8366 100644 --- a/configure.ac +++ b/configure.ac @@ -8574,6 +8574,9 @@ if test $enable_python = system; then if test -z "$PKG_CONFIG"; then PYTHON_CFLAGS="-I$python_include" PYTHON_LIBS="-L$python_libdir -lpython$python_version $python_libs" + elif $PKG_CONFIG --exists python-$python_version-embed; then + PYTHON_CFLAGS="`$PKG_CONFIG --cflags python-$python_version-embed`" + PYTHON_LIBS="`$PKG_CONFIG --libs python-$python_version-embed` $python_libs" elif $PKG_CONFIG --exists python-$python_version; then PYTHON_CFLAGS="`$PKG_CONFIG --cflags python-$python_version`" PYTHON_LIBS="`$PKG_CONFIG --libs python-$python_version` $python_libs"