| Submitter | Zhai, Edwin |
|---|---|
| Date | April 12, 2011, 1:42 a.m. |
| Message ID | <45df8d07a8e35223e8a53033b4e0d208d8829c04.1302572384.git.edwin.zhai@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/2161/ |
| State | New, archived |
| Headers | show |
Comments
On 04/11/2011 06:42 PM, Zhai Edwin wrote: > From: Zhai Edwin<edwin.zhai@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@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@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"
Saul Wold wrote: > > On 04/11/2011 06:42 PM, Zhai Edwin wrote: > > > > > > 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@intel.com> > > 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 > Thanks > Sau! > > > +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; > > 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" >
On 04/11/2011 10:52 PM, Zhai, Edwin wrote: > > > Saul Wold wrote: >> >> On 04/11/2011 06:42 PM, Zhai Edwin wrote: >> > >> > >> > 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@intel.com> >> >> 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. > N/A is not something that we have defined, Inappropriate [other] with a a description would be more correct. Thanks Sau! > Thanks, > edwin > >> Thanks >> Sau! >> >> > +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; >> > 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" >>
Saul Wold wrote: > > On 04/11/2011 10:52 PM, Zhai, Edwin wrote: > > > > > > 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. > How about this way: Upstream Status: [other] (logical part of qemu-git-qemugl-host.patch) pulled @ contrib/gzhai/fix3 Thanks, edwin > Thanks > Sau! > > > Thanks, > > edwin > > > >> Thanks > >> Sau! > >> > >> > +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; > >> > 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" > >> >
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@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"