From: Marek Marczykowski-Górecki Date: Tue, 21 Mar 2023 12:43:44 +0000 (+0100) Subject: tools/python: change 's#' size type for Python >= 3.10 X-Git-Tag: archive/raspbian/4.17.1+2-gb773c48e36-1+rpi1~1^2~30^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=651ffe2c7847cb9922d22980984a3bea6f47bea7;p=xen.git tools/python: change 's#' size type for Python >= 3.10 Python < 3.10 by default uses 'int' type for data+size string types (s#), unless PY_SSIZE_T_CLEAN is defined - in which case it uses Py_ssize_t. The former behavior was removed in Python 3.10 and now it's required to define PY_SSIZE_T_CLEAN before including Python.h, and using Py_ssize_t for the length argument. The PY_SSIZE_T_CLEAN behavior is supported since Python 2.5. Adjust bindings accordingly. Signed-off-by: Marek Marczykowski-Górecki Reviewed-by: Anthony PERARD master commit: 897257ba49d0a6ddcf084960fd792ccce9c40f94 master date: 2023-02-06 08:50:13 +0100 --- diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c index fd00861032..cfb2734a99 100644 --- a/tools/python/xen/lowlevel/xc/xc.c +++ b/tools/python/xen/lowlevel/xc/xc.c @@ -4,6 +4,7 @@ * Copyright (c) 2003-2004, K A Fraser (University of Cambridge) */ +#define PY_SSIZE_T_CLEAN #include #define XC_WANT_COMPAT_MAP_FOREIGN_API #include @@ -1774,7 +1775,7 @@ static PyObject *pyflask_load(PyObject *self, PyObject *args, PyObject *kwds) { xc_interface *xc_handle; char *policy; - uint32_t len; + Py_ssize_t len; int ret; static char *kwd_list[] = { "policy", NULL }; diff --git a/tools/python/xen/lowlevel/xs/xs.c b/tools/python/xen/lowlevel/xs/xs.c index 0dad7fa5f2..3ba5a8b893 100644 --- a/tools/python/xen/lowlevel/xs/xs.c +++ b/tools/python/xen/lowlevel/xs/xs.c @@ -18,6 +18,7 @@ * Copyright (C) 2005 XenSource Ltd. */ +#define PY_SSIZE_T_CLEAN #include #include @@ -141,7 +142,7 @@ static PyObject *xspy_write(XsHandle *self, PyObject *args) char *thstr; char *path; char *data; - int data_n; + Py_ssize_t data_n; bool result; if (!xh)