Reputation: 1
I'm trying to enable support for am62xx-evm machine through yocto. here is my recipe:
SUMMARY = "QEMU for aarch64 architecture"
DESCRIPTION = "QEMU for emulating the aarch64 architecture, fetched from upstream Git."
LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6541297aed25bfd5e8d893ea097e838c"
SRC_URI = "git://gitlab.com/qemu-project/qemu.git;protocol=https"
SRC_URI += "file:///home/jenkins/dev/mkonov/dtc/dtc"
SRCREV = "134b443512825bed401b6e141447b8cdc22d2efe"
DEPENDS = "flex-native bison-native meson pkgconfig pkgconfig-native glib-2.0 libftdi pixman zlib ninja-native"
S = "${WORKDIR}/git"
do_configure() {
./configure
}
do_compile() {
oe_runmake
}
do_install() {
install -d ${D}${bindir}
install -m 0755 qemu-system-aarch64 ${D}${bindir}/qemu-system-aarch64
}
As you can see, I want it to run the configure script in qemu.
The error I get is as after it finishes executing the subproject keycodemapdb and it's as follows:
| Executing subproject keycodemapdb
|
| keycodemapdb| Project name: keycodemapdb
| keycodemapdb| Project version: undefined
| keycodemapdb| Program tools/keymap-gen found: YES (/home/jenkins/dev/yocto/poky/qemu_build/tmp/work/aarch64-poky-linux/qemu-system-aarch64-recipe/1.0-r0/git/subprojects/keycodemapdb/tools/keymap-gen)
| keycodemapdb| Build targets in project: 349
| keycodemapdb| Subproject keycodemapdb finished.
|
| Program scripts/decodetree.py found: YES (/home/jenkins/dev/yocto/poky/qemu_build/tmp/work/aarch64-poky-linux/qemu-system-aarch64-recipe/1.0-r0/git/build/pyvenv/bin/python3 /home/jenkins/dev/yocto/poky/qemu_build/tmp/work/aarch64-poky-linux/qemu-system-aarch64-recipe/1.0-r0/git/scripts/decodetree.py)
|
| ../target/hexagon/meson.build:29:16: ERROR: No build machine compiler for 'target/hexagon/gen_semantics.c'
|
| A full log can be found at /home/jenkins/dev/yocto/poky/qemu_build/tmp/work/aarch64-poky-linux/qemu-system-aarch64-recipe/1.0-r0/git/build/meson-logs/meson-log.txt
|
| ERROR: meson setup failed
|
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/jenkins/dev/yocto/poky/meta-tisdk-qemu/recipes-core/qemu-system-aarch64-recipe/qemu-system-aarch64-recipe.bb:do_configure) failed with exit code '1'
I tried adding gcc, g++, cmake, make,bison, flex to dependencies but it changed nothing. I tracked down the gen_semantics.c file - https://gricad-gitlab.univ-grenoble-alpes.fr/michelse/qemu/-/blob/master/target/hexagon/gen_semantics.c?ref_type=heads but it gave me no information
Upvotes: 0
Views: 71
Reputation: 11523
The error message from meson is
No build machine compiler for 'target/hexagon/gen_semantics.c'
That means that the environment you're building QEMU in is missing the C compiler that targets that host architecture (usually this is an x86 compiler). Note that this is different from the C compiler that targets the eventual target architecture (which might be a cross-compiler).
That said, the error message is for a part of QEMU you don't seem to care about and you can also avoid it by telling configure to build only what you do care about, rather than its default of "build everything possible".
If you only care about building qemu-system-aarch64 you can pass configure the option --target-list=aarch64-softmmu
. This will make it build much faster because it doesn't build all the possible guest architectures. In particular it won't try to build hexagon so will probably avoid the problem you're seeing.
Upvotes: 0