diff options
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-fix.patch')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-fix.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-fix.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-fix.patch new file mode 100644 index 0000000000..0858f76b52 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-fix.patch | |||
@@ -0,0 +1,74 @@ | |||
1 | This patch fix GL application start failure on qemu 0.14.0. | ||
2 | |||
3 | Some turn-on macro/variable are re-arranged, buffer pointer is extended to | ||
4 | support 32/64b combination of target/host. | ||
5 | |||
6 | This is not perfect fix, and we need consider other GL alternatives in future. | ||
7 | |||
8 | Upstream-Status: Inappropriate [other] - depends on qemu gl patch | ||
9 | |||
10 | Signed-off-by: Zhai Edwin <edwin.zhai@intel.com> | ||
11 | |||
12 | |||
13 | Index: qemu-0.14.0/target-i386/opengl_func.h | ||
14 | =================================================================== | ||
15 | --- qemu-0.14.0.orig/target-i386/opengl_func.h 2011-04-08 16:43:46.000000000 +0800 | ||
16 | +++ qemu-0.14.0/target-i386/opengl_func.h 2011-04-08 16:45:55.000000000 +0800 | ||
17 | @@ -26,8 +26,9 @@ | ||
18 | #include "mesa_glext.h" | ||
19 | |||
20 | /* Argument list are internally of a type that can hold a target pointer | ||
21 | - * or a host pointer. */ | ||
22 | -typedef target_phys_addr_t arg_t; | ||
23 | + * or a host pointer. If 32b target runs on 64b host, it should be big enough | ||
24 | + * to hold host pointer */ | ||
25 | +typedef long unsigned int arg_t; | ||
26 | |||
27 | enum { | ||
28 | TYPE_NONE, | ||
29 | Index: qemu-0.14.0/target-i386/translate.c | ||
30 | =================================================================== | ||
31 | --- qemu-0.14.0.orig/target-i386/translate.c 2011-04-08 16:19:15.000000000 +0800 | ||
32 | +++ qemu-0.14.0/target-i386/translate.c 2011-04-08 16:22:03.000000000 +0800 | ||
33 | @@ -2652,17 +2652,19 @@ | ||
34 | s->is_jmp = DISAS_TB_JUMP; | ||
35 | } | ||
36 | |||
37 | -int enable_gl = 0; | ||
38 | +extern int enable_gl; | ||
39 | |||
40 | /* an interrupt is different from an exception because of the | ||
41 | privilege checks */ | ||
42 | static void gen_interrupt(DisasContext *s, int intno, | ||
43 | target_ulong cur_eip, target_ulong next_eip) | ||
44 | { | ||
45 | +#if !defined(CONFIG_USER_ONLY) | ||
46 | if (enable_gl && intno == 0x99) { | ||
47 | gen_helper_opengl(); | ||
48 | return; | ||
49 | } | ||
50 | +#endif | ||
51 | |||
52 | if (s->cc_op != CC_OP_DYNAMIC) | ||
53 | gen_op_set_cc_op(s->cc_op); | ||
54 | Index: qemu-0.14.0/vl.c | ||
55 | =================================================================== | ||
56 | --- qemu-0.14.0.orig/vl.c 2011-04-08 16:11:43.000000000 +0800 | ||
57 | +++ qemu-0.14.0/vl.c 2011-04-08 16:20:05.000000000 +0800 | ||
58 | @@ -229,7 +229,7 @@ | ||
59 | unsigned int nb_prom_envs = 0; | ||
60 | const char *prom_envs[MAX_PROM_ENVS]; | ||
61 | int boot_menu; | ||
62 | -extern int enable_gl; | ||
63 | +int enable_gl = 0; | ||
64 | |||
65 | typedef struct FWBootEntry FWBootEntry; | ||
66 | |||
67 | @@ -1909,6 +1909,7 @@ | ||
68 | return popt; | ||
69 | } | ||
70 | |||
71 | +#define TARGET_OPENGL_OK | ||
72 | int main(int argc, char **argv, char **envp) | ||
73 | { | ||
74 | const char *gdbstub_dev = NULL; | ||