Signed-off-by: Ross Burton <[email protected]> --- recipes-kernel/dtc/files/ssize.patch | 35 +++++++++++++++++++++++++ recipes-kernel/dtc/python3-dtc_1.6.1.bb | 3 ++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 recipes-kernel/dtc/files/ssize.patch
diff --git a/recipes-kernel/dtc/files/ssize.patch b/recipes-kernel/dtc/files/ssize.patch new file mode 100644 index 0000000..3156896 --- /dev/null +++ b/recipes-kernel/dtc/files/ssize.patch @@ -0,0 +1,35 @@ +Python 3.10 has made it mandatory that the 'string+length` formats use ssize_t +instead of int, so define the magic symbol and upcast the ints from the libfdt +API to ssize_t. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <[email protected]> + +diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i +index 51ee801..075ef70 100644 +--- a/pylibfdt/libfdt.i ++++ b/pylibfdt/libfdt.i +@@ -1044,9 +1044,9 @@ typedef uint32_t fdt32_t; + $result = Py_None; + else + %#if PY_VERSION_HEX >= 0x03000000 +- $result = Py_BuildValue("y#", $1, *arg4); ++ $result = Py_BuildValue("y#", $1, (Py_ssize_t)*arg4); + %#else +- $result = Py_BuildValue("s#", $1, *arg4); ++ $result = Py_BuildValue("s#", $1, (Py_ssize_t)*arg4); + %#endif + } + +diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py +index ef40f15..88ff7d1 100755 +--- a/pylibfdt/setup.py ++++ b/pylibfdt/setup.py +@@ -42,6 +42,7 @@ def get_version(): + libfdt_module = Extension( + '_libfdt', + sources=[os.path.join(srcdir, 'libfdt.i')], ++ define_macros=[('PY_SSIZE_T_CLEAN', None)], + include_dirs=[os.path.join(srcdir, '../libfdt')], + libraries=['fdt'], + library_dirs=[os.path.join(top_builddir, 'libfdt')], diff --git a/recipes-kernel/dtc/python3-dtc_1.6.1.bb b/recipes-kernel/dtc/python3-dtc_1.6.1.bb index 293c8d3..d7d45a4 100644 --- a/recipes-kernel/dtc/python3-dtc_1.6.1.bb +++ b/recipes-kernel/dtc/python3-dtc_1.6.1.bb @@ -6,7 +6,8 @@ LICENSE = "GPLv2 | BSD-2-Clause" DEPENDS = "flex-native bison-native swig-native libyaml dtc" -SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master" +SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \ + file://ssize.patch" UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#6893): https://lists.yoctoproject.org/g/meta-virtualization/message/6893 Mute This Topic: https://lists.yoctoproject.org/mt/86981978/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-virtualization/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
