fix GL Apps start failure -v2
From: Zhai Edwin <[email protected]>
This is the patch to fix the GL apps like glxgears start failure on qemux86 image. V2 removes unnecessary debug stuff. Pls. review and pull.
Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: gzhai/fix3
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=gzhai/fix3
Thanks,
Zhai Edwin <[email protected]>
---
Zhai Edwin (1):
qemu: Fix the qemu GL application start failure.
.../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
PATCH 1/1 qemu: Fix the qemu GL application start failure.
From: Zhai Edwin <[email protected]>
Some turn-on macro/variable are re-arranged, buffer pointer is extended to support 32/64b combination of target/host.
[YOCTO #688] fixed.
--- .../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
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +70 -0
@@ -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 <[email protected]> +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;
meta/recipes-devtools/qemu/qemu_0.14.0.bb +1 -0
@@ -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"
Signature · 1 line
1.7.1
Re: [PATCH 1/1] qemu: Fix the qemu GL application start failure.
Quoted 20 lines · Zhai Edwin
From: Zhai Edwin<[email protected]>
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<[email protected]>--- .../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.patchmeta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +0
-0
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch line 7
Quoted 7 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +7
-0@@ -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!
Quoted 75 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +63
-0+Signed-off-by: Zhai Edwin<[email protected]> +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;meta/recipes-devtools/qemu/qemu_0.14.0.bb +1
-0@@ -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"
Re: [PATCH 1/1] qemu: Fix the qemu GL application start failure.
Quoted 6 lines · Saul Wold
Quoted 3 lines · Zhai Edwin
Some turn-on macro/variable are re-arranged, buffer pointer is
extended to
Quoted 9 lines
Quoted 5 lines
support 32/64b combination of target/host.
[YOCTO #688] fixed.
Signed-off-by Zhai Edwin<[email protected]>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.
This is part of our qemu gl patch, which is hard to push into upstream. Mark it as separated patch to clear cut old patch and current fix, which is easy for debug.
I have added "N/A" for Upstream Status on the same contrib tree(gzhai/fix3). Pls. have a look and pull.
Thanks,
edwin
Quoted 88 lines
Thanks
Sau!meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 4 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +4
-0+Signed-off-by: Zhai Edwin<[email protected]> +Index: qemu-0.14.0/target-i386/opengl_func.h +=================================================================== +--- qemu-0.14.0.orig/target-i386/opengl_func.h 2011-04-0816:43:46.000000000 +0800
Quoted 1 line
++++
qemu-0.14.0/target-i386/opengl_func.h2011-04-0816:45:55.000000000 +0800
Quoted 4 lines
+@@ -26,8 +26,9 @@
+ #include "mesa_glext.h"
+
+ /* Argument list are internally of a type that can hold a targetpointer
Quoted 3 lines
+- * 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
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 8 lines
++ * to hold host pointer */
++typedef long unsigned intarg_t;meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +6
-0+ + enum { + TYPE_NONE, +Index: qemu-0.14.0/target-i386/translate.c +=================================================================== +--- qemu-0.14.0.orig/target-i386/translate.c 2011-04-0816:19:15.000000000 +0800
Quoted 1 line
++++
qemu-0.14.0/target-i386/translate.c2011-04-0816:22:03.000000000 +0800
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 11 lines
+@@ -2652,17 +2652,19 @@
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +10
-0+ 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)Review
Quoted 32 lines
+ {
++#if !defined(CONFIG_USER_ONLY)meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +29
-0+ 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;(quoted diff) +0
-0b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
meta/recipes-devtools/qemu/qemu_0.14.0.bb SRC_URI = "\ · line 30
Quoted 11 lines
index d8535b2..e440759 100644
meta/recipes-devtools/qemu/qemu_0.14.0.bb +1
-0@@ -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"
Re: [PATCH 1/1] qemu: Fix the qemu GL application start failure.
Quoted 19 lines · Edwin
Quoted 6 lines · Saul Wold
Quoted 3 lines · Zhai Edwin
Some turn-on macro/variable are re-arranged, buffer pointer is
extended to
Quoted 9 lines
Quoted 5 lines
support 32/64b combination of target/host.
[YOCTO #688] fixed.
Signed-off-by Zhai Edwin<[email protected]>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.
Quoted 7 lines
This is part of our qemu gl patch, which is hard to push into upstream. Mark it as separated patch to clear cut old patch and current fix, which is easy for debug.
I have added "N/A" for Upstream Status on the same contrib tree(gzhai/fix3). Pls. have a look and pull.
N/A is not something that we have defined, Inappropriate [other] with a a description would be more correct.
Thanks
Sau!
Quoted 90 lines
Thanks,
edwinQuoted 87 lines
Thanks
Sau!meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 4 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +4
-0+Signed-off-by: Zhai Edwin<[email protected]> +Index: qemu-0.14.0/target-i386/opengl_func.h +=================================================================== +--- qemu-0.14.0.orig/target-i386/opengl_func.h 2011-04-0816:43:46.000000000 +0800
Quoted 1 line
++++
qemu-0.14.0/target-i386/opengl_func.h2011-04-0816:45:55.000000000 +0800
Quoted 4 lines
+@@ -26,8 +26,9 @@
+ #include "mesa_glext.h"
+
+ /* Argument list are internally of a type that can hold a targetpointer
Quoted 3 lines
+- * 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
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 8 lines
++ * to hold host pointer */
++typedef long unsigned intarg_t;meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +6
-0+ + enum { + TYPE_NONE, +Index: qemu-0.14.0/target-i386/translate.c +=================================================================== +--- qemu-0.14.0.orig/target-i386/translate.c 2011-04-0816:19:15.000000000 +0800
Quoted 1 line
++++
qemu-0.14.0/target-i386/translate.c2011-04-0816:22:03.000000000 +0800
Review
Quoted 43 lines
+@@ -2652,17 +2652,19 @@
+s->is_jmp=DISAS_TB_JUMP;
+ }meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +39
-0+ +-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;(quoted diff) +0
-0b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
Quoted 11 lines
index d8535b2..e440759 100644
meta/recipes-devtools/qemu/qemu_0.14.0.bb +1
-0@@ -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"
Re: [PATCH 1/1] qemu: Fix the qemu GL application start failure.
Quoted 6 lines · Saul Wold
Quoted 4 lines · Edwin
This is part of our qemu gl patch, which is hard to push into upstream. Mark it as separated patch to clear cut old patch and current fix,
Quoted 9 lines
which
Quoted 5 lines
is easy for debug.
I have added "N/A" for Upstream Status on the same contrib tree(gzhai/fix3). Pls. have a look and pull.
N/A is not something that we have defined, Inappropriate [other] with a a description would be more correct.
How about this way:
Upstream Status: [other] (logical part of qemu-git-qemugl-host.patch)
pulled @ contrib/gzhai/fix3
Thanks,
edwin
Quoted 94 lines
Thanks
Sau!Quoted 90 lines
Thanks,
edwinQuoted 87 lines
Thanks
Sau!meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 4 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +4
-0+Signed-off-by: Zhai Edwin<[email protected]> +Index: qemu-0.14.0/target-i386/opengl_func.h +=================================================================== +--- qemu-0.14.0.orig/target-i386/opengl_func.h 2011-04-0816:43:46.000000000 +0800
Quoted 1 line
++++
qemu-0.14.0/target-i386/opengl_func.h2011-04-0816:45:55.000000000 +0800
Quoted 4 lines
+@@ -26,8 +26,9 @@
+ #include "mesa_glext.h"
+
+ /* Argument list are internally of a type that can hold a targetpointer
Quoted 3 lines
+- * 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
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch
Quoted 8 lines
++ * to hold host pointer */
++typedef long unsigned intarg_t;meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +6
-0+ + enum { + TYPE_NONE, +Index: qemu-0.14.0/target-i386/translate.c +=================================================================== +--- qemu-0.14.0.orig/target-i386/translate.c 2011-04-0816:19:15.000000000 +0800
Quoted 1 line
++++
qemu-0.14.0/target-i386/translate.c2011-04-0816:22:03.000000000 +0800
Review
Quoted 43 lines
+@@ -2652,17 +2652,19 @@
+s->is_jmp=DISAS_TB_JUMP;
+ }meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +39
-0+ +-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;(quoted diff) +0
-0b/meta/recipes-devtools/qemu/qemu_0.14.0.bb
Quoted 11 lines
index d8535b2..e440759 100644
meta/recipes-devtools/qemu/qemu_0.14.0.bb +1
-0@@ -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"