poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
Richard Purdie b813bdebb3 qemu/libc-package: Fix qemu option handling
The 'overrides' here are PACKAGE_ARCH based and hence not overrides
as such and the _append wasn't working in many cases. This adjusts the
code to use PACKAGE_ARCH as the accessor and ensures the variables
work as expected. This fixes various segfaults and ensures postinsts
run at build time rather than on the target system.

The bug was introduced in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=7efad8a1b56df6ee07c12ad360c0493d7b1d6d23.

(From OE-Core rev: 219e793907406eabf632e784e3a11ab9acb77cfb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-05 18:01:08 +00:00

49 lines
1.0 KiB
BlitzBasic

SUMMARY = "QEMU wrapper script"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
inherit qemu
do_install () {
install -d ${D}${bindir_crossscripts}/
echo "#!/bin/sh" > ${D}${bindir_crossscripts}/qemuwrapper
qemu_binary=${@qemu_target_binary(d)}
qemu_options='${QEMU_OPTIONS}'
echo "$qemu_binary $qemu_options \"\$@\"" >> ${D}${bindir_crossscripts}/qemuwrapper
fallback_qemu_bin=
case $qemu_binary in
"qemu-i386")
fallback_qemu_bin=qemu-x86_64
;;
"qemu-x86_64")
fallback_qemu_bin=qemu-i386
;;
*)
;;
esac
if [ -n "$fallback_qemu_bin" ]; then
cat >> ${D}${bindir_crossscripts}/qemuwrapper << EOF
rc=\$?
if [ \$rc = 255 ]; then
$fallback_qemu_bin "\$@"
rc=\$?
fi
exit \$rc
EOF
fi
chmod +x ${D}${bindir_crossscripts}/qemuwrapper
}
SYSROOT_PREPROCESS_FUNCS += "qemuwrapper_sysroot_preprocess"
qemuwrapper_sysroot_preprocess () {
sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
}
INHIBIT_DEFAULT_DEPS = "1"