diff mbox series

[2/3] python3-dtc: add from meta-virtualization

Message ID 20230717164124.1026028-2-tgamblin@baylibre.com
State Accepted, archived
Commit 123077ecd9f3c1839da0d7b1474d689e5c6a689c
Headers show
Series [RESEND,1/3] python3-dtschema: upgrade 2023.4 -> 2023.6.1 | expand

Commit Message

Trevor Gamblin July 17, 2023, 4:41 p.m. UTC
This provides pylibfdt, which is a runtime dependency for the dtschema
module that we already carry in oe-core.

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
---
 ...erlay-make-overlay_get_target-public.patch | 132 ++++++++++++++++++
 .../python/python3-dtc_1.6.1.bb               |  26 ++++
 2 files changed, 158 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
 create mode 100644 meta/recipes-devtools/python/python3-dtc_1.6.1.bb

Comments

Alexandre Belloni July 21, 2023, 2:15 p.m. UTC | #1
The following recipes do not have a maintainer assigned to them. Please add an entry to meta/conf/distro/include/maintainers.inc file.
python3-dtc (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-devtools/python/python3-dtc_1.6.1.bb)

;)

On 17/07/2023 12:41:23-0400, Trevor Gamblin wrote:
> This provides pylibfdt, which is a runtime dependency for the dtschema
> module that we already carry in oe-core.
> 
> Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
> ---
>  ...erlay-make-overlay_get_target-public.patch | 132 ++++++++++++++++++
>  .../python/python3-dtc_1.6.1.bb               |  26 ++++
>  2 files changed, 158 insertions(+)
>  create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
>  create mode 100644 meta/recipes-devtools/python/python3-dtc_1.6.1.bb
> 
> diff --git a/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
> new file mode 100644
> index 0000000000..a2df482e3a
> --- /dev/null
> +++ b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
> @@ -0,0 +1,132 @@
> +From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001
> +From: Bruce Ashfield <bruce.ashfield@gmail.com>
> +Date: Wed, 19 Jan 2022 12:46:42 -0500
> +Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public"
> +
> +This reverts commit 45f3d1a095dd3440578d5c6313eba555a791f3fb.
> +
> +Upstream-Status: Inappropriate [embedded specific]
> +
> +---
> + libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++-------
> + libfdt/libfdt.h      | 18 ------------------
> + libfdt/version.lds   |  1 -
> + 3 files changed, 22 insertions(+), 26 deletions(-)
> +
> +diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
> +index 5c0c398..d217e79 100644
> +--- a/libfdt/fdt_overlay.c
> ++++ b/libfdt/fdt_overlay.c
> +@@ -40,22 +40,37 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
> + 	return fdt32_to_cpu(*val);
> + }
> + 
> +-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
> +-			      int fragment_offset, char const **pathp)
> ++/**
> ++ * overlay_get_target - retrieves the offset of a fragment's target
> ++ * @fdt: Base device tree blob
> ++ * @fdto: Device tree overlay blob
> ++ * @fragment: node offset of the fragment in the overlay
> ++ * @pathp: pointer which receives the path of the target (or NULL)
> ++ *
> ++ * overlay_get_target() retrieves the target offset in the base
> ++ * device tree of a fragment, no matter how the actual targeting is
> ++ * done (through a phandle or a path)
> ++ *
> ++ * returns:
> ++ *      the targeted node offset in the base device tree
> ++ *      Negative error code on error
> ++ */
> ++static int overlay_get_target(const void *fdt, const void *fdto,
> ++			      int fragment, char const **pathp)
> + {
> + 	uint32_t phandle;
> + 	const char *path = NULL;
> + 	int path_len = 0, ret;
> + 
> + 	/* Try first to do a phandle based lookup */
> +-	phandle = overlay_get_target_phandle(fdto, fragment_offset);
> ++	phandle = overlay_get_target_phandle(fdto, fragment);
> + 	if (phandle == (uint32_t)-1)
> + 		return -FDT_ERR_BADPHANDLE;
> + 
> + 	/* no phandle, try path */
> + 	if (!phandle) {
> + 		/* And then a path based lookup */
> +-		path = fdt_getprop(fdto, fragment_offset, "target-path", &path_len);
> ++		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
> + 		if (path)
> + 			ret = fdt_path_offset(fdt, path);
> + 		else
> +@@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto)
> + 		if (overlay < 0)
> + 			return overlay;
> + 
> +-		target = fdt_overlay_target_offset(fdt, fdto, fragment, NULL);
> ++		target = overlay_get_target(fdt, fdto, fragment, NULL);
> + 		if (target < 0)
> + 			return target;
> + 
> +@@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
> + 			return -FDT_ERR_BADOVERLAY;
> + 
> + 		/* get the target of the fragment */
> +-		ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
> ++		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
> + 		if (ret < 0)
> + 			return ret;
> + 		target = ret;
> +@@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
> + 
> + 		if (!target_path) {
> + 			/* again in case setprop_placeholder changed it */
> +-			ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
> ++			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
> + 			if (ret < 0)
> + 				return ret;
> + 			target = ret;
> +diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
> +index a7f432c..7f117e8 100644
> +--- a/libfdt/libfdt.h
> ++++ b/libfdt/libfdt.h
> +@@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
> +  */
> + int fdt_overlay_apply(void *fdt, void *fdto);
> + 
> +-/**
> +- * fdt_overlay_target_offset - retrieves the offset of a fragment's target
> +- * @fdt: Base device tree blob
> +- * @fdto: Device tree overlay blob
> +- * @fragment_offset: node offset of the fragment in the overlay
> +- * @pathp: pointer which receives the path of the target (or NULL)
> +- *
> +- * fdt_overlay_target_offset() retrieves the target offset in the base
> +- * device tree of a fragment, no matter how the actual targeting is
> +- * done (through a phandle or a path)
> +- *
> +- * returns:
> +- *      the targeted node offset in the base device tree
> +- *      Negative error code on error
> +- */
> +-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
> +-			      int fragment_offset, char const **pathp);
> +-
> + /**********************************************************************/
> + /* Debugging / informational functions                                */
> + /**********************************************************************/
> +diff --git a/libfdt/version.lds b/libfdt/version.lds
> +index cbce5d4..7ab85f1 100644
> +--- a/libfdt/version.lds
> ++++ b/libfdt/version.lds
> +@@ -77,7 +77,6 @@ LIBFDT_1.2 {
> + 		fdt_appendprop_addrrange;
> + 		fdt_setprop_inplace_namelen_partial;
> + 		fdt_create_with_flags;
> +-		fdt_overlay_target_offset;
> + 	local:
> + 		*;
> + };
> +-- 
> +2.19.1
> +
> diff --git a/meta/recipes-devtools/python/python3-dtc_1.6.1.bb b/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
> new file mode 100644
> index 0000000000..a868bd0109
> --- /dev/null
> +++ b/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
> @@ -0,0 +1,26 @@
> +SUMMARY = "Python Library for the Device Tree Compiler"
> +HOMEPAGE = "https://devicetree.org/"
> +DESCRIPTION = "A python library for the Device Tree Compiler, a tool used to manipulate Device Tree files which contain a data structure for describing hardware."
> +SECTION = "bootloader"
> +LICENSE = "GPL-2.0-only | BSD-2-Clause"
> +
> +DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc"
> +
> +SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
> +           file://0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch \
> +          "
> +
> +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
> +
> +LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
> +
> +SRCREV = "c001fc01a43e7a06447c06ea3d50bd60641322b8"
> +
> +PV = "1.6.1+git${SRCPV}"
> +S = "${WORKDIR}/git"
> +
> +PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
> +
> +inherit setuptools3 pkgconfig
> +
> +BBCLASSEXTEND = "native nativesdk"
> -- 
> 2.41.0
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#184477): https://lists.openembedded.org/g/openembedded-core/message/184477
> Mute This Topic: https://lists.openembedded.org/mt/100198619/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Trevor Gamblin July 21, 2023, 2:26 p.m. UTC | #2
On 2023-07-21 10:15, Alexandre Belloni wrote:
> The following recipes do not have a maintainer assigned to them. Please add an entry to meta/conf/distro/include/maintainers.inc file.
> python3-dtc (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-devtools/python/python3-dtc_1.6.1.bb)
>
> ;)
My bad. v2 coming shortly.
>
> On 17/07/2023 12:41:23-0400, Trevor Gamblin wrote:
>> This provides pylibfdt, which is a runtime dependency for the dtschema
>> module that we already carry in oe-core.
>>
>> Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
>> ---
>>   ...erlay-make-overlay_get_target-public.patch | 132 ++++++++++++++++++
>>   .../python/python3-dtc_1.6.1.bb               |  26 ++++
>>   2 files changed, 158 insertions(+)
>>   create mode 100644 meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
>>   create mode 100644 meta/recipes-devtools/python/python3-dtc_1.6.1.bb
>>
>> diff --git a/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
>> new file mode 100644
>> index 0000000000..a2df482e3a
>> --- /dev/null
>> +++ b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
>> @@ -0,0 +1,132 @@
>> +From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001
>> +From: Bruce Ashfield <bruce.ashfield@gmail.com>
>> +Date: Wed, 19 Jan 2022 12:46:42 -0500
>> +Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public"
>> +
>> +This reverts commit 45f3d1a095dd3440578d5c6313eba555a791f3fb.
>> +
>> +Upstream-Status: Inappropriate [embedded specific]
>> +
>> +---
>> + libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++-------
>> + libfdt/libfdt.h      | 18 ------------------
>> + libfdt/version.lds   |  1 -
>> + 3 files changed, 22 insertions(+), 26 deletions(-)
>> +
>> +diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
>> +index 5c0c398..d217e79 100644
>> +--- a/libfdt/fdt_overlay.c
>> ++++ b/libfdt/fdt_overlay.c
>> +@@ -40,22 +40,37 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
>> + 	return fdt32_to_cpu(*val);
>> + }
>> +
>> +-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
>> +-			      int fragment_offset, char const **pathp)
>> ++/**
>> ++ * overlay_get_target - retrieves the offset of a fragment's target
>> ++ * @fdt: Base device tree blob
>> ++ * @fdto: Device tree overlay blob
>> ++ * @fragment: node offset of the fragment in the overlay
>> ++ * @pathp: pointer which receives the path of the target (or NULL)
>> ++ *
>> ++ * overlay_get_target() retrieves the target offset in the base
>> ++ * device tree of a fragment, no matter how the actual targeting is
>> ++ * done (through a phandle or a path)
>> ++ *
>> ++ * returns:
>> ++ *      the targeted node offset in the base device tree
>> ++ *      Negative error code on error
>> ++ */
>> ++static int overlay_get_target(const void *fdt, const void *fdto,
>> ++			      int fragment, char const **pathp)
>> + {
>> + 	uint32_t phandle;
>> + 	const char *path = NULL;
>> + 	int path_len = 0, ret;
>> +
>> + 	/* Try first to do a phandle based lookup */
>> +-	phandle = overlay_get_target_phandle(fdto, fragment_offset);
>> ++	phandle = overlay_get_target_phandle(fdto, fragment);
>> + 	if (phandle == (uint32_t)-1)
>> + 		return -FDT_ERR_BADPHANDLE;
>> +
>> + 	/* no phandle, try path */
>> + 	if (!phandle) {
>> + 		/* And then a path based lookup */
>> +-		path = fdt_getprop(fdto, fragment_offset, "target-path", &path_len);
>> ++		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
>> + 		if (path)
>> + 			ret = fdt_path_offset(fdt, path);
>> + 		else
>> +@@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto)
>> + 		if (overlay < 0)
>> + 			return overlay;
>> +
>> +-		target = fdt_overlay_target_offset(fdt, fdto, fragment, NULL);
>> ++		target = overlay_get_target(fdt, fdto, fragment, NULL);
>> + 		if (target < 0)
>> + 			return target;
>> +
>> +@@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
>> + 			return -FDT_ERR_BADOVERLAY;
>> +
>> + 		/* get the target of the fragment */
>> +-		ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
>> ++		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
>> + 		if (ret < 0)
>> + 			return ret;
>> + 		target = ret;
>> +@@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
>> +
>> + 		if (!target_path) {
>> + 			/* again in case setprop_placeholder changed it */
>> +-			ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
>> ++			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
>> + 			if (ret < 0)
>> + 				return ret;
>> + 			target = ret;
>> +diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
>> +index a7f432c..7f117e8 100644
>> +--- a/libfdt/libfdt.h
>> ++++ b/libfdt/libfdt.h
>> +@@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
>> +  */
>> + int fdt_overlay_apply(void *fdt, void *fdto);
>> +
>> +-/**
>> +- * fdt_overlay_target_offset - retrieves the offset of a fragment's target
>> +- * @fdt: Base device tree blob
>> +- * @fdto: Device tree overlay blob
>> +- * @fragment_offset: node offset of the fragment in the overlay
>> +- * @pathp: pointer which receives the path of the target (or NULL)
>> +- *
>> +- * fdt_overlay_target_offset() retrieves the target offset in the base
>> +- * device tree of a fragment, no matter how the actual targeting is
>> +- * done (through a phandle or a path)
>> +- *
>> +- * returns:
>> +- *      the targeted node offset in the base device tree
>> +- *      Negative error code on error
>> +- */
>> +-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
>> +-			      int fragment_offset, char const **pathp);
>> +-
>> + /**********************************************************************/
>> + /* Debugging / informational functions                                */
>> + /**********************************************************************/
>> +diff --git a/libfdt/version.lds b/libfdt/version.lds
>> +index cbce5d4..7ab85f1 100644
>> +--- a/libfdt/version.lds
>> ++++ b/libfdt/version.lds
>> +@@ -77,7 +77,6 @@ LIBFDT_1.2 {
>> + 		fdt_appendprop_addrrange;
>> + 		fdt_setprop_inplace_namelen_partial;
>> + 		fdt_create_with_flags;
>> +-		fdt_overlay_target_offset;
>> + 	local:
>> + 		*;
>> + };
>> +--
>> +2.19.1
>> +
>> diff --git a/meta/recipes-devtools/python/python3-dtc_1.6.1.bb b/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
>> new file mode 100644
>> index 0000000000..a868bd0109
>> --- /dev/null
>> +++ b/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
>> @@ -0,0 +1,26 @@
>> +SUMMARY = "Python Library for the Device Tree Compiler"
>> +HOMEPAGE = "https://devicetree.org/"
>> +DESCRIPTION = "A python library for the Device Tree Compiler, a tool used to manipulate Device Tree files which contain a data structure for describing hardware."
>> +SECTION = "bootloader"
>> +LICENSE = "GPL-2.0-only | BSD-2-Clause"
>> +
>> +DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc"
>> +
>> +SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
>> +           file://0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch \
>> +          "
>> +
>> +UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
>> +
>> +LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
>> +
>> +SRCREV = "c001fc01a43e7a06447c06ea3d50bd60641322b8"
>> +
>> +PV = "1.6.1+git${SRCPV}"
>> +S = "${WORKDIR}/git"
>> +
>> +PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
>> +
>> +inherit setuptools3 pkgconfig
>> +
>> +BBCLASSEXTEND = "native nativesdk"
>> -- 
>> 2.41.0
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#184477): https://lists.openembedded.org/g/openembedded-core/message/184477
>> Mute This Topic: https://lists.openembedded.org/mt/100198619/3617179
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
new file mode 100644
index 0000000000..a2df482e3a
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
@@ -0,0 +1,132 @@ 
+From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Wed, 19 Jan 2022 12:46:42 -0500
+Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public"
+
+This reverts commit 45f3d1a095dd3440578d5c6313eba555a791f3fb.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++-------
+ libfdt/libfdt.h      | 18 ------------------
+ libfdt/version.lds   |  1 -
+ 3 files changed, 22 insertions(+), 26 deletions(-)
+
+diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
+index 5c0c398..d217e79 100644
+--- a/libfdt/fdt_overlay.c
++++ b/libfdt/fdt_overlay.c
+@@ -40,22 +40,37 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+ 	return fdt32_to_cpu(*val);
+ }
+ 
+-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
+-			      int fragment_offset, char const **pathp)
++/**
++ * overlay_get_target - retrieves the offset of a fragment's target
++ * @fdt: Base device tree blob
++ * @fdto: Device tree overlay blob
++ * @fragment: node offset of the fragment in the overlay
++ * @pathp: pointer which receives the path of the target (or NULL)
++ *
++ * overlay_get_target() retrieves the target offset in the base
++ * device tree of a fragment, no matter how the actual targeting is
++ * done (through a phandle or a path)
++ *
++ * returns:
++ *      the targeted node offset in the base device tree
++ *      Negative error code on error
++ */
++static int overlay_get_target(const void *fdt, const void *fdto,
++			      int fragment, char const **pathp)
+ {
+ 	uint32_t phandle;
+ 	const char *path = NULL;
+ 	int path_len = 0, ret;
+ 
+ 	/* Try first to do a phandle based lookup */
+-	phandle = overlay_get_target_phandle(fdto, fragment_offset);
++	phandle = overlay_get_target_phandle(fdto, fragment);
+ 	if (phandle == (uint32_t)-1)
+ 		return -FDT_ERR_BADPHANDLE;
+ 
+ 	/* no phandle, try path */
+ 	if (!phandle) {
+ 		/* And then a path based lookup */
+-		path = fdt_getprop(fdto, fragment_offset, "target-path", &path_len);
++		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+ 		if (path)
+ 			ret = fdt_path_offset(fdt, path);
+ 		else
+@@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto)
+ 		if (overlay < 0)
+ 			return overlay;
+ 
+-		target = fdt_overlay_target_offset(fdt, fdto, fragment, NULL);
++		target = overlay_get_target(fdt, fdto, fragment, NULL);
+ 		if (target < 0)
+ 			return target;
+ 
+@@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
+ 			return -FDT_ERR_BADOVERLAY;
+ 
+ 		/* get the target of the fragment */
+-		ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
++		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+ 		if (ret < 0)
+ 			return ret;
+ 		target = ret;
+@@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
+ 
+ 		if (!target_path) {
+ 			/* again in case setprop_placeholder changed it */
+-			ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
++			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+ 			if (ret < 0)
+ 				return ret;
+ 			target = ret;
+diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
+index a7f432c..7f117e8 100644
+--- a/libfdt/libfdt.h
++++ b/libfdt/libfdt.h
+@@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
+  */
+ int fdt_overlay_apply(void *fdt, void *fdto);
+ 
+-/**
+- * fdt_overlay_target_offset - retrieves the offset of a fragment's target
+- * @fdt: Base device tree blob
+- * @fdto: Device tree overlay blob
+- * @fragment_offset: node offset of the fragment in the overlay
+- * @pathp: pointer which receives the path of the target (or NULL)
+- *
+- * fdt_overlay_target_offset() retrieves the target offset in the base
+- * device tree of a fragment, no matter how the actual targeting is
+- * done (through a phandle or a path)
+- *
+- * returns:
+- *      the targeted node offset in the base device tree
+- *      Negative error code on error
+- */
+-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
+-			      int fragment_offset, char const **pathp);
+-
+ /**********************************************************************/
+ /* Debugging / informational functions                                */
+ /**********************************************************************/
+diff --git a/libfdt/version.lds b/libfdt/version.lds
+index cbce5d4..7ab85f1 100644
+--- a/libfdt/version.lds
++++ b/libfdt/version.lds
+@@ -77,7 +77,6 @@ LIBFDT_1.2 {
+ 		fdt_appendprop_addrrange;
+ 		fdt_setprop_inplace_namelen_partial;
+ 		fdt_create_with_flags;
+-		fdt_overlay_target_offset;
+ 	local:
+ 		*;
+ };
+-- 
+2.19.1
+
diff --git a/meta/recipes-devtools/python/python3-dtc_1.6.1.bb b/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
new file mode 100644
index 0000000000..a868bd0109
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
@@ -0,0 +1,26 @@ 
+SUMMARY = "Python Library for the Device Tree Compiler"
+HOMEPAGE = "https://devicetree.org/"
+DESCRIPTION = "A python library for the Device Tree Compiler, a tool used to manipulate Device Tree files which contain a data structure for describing hardware."
+SECTION = "bootloader"
+LICENSE = "GPL-2.0-only | BSD-2-Clause"
+
+DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
+           file://0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch \
+          "
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
+
+SRCREV = "c001fc01a43e7a06447c06ea3d50bd60641322b8"
+
+PV = "1.6.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
+
+inherit setuptools3 pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"