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

Saul Wold sgw at linux.intel.com
Tue Apr 12 05:18:49 UTC 2011


On 04/11/2011 06:42 PM, Zhai Edwin wrote:
> 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 +
>   2 files changed, 71 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.
> +
As this is a new patch, is this due to be sent upstream?  Please add an 
Upstream-Status: tag indicating what your intentions with this patch is.

Thanks
	Sau!

> +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"




More information about the Openembedded-core mailing list