[OE-core] [PATCH 1/1] qemu: Fix the qemu GL application start failure.

Koen Kooi koen at dominion.thruhere.net
Tue Apr 12 00:35:25 UTC 2011


Why are the mesa demo packages needed?

Op 11 apr. 2011 om 17:11 heeft Zhai Edwin <edwin.zhai at intel.com> het volgende geschreven:

> From: Zhai Edwin <edwin.zhai at intel.com>
> 
> Some turn-on macro/variable are re-arranged, buffer pointer is extended to
> support 32/64b combination of target/host.
> 
> [YOCTO #688] fixed.
> 
> Signed-off-by:  Zhai Edwin <edwin.zhai at intel.com>
> ---
> .../qemu/qemu-0.14.0/qemugl-fix.patch              |   70 ++++++++++++++++++++
> meta/recipes-devtools/qemu/qemu_0.14.0.bb          |    1 +
> meta/recipes-sato/pimlico/dates_git.bb             |    2 +
> 3 files changed, 73 insertions(+), 0 deletions(-)
> create mode 100644 meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
> 
> diff --git a/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch b/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
> new file mode 100644
> index 0000000..c395b60
> --- /dev/null
> +++ b/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
> @@ -0,0 +1,70 @@
> +This patch fix GL application start failure on qemu 0.14.0.
> +
> +Some turn-on macro/variable are re-arranged, buffer pointer is extended to
> +support 32/64b combination of target/host.
> +
> +This is not perfect fix, and we need consider other GL alternatives in future.
> +
> +Signed-off-by: Zhai Edwin <edwin.zhai at intel.com>
> +Index: qemu-0.14.0/target-i386/opengl_func.h
> +===================================================================
> +--- qemu-0.14.0.orig/target-i386/opengl_func.h    2011-04-08 16:43:46.000000000 +0800
> ++++ qemu-0.14.0/target-i386/opengl_func.h    2011-04-08 16:45:55.000000000 +0800
> +@@ -26,8 +26,9 @@
> + #include "mesa_glext.h"
> + 
> + /* Argument list are internally of a type that can hold a target pointer
> +- * or a host pointer.  */
> +-typedef target_phys_addr_t arg_t;
> ++ * or a host pointer. If 32b target runs on 64b host, it should be big enough
> ++ * to hold host pointer */
> ++typedef long unsigned int arg_t;
> + 
> + enum {
> +     TYPE_NONE,
> +Index: qemu-0.14.0/target-i386/translate.c
> +===================================================================
> +--- qemu-0.14.0.orig/target-i386/translate.c    2011-04-08 16:19:15.000000000 +0800
> ++++ qemu-0.14.0/target-i386/translate.c    2011-04-08 16:22:03.000000000 +0800
> +@@ -2652,17 +2652,19 @@
> +     s->is_jmp = DISAS_TB_JUMP;
> + }
> + 
> +-int enable_gl = 0;
> ++extern int enable_gl;
> + 
> + /* an interrupt is different from an exception because of the
> +    privilege checks */
> + static void gen_interrupt(DisasContext *s, int intno,
> +                           target_ulong cur_eip, target_ulong next_eip)
> + {
> ++#if !defined(CONFIG_USER_ONLY)
> +     if (enable_gl && intno == 0x99) {
> +         gen_helper_opengl();
> +         return;
> +     }
> ++#endif
> + 
> +     if (s->cc_op != CC_OP_DYNAMIC)
> +         gen_op_set_cc_op(s->cc_op);
> +Index: qemu-0.14.0/vl.c
> +===================================================================
> +--- qemu-0.14.0.orig/vl.c    2011-04-08 16:11:43.000000000 +0800
> ++++ qemu-0.14.0/vl.c    2011-04-08 16:20:05.000000000 +0800
> +@@ -229,7 +229,7 @@
> + unsigned int nb_prom_envs = 0;
> + const char *prom_envs[MAX_PROM_ENVS];
> + int boot_menu;
> +-extern int enable_gl;
> ++int enable_gl = 0;
> + 
> + typedef struct FWBootEntry FWBootEntry;
> + 
> +@@ -1909,6 +1909,7 @@
> +     return popt;
> + }
> + 
> ++#define TARGET_OPENGL_OK
> + int main(int argc, char **argv, char **envp)
> + {
> +     const char *gdbstub_dev = NULL;
> diff --git a/meta/recipes-devtools/qemu/qemu_0.14.0.bb b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
> index d8535b2..e440759 100644
> --- a/meta/recipes-devtools/qemu/qemu_0.14.0.bb
> +++ b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
> @@ -24,6 +24,7 @@ SRC_URI = "\
>     file://spice-qxl-locking-fix-for-qemu-kvm.patch \
>     file://Detect-and-use-GCC-atomic-builtins-for-locking.patch \
>     file://larger_default_ram_size.patch \
> +    file://qemugl-fix.patch \
>     "
> SRC_URI[md5sum] = "f9d145d5c09de9f0984ffe9bd1229970"
> SRC_URI[sha256sum] = "ba21e84d7853217830e167dae9999cdbff481189c6a0bb600ac7fb7201453108"
> diff --git a/meta/recipes-sato/pimlico/dates_git.bb b/meta/recipes-sato/pimlico/dates_git.bb
> index f0a12f8..2823594 100644
> --- a/meta/recipes-sato/pimlico/dates_git.bb
> +++ b/meta/recipes-sato/pimlico/dates_git.bb
> @@ -13,3 +13,5 @@ S = "${WORKDIR}/git"
> SRC_URI = "git://git.gnome.org/${BPN};protocol=git \
>       file://make-382.patch \
>       file://dso_linking_change_build_fix.patch"
> +
> +RDEPENDS_${PN} = "mesa-demos"
> -- 
> 1.7.1
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list