On Thu, Sep 26, 2024 at 4:51 AM Ross Burton via lists.openembedded.org
<[email protected]> wrote:
>
> This breaks meta-virt, which uses python3-dtc in its build:
>
> Traceback (most recent call last):
> File 
> "[...]/work/qemuarm64-poky-linux/xen-image-minimal/1.0/recipe-sysroot-native/usr/bin/lopper",
>  line 8, in <module>
> sys.exit(main())
> ^^^^^^
> File 
> "[...]/work/qemuarm64-poky-linux/xen-image-minimal/1.0/recipe-sysroot-native/usr/lib/python3.12/site-packages/lopper/__main__.py",
>  line 220, in main
> import lopper.fdt
> File 
> "[...]/work/qemuarm64-poky-linux/xen-image-minimal/1.0/recipe-sysroot-native/usr/lib/python3.12/site-packages/lopper/fdt.py",
>  line 46, in <module>
> import libfdt
> File 
> "[...]/work/qemuarm64-poky-linux/xen-image-minimal/1.0/recipe-sysroot-native/usr/lib/python3.12/site-packages/libfdt.py",
>  line 12, in <module>
> import _libfdt
> ImportError: 
> [...]/work/qemuarm64-poky-linux/xen-image-minimal/1.0/recipe-sysroot-native/usr/lib/python3.12/site-packages/_libfdt.cpython-312-x86_64-linux-gnu.so:
>  undefined symbol: fdt_get_symbol
>

Having the libfdt.so (dtc) installed on the build host vs not having
it can also make the difference. Maybe it needs a dependency
on dtc-native to avoid that sort of problem.

