[OE-core] [oe-commits] Laurentiu Palcu : qemu: add wrapper for qemu-mips binary
Martin Jansa
martin.jansa at gmail.com
Sat Oct 6 16:21:36 UTC 2012
On Wed, Oct 03, 2012 at 11:48:21AM +0000, git at git.openembedded.org wrote:
> Module: openembedded-core.git
> Branch: master
> Commit: 53b3103abdf21123b1c7be49b05cfe97a7cd9ed7
> URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=53b3103abdf21123b1c7be49b05cfe97a7cd9ed7
>
> Author: Laurentiu Palcu <laurentiu.palcu at intel.com>
> Date: Wed Oct 3 14:23:26 2012 +0300
>
> qemu: add wrapper for qemu-mips binary
>
> qemu-mips user emulation binary segfaults when running any kind of
> binary. This is due to a MMU access fault in the virtual CPU. This
> problem has been introduced in qemu when 4GB of vmem were reserved for
> 32-on-64 bit.
>
> This workaround will need to be reverted once the proper fix is found.
>
> [YOCTO #3143]
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu at intel.com>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
>
> ---
>
> meta/recipes-devtools/qemu/qemu_1.2.0.bb | 15 ++++++++++++++-
> 1 files changed, 14 insertions(+), 1 deletions(-)
>
> diff --git a/meta/recipes-devtools/qemu/qemu_1.2.0.bb b/meta/recipes-devtools/qemu/qemu_1.2.0.bb
> index 191ee48..cbdb4d4 100644
> --- a/meta/recipes-devtools/qemu/qemu_1.2.0.bb
> +++ b/meta/recipes-devtools/qemu/qemu_1.2.0.bb
> @@ -17,7 +17,7 @@ SRC_URI = "\
> SRC_URI[md5sum] = "78eb1e984f4532aa9f2bdd3c127b5b61"
> SRC_URI[sha256sum] = "c8b84420d9f4869397f84cad2dabd9a475b7723d619a924a873740353e9df936"
>
> -PR = "r2"
> +PR = "r3"
>
> SRC_URI_append_virtclass-nativesdk = "\
> file://relocatable_sdk.patch \
> @@ -29,6 +29,19 @@ do_configure_prepend_virtclass-nativesdk() {
> sed -i 's/-lX11//g' Makefile.target
> fi
> }
> +
> +# The following fragment will create a wrapper for qemu-mips user emulation
> +# binary in order to work around a segmentation fault issue. Basically, by
> +# default, the reserved virtual address space for 32-on-64 bit is set to 4GB.
> +# This will trigger a MMU access fault in the virtual CPU. With this change,
> +# the qemu-mips works fine.
> +# IMPORTANT: This piece needs to be removed once the root cause is fixed!
> +do_install_append() {
> + create_wrapper ${D}/${bindir}/qemu-mips \
> + QEMU_RESERVED_VA=0x0
> +}
> +# END of qemu-mips workaround
What about checking if mips is in QEMU_TARGETS before doing this?
Right now this breaks all distros without mips in QEMU_TARGETS.
Cheers,
> +
> do_configure_prepend_virtclass-native() {
> # Undo the -lX11 added by linker-flags.patch, don't assume that host has libX11 installed
> sed -i 's/-lX11//g' Makefile.target
>
>
> _______________________________________________
> Openembedded-commits mailing list
> Openembedded-commits at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20121006/892ffc2e/attachment-0002.sig>
More information about the Openembedded-core
mailing list