Hi,
I've been trying to set up a yocto build environment over the last couple days using these tools and following the WIKI instructions, but I am coming into several issues.
I want to build linux for the ARM core of the ADSZ-SC589-MINI 'Sharc Audio Module'
My builds are using the Ubuntu 2004LTS image that is recommended in the ADI wiki.
The only python version I have installed manually is 2.7
The first issue I come across is that the poky version is outdated compared to the python version that is incorporated into the build system (3.10), which leads to several errors accessing outdated primitives:
AttributeError: module 'collections' has no attribute 'MutableMapping'
This issue is highlighted in a few SO posts, but is reported as fixed on the Yocto forums, so I guess the repo manifest version of this tool is out of date?
If I follow advice on SO and 'monkey-patch' the the access to the python primatives I get the following warnings:
WARNING: Host distribution "ubuntu-22.04" has
not been validated with this version of the build system; you may
possibly experience unexpected failures. It is recommended that you use a
tested distribution.
Followed by the subsequent errors:
WARNING: Your host glibc verson (2.35) is
newer than that in uninative (2.29). Disabling uninative so that sstate
is not corrupted. Initialising tasks: 100%
|#####################################################################|
Time: 0:00:00 Sstate summary: Wanted 75 Found 0 Missed 75 Current 0 (0%
match, 0% complete) NOTE: Executing SetScene Tasks NOTE: Executing
RunQueue Tasks ERROR: m4-default-1.4.18-r0 do_compile: oe_runmake failed
ERROR: m4-default-1.4.18-r0 do_compile: Function failed: do_compile (log
file is located at
/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/temp/log.do_compile.15475)
ERROR: Logfile of failure stored in:
/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/temp/log.do_compile.15475
Log data follows: | DEBUG: Executing shell function do_compile | NOTE:
make -j 1
infodir=/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/recipe-sysroot-default/usr/share/info
| make all-recursive | make[1]: Entering directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build'
| Making all in . | make[2]: Entering directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build'
| make[2]: Nothing to be done for 'all-am'. | make[2]: Leaving
directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build'
| Making all in examples | make[2]: Entering directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build/examples'
| make[2]: Nothing to be done for 'all'. | make[2]: Leaving directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build/examples'
The actual build error in the logs comes down to:
gcc -I. -I../../m4-1.4.18/lib
-isystem/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/recipe-sysroot-default/usr/include
-isystem/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/recipe-sysroot-default/usr/include
-O2 -pipe -c -o c-stack.o ../../m4-1.4.18/lib/c-stack.c In file
included from /usr/include/signal.h:328, from ./signal.h:52, from
../../m4-1.4.18/lib/c-stack.c:49: ../../m4-1.4.18/lib/c-stack.c:55:26:
error: missing binary operator before token "(" 55 | #elif
HAVE_LIBSIGSEGV && SIGSTKSZ < 16384 |
^~~~~~~~ make[3]: *** [Makefile:1915: c-stack.o] Error 1 make[3]:
Leaving directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build/lib'
make[2]: *** [Makefile:1674: all] Error 2 make[2]: Leaving directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build/lib'
make[1]: *** [Makefile:1572: all-recursive] Error 1 make[1]: Leaving
directory
'/home/user/Workspace/build/tmp/work/x86_64-linux/m4-default/1.4.18-r0/build'
Which I am guessing is suggesting the HAVE_LIBSIGSEGV is undefined, probably because the dependency versions are misaligned.
Is there a set up that currently works where I can 'get going' without too much suffering?
Is there a more up to date version of the resources I should be accessing, instead of executing this line from the wiki:
python ./bin/repo init -u github.com/.../lnxdsp-repo-manifest.git -b release/yocto-1.0.0