> Ross
>
> > On 24 Sep 2024, at 16:00, Trevor Gamblin via lists.openembedded.org 
> > <[email protected]> wrote:
> >
> > Patch '0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch'
> > had to be adjusted to apply on the latest version.
> >
> > Changelog:
> >
> > 99031e3 (tag: v1.7.1, origin/master, origin/main, origin/HEAD, master) Bump 
> > version to v1.7.1
> > 3d5e376 setup: Move setting of srcdir down to the bottom
> > e277553 setup: Collect top-level code together
> > 7e5a889 setup: Move version and full_description into a function
> > 78b6a85 Tidy up some pylint warnings
> > 3501d37 Require Python 3
> > bcd02b5 fdtoverlay: remove wrong singular article in a comment
> > 84b056a checks: relax graph checks for overlays
> > 1df7b04 pylibfdt/Makefile.pylibfdt: use project's flags to compile the 
> > extension
> > 61e88fd libfdt: overlay: Fix phandle overwrite check for new subtrees
> > 49d3089 meson: fix installation with meson-python
> > d54aaf9 pylibfdt: clean up python build directory
> > ab86f1e pylibfdt: add VERSION.txt to Python sdist
> > 7b8a30e pylibfdt: fix Python version
> > ff4f17e pylibfdt/Makefile.pylibfdt: fix Python library being rebuild during 
> > install
> > 9e313b1 pylibfdt/meson.build: fix Python library being rebuilt during 
> > install
> > d598fc3 tests/run_tests.sh: fix Meson library path being dropped
> > b98239d tests/meson.build: fix python and yaml tests not running
> > c17d76a checks: Check the overall length of "interrupt-map"
> > ae26223 libfdt: overlay: Refactor overlay_fixup_phandle
> > 4dd831a libfdt: tests: Update test case for overlay_bad_fixup
> > e6d2942 tests: Remove two_roots and named_root from LIBTREE_TESTS_L and add 
> > all dtb filenames generated by dumptrees to TESTS_TREES_L in Makefile.tests
> > 855c934 tests: fix tests broken under Meson
> > 4fd3f4f github: enforce testing pylibfdt and yaml support
> > 9ca7d62 meson: split run-tests by type
> > bb51223 meson: fix dependencies of tests
> > e819006 meson: fix pylibfdt missing dependency on libfdt
> > 8221238 pylibfdt: fix get_mem_rsv for newer Python versions
> > 1fad065 libfdt: overlay: ensure that existing phandles are not overwritten
> > b0aacd0 github: add windows/msys CI build
> > ae97d97 github: Don't accidentally suppress test errors
> > 057a7db github: Display meson test logs on failure
> > 92b5d4e pylibfdt: Remove some apparently deprecated options from setup.py
> > 417e329 github: Update to newer checkout action
> > 5e6cefa fix MinGW format attribute
> > 24f6001 libfdt: Simplify adjustment of values for local fixups
> > da39ee0 libfdt: rework shared/static libraries
> > a669223 Makefile: do not hardcode the `install` program path
> > 3fbfdd0 libfdt: fix duplicate meson target
> > dcef5f8 tests: use correct pkg-config when cross compiling
> > 0b8026f meson: allow building from shallow clones
> > 95c74d7 treesource: Restore string list output when no type markers
> > 2283dd7 libfdt: fdt_path_offset_namelen: Reject empty path
> > 79b9e32 libfdt: fdt_get_alias_namelen: Validate aliases
> > 52157f1 pylibfdt: Support boolean properties
> > d774337 dtc: fix missing string in usage_opts_help
> > ad8bf9f libfdt: Fix fdt_appendprop_addrrange documentation
> > 6c5e189 github: add workflow for Meson builds
> > a3dc9f0 libfdt: rename libfdt-X.Y.Z.so to libfdt.so.X.Y.Z
> > 3501994 workflows: build: remove setuptools_scm hack
> > cd3e230 pylibfdt: use fallback version in tarballs
> > 0f58645 move release version into VERSION.txt
> > 3816595 libfdt: add missing version symbols
> > 5e98b59 editorconfig: use tab indentation for version.lds
> > d030a89 tests: generate dtbs in Meson build directory
> > 8d8372b tests: fix use of deprecated meson methods
> > 761114e pylibtfdt: fix use of deprecated meson method
> > bf6377a meson: set minimum Meson version to 0.56.0
> > 4c68e4b libfdt: fix library version to match project version
> > bdc5c87 meson: allow disabling tests
> > f088e38 Makefile: allow to install libfdt without building executables
> > 6df5328 Fix use of <ctype.h> functions
> > ccf1f62 libfdt: Fix a typo in libfdt.h
> > 71a8b8e libfdt: meson: Fix linking on macOS linker
> > 589d8c7 dtc: Add an option to generate __local_fixups__ and __fixups__
> > e836466 CI: Add build matrix with multiple Linux distributions
> > 3b02a94 dtc: Correct invalid dts output with mixed phandles and integers
> > d488895 tests: Add additional tests for device graph checks
> > ea3b9a1 checks: Fix crash in graph_child_address if 'reg' cell size != 1
> > b2b9671 livetree: fix off-by-one in propval_cell_n() bounds check
> > ab481e4 Add definition for a GitHub Actions CI job
> > c88038c Drop obsolete/broken CI definitions
> > 0ac8b30 yaml: Depend on libyaml >= 0.2.3
> > f1657b2 tests: Add test cases for bad endpoint node and remote-endpoint 
> > prop checks
> > 44bb89c checks: Fix segmentation fault in check_graph_node
> > 60bcf1c improve documentation for fdt_path_offset()
> > a6f997b add fdt_get_symbol() and fdt_get_symbol_namelen() functions
> > 18f5ec1 use fdt_path_getprop_namelen() in fdt_get_alias_namelen()
> > df09327 add fdt_path_getprop_namelen() helper
> > 129bb4b doc: dt-object-internal: Fix a typo
> > 390f481 fdtoverlay: Drop a a repeated article
> > 9f8b382 manual: Fix and improve documentation about -@
> > 2cdf93a fdtoverlay: Fix usage string to not mention "<type>"
> > 72fc810 build-sys: add -Wwrite-strings
> > 083ab26 tests: fix leaks spotted by ASAN
> > 6f8b28f livetree: fix leak spotted by ASAN
> > fd68bb8 Make name_node() xstrdup its name argument
> > 4718189 Delay xstrdup() of node and property names coming from a flat tree
> > 0b842c3 Make build_property() xstrdup its name argument
> > 9cceabe checks: correct I2C 10-bit address check
> > 0d56145 yamltree.c: fix -Werror=discarded-qualifiers & -Werror=cast-qual
> > 61fa22b checks: make check.data const
> > 7a1d72a checks.c: fix check_msg() leak
> > ee57999 checks.c: fix heap-buffer-overflow
> > 44c9b73 tests: fix -Wwrite-strings
> > 5b60f51 srcpos.c: fix -Wwrite-strings
> > 32174a6 meson: Fix cell overflow tests when running from meson
> > 64a907f meson.build: bump version to 1.7.0
> > e3cde06 Add -Wsuggest-attribute=format warning, correct warnings thus 
> > generated
> > 4182182 Use #ifdef NO_VALGRIND
> > 71c19f2 Do not redefine _GNU_SOURCE if already set
> >
> > Signed-off-by: Trevor Gamblin <[email protected]>
> > ---
> > v2 adds my signoff to the carried patch, which was adjusted to apply on
> > v1.7.1.
> >
> > ...erlay-make-overlay_get_target-public.patch | 25 +++++++++++--------
> > ...hon3-dtc_1.7.0.bb => python3-dtc_1.7.1.bb} |  2 +-
> > 2 files changed, 15 insertions(+), 12 deletions(-)
> > rename meta/recipes-devtools/python/{python3-dtc_1.7.0.bb => 
> > python3-dtc_1.7.1.bb} (94%)
> >
> > 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
> > index a2df482e3aa..70dd93f7471 100644
> > --- 
> > 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
> > @@ -1,4 +1,4 @@
> > -From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001
> > +From 20b224b8ab1837778dfd0e7171643a5d26675f95 Mon Sep 17 00:00:00 2001
> > From: Bruce Ashfield <[email protected]>
> > Date: Wed, 19 Jan 2022 12:46:42 -0500
> > Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public"
> > @@ -7,6 +7,9 @@ This reverts commit 
> > 45f3d1a095dd3440578d5c6313eba555a791f3fb.
> >
> > Upstream-Status: Inappropriate [embedded specific]
> >
> > +Adjust to apply on v1.7.1.
> > +
> > +Signed-off-by: Trevor Gamblin <[email protected]>
> > ---
> >  libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++-------
> >  libfdt/libfdt.h      | 18 ------------------
> > @@ -14,7 +17,7 @@ Upstream-Status: Inappropriate [embedded specific]
> >  3 files changed, 22 insertions(+), 26 deletions(-)
> >
> > diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
> > -index 5c0c398..d217e79 100644
> > +index 28b667f..e6e9382 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)
> > @@ -59,7 +62,7 @@ index 5c0c398..d217e79 100644
> >   if (path)
> >   ret = fdt_path_offset(fdt, path);
> >   else
> > -@@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto)
> > +@@ -848,7 +863,7 @@ static int overlay_merge(void *fdt, void *fdto)
> >   if (overlay < 0)
> >   return overlay;
> >
> > @@ -68,7 +71,7 @@ index 5c0c398..d217e79 100644
> >   if (target < 0)
> >   return target;
> >
> > -@@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
> > +@@ -991,7 +1006,7 @@ static int overlay_symbol_update(void *fdt, void 
> > *fdto)
> >   return -FDT_ERR_BADOVERLAY;
> >
> >   /* get the target of the fragment */
> > @@ -77,7 +80,7 @@ index 5c0c398..d217e79 100644
> >   if (ret < 0)
> >   return ret;
> >   target = ret;
> > -@@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
> > +@@ -1013,7 +1028,7 @@ static int overlay_symbol_update(void *fdt, void 
> > *fdto)
> >
> >   if (!target_path) {
> >   /* again in case setprop_placeholder changed it */
> > @@ -87,10 +90,10 @@ index 5c0c398..d217e79 100644
> >   return ret;
> >   target = ret;
> > diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
> > -index a7f432c..7f117e8 100644
> > +index 0677fea..c72337b 100644
> > --- a/libfdt/libfdt.h
> > +++ b/libfdt/libfdt.h
> > -@@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
> > +@@ -2184,24 +2184,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
> >   */
> >  int fdt_overlay_apply(void *fdt, void *fdto);
> >
> > @@ -116,7 +119,7 @@ index a7f432c..7f117e8 100644
> >  /* Debugging / informational functions                                */
> >  /**********************************************************************/
> > diff --git a/libfdt/version.lds b/libfdt/version.lds
> > -index cbce5d4..7ab85f1 100644
> > +index 989cd89..ae5f8c6 100644
> > --- a/libfdt/version.lds
> > +++ b/libfdt/version.lds
> > @@ -77,7 +77,6 @@ LIBFDT_1.2 {
> > @@ -124,9 +127,9 @@ index cbce5d4..7ab85f1 100644
> >   fdt_setprop_inplace_namelen_partial;
> >   fdt_create_with_flags;
> > - fdt_overlay_target_offset;
> > + fdt_get_symbol;
> > + fdt_get_symbol_namelen;
> >   local:
> > - *;
> > - };
> > --
> > -2.19.1
> > +2.39.5
> >
> > diff --git a/meta/recipes-devtools/python/python3-dtc_1.7.0.bb 
> > b/meta/recipes-devtools/python/python3-dtc_1.7.1.bb
> > similarity index 94%
> > rename from meta/recipes-devtools/python/python3-dtc_1.7.0.bb
> > rename to meta/recipes-devtools/python/python3-dtc_1.7.1.bb
> > index 85e48d46942..269095bd8c9 100644
> > --- a/meta/recipes-devtools/python/python3-dtc_1.7.0.bb
> > +++ b/meta/recipes-devtools/python/python3-dtc_1.7.1.bb
> > @@ -14,7 +14,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
> >
> > LIC_FILES_CHKSUM = 
> > "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
> >
> > -SRCREV = "039a99414e778332d8f9c04cbd3072e1dcc62798"
> > +SRCREV = "99031e3a4a6e479466ae795790b44727434ca27d"
> >
> > S = "${WORKDIR}/git"
> >
> > --
> > 2.39.5
> >
> >
> >
> >
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#204994): 
https://lists.openembedded.org/g/openembedded-core/message/204994
Mute This Topic: https://lists.openembedded.org/mt/108629987/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to