diff options
author | Zhai Edwin <edwin.zhai@intel.com> | 2011-04-06 16:12:17 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-04-18 05:44:57 +0100 |
commit | 8bb8f15800f7366e4798821eb3559caa259f93d4 (patch) | |
tree | ec96e8de1181d58578bdfba5712577cfa0ec7f09 /meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch | |
parent | 76b86764b0346d8cac6aa915f4907f4b0ffe9a8d (diff) | |
download | openembedded-core-8bb8f15800f7366e4798821eb3559caa259f93d4.tar.gz openembedded-core-8bb8f15800f7366e4798821eb3559caa259f93d4.tar.bz2 openembedded-core-8bb8f15800f7366e4798821eb3559caa259f93d4.zip |
qemu: Fix the qemu GL application start failure.
Some turn-on macro/variable are re-arranged, buffer pointer is extended to
support 32/64b combination of target/host.
[YOCTO #688] fixed.
[sgw: tweaked Upstream-Status format]
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch | 73 |
1 files changed, 73 insertions, 0 deletions
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 0000000000..029aacf2a9 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch @@ -0,0 +1,73 @@ +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. + +Upstream-Status: other (logical part of qemu-git-qemugl-host.patch) + +Signed-off-by: Zhai Edwin <edwin.zhai@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; |