diff options
author | Ross Burton <ross@burtonini.com> | 2021-11-11 13:57:19 +0000 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2021-11-11 08:59:11 -0500 |
commit | e13d364d7f4e49a7c051e1d0a5435370ea3b0b53 (patch) | |
tree | fb5028cc59c27ab5e6b5e9dcd6b47bcb5eebe10c /recipes-kernel | |
parent | c5d89fea4a3a2da9ed0ddbe8811101644a1402b6 (diff) | |
download | meta-virtualization-e13d364d7f4e49a7c051e1d0a5435370ea3b0b53.tar.gz |
python3-dtc: port to Python 3.10
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r-- | recipes-kernel/dtc/files/ssize.patch | 35 | ||||
-rw-r--r-- | recipes-kernel/dtc/python3-dtc_1.6.1.bb | 3 |
2 files changed, 37 insertions, 1 deletions
diff --git a/recipes-kernel/dtc/files/ssize.patch b/recipes-kernel/dtc/files/ssize.patch new file mode 100644 index 00000000..3156896c --- /dev/null +++ b/recipes-kernel/dtc/files/ssize.patch | |||
@@ -0,0 +1,35 @@ | |||
1 | Python 3.10 has made it mandatory that the 'string+length` formats use ssize_t | ||
2 | instead of int, so define the magic symbol and upcast the ints from the libfdt | ||
3 | API to ssize_t. | ||
4 | |||
5 | Upstream-Status: Pending | ||
6 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
7 | |||
8 | diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i | ||
9 | index 51ee801..075ef70 100644 | ||
10 | --- a/pylibfdt/libfdt.i | ||
11 | +++ b/pylibfdt/libfdt.i | ||
12 | @@ -1044,9 +1044,9 @@ typedef uint32_t fdt32_t; | ||
13 | $result = Py_None; | ||
14 | else | ||
15 | %#if PY_VERSION_HEX >= 0x03000000 | ||
16 | - $result = Py_BuildValue("y#", $1, *arg4); | ||
17 | + $result = Py_BuildValue("y#", $1, (Py_ssize_t)*arg4); | ||
18 | %#else | ||
19 | - $result = Py_BuildValue("s#", $1, *arg4); | ||
20 | + $result = Py_BuildValue("s#", $1, (Py_ssize_t)*arg4); | ||
21 | %#endif | ||
22 | } | ||
23 | |||
24 | diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py | ||
25 | index ef40f15..88ff7d1 100755 | ||
26 | --- a/pylibfdt/setup.py | ||
27 | +++ b/pylibfdt/setup.py | ||
28 | @@ -42,6 +42,7 @@ def get_version(): | ||
29 | libfdt_module = Extension( | ||
30 | '_libfdt', | ||
31 | sources=[os.path.join(srcdir, 'libfdt.i')], | ||
32 | + define_macros=[('PY_SSIZE_T_CLEAN', None)], | ||
33 | include_dirs=[os.path.join(srcdir, '../libfdt')], | ||
34 | libraries=['fdt'], | ||
35 | 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 293c8d3e..d7d45a41 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" | |||
6 | 6 | ||
7 | DEPENDS = "flex-native bison-native swig-native libyaml dtc" | 7 | DEPENDS = "flex-native bison-native swig-native libyaml dtc" |
8 | 8 | ||
9 | SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master" | 9 | SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \ |
10 | file://ssize.patch" | ||
10 | 11 | ||
11 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | 12 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" |
12 | 13 | ||