On 8/11/26 15:34, Jaipaul Cheernam wrote:
SWIG 4.5.0 removed Python 2 compatibility macros (PyInt_*, PyString_*) from its runtime header pyhead.swg (see commit 79f7a2b7cb7d). Replace them with their Python 3 C API equivalents:- PyString_FromString -> PyUnicode_FromString - PyString_AsString -> PyBytes_AsString - PyInt_AsLong -> PyLong_AsLong The replacements are safe since the macros were already aliased to these exact functions in SWIG's Python 3 code path. This is a backport of dtc commit 5008d1d6a356 ("pylibfdt: Replace removed SWIG Python 2 compatibility macros"). Signed-off-by: Jaipaul Cheernam <[email protected]> --- scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Jérémie Dautheribes <[email protected]> Tested-by: Jérémie Dautheribes <[email protected]>
diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped index e4659489..326a15c7 100644 --- a/scripts/dtc/pylibfdt/libfdt.i_shipped +++ b/scripts/dtc/pylibfdt/libfdt.i_shipped @@ -1033,7 +1033,7 @@ typedef uint32_t fdt32_t; PyObject *buff;if ($1) {- resultobj = PyString_FromString( + resultobj = PyUnicode_FromString( fdt_string(fdt1, fdt32_to_cpu($1->nameoff))); buff = PyByteArray_FromStringAndSize( (const char *)($1 + 1), fdt32_to_cpu($1->len)); @@ -1064,13 +1064,13 @@ typedef uint32_t fdt32_t; } $1 = PyBytes_AsString($input); %#else - $1 = PyString_AsString($input); /* char *str */ + $1 = PyBytes_AsString($input); /* char *str */ %#endif }/* typemaps used for fdt_next_node() */%typemap(in, numinputs=1) int *depth (int depth) { - depth = (int) PyInt_AsLong($input); + depth = (int) PyLong_AsLong($input); $1 = &depth; }
-- Jérémie Dautheribes, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
