# Backported from https://github.com/dgibson/dtc/commit/383e148b70a4

diff -upr dtc-1.6.1.orig/pylibfdt/libfdt.i dtc-1.6.1/pylibfdt/libfdt.i
--- dtc-1.6.1.orig/pylibfdt/libfdt.i	2021-06-08 10:00:49.000000000 +0300
+++ dtc-1.6.1/pylibfdt/libfdt.i	2021-12-02 02:27:27.747063911 +0200
@@ -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 -upr dtc-1.6.1.orig/pylibfdt/setup.py dtc-1.6.1/pylibfdt/setup.py
--- dtc-1.6.1.orig/pylibfdt/setup.py	2021-06-08 10:00:49.000000000 +0300
+++ dtc-1.6.1/pylibfdt/setup.py	2021-12-02 02:28:05.914736698 +0200
@@ -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')],
