Skip to contentSkip to conversation

qemu: Fix the qemu GL application start failure.

PATCH In review Zhai Edwin 2 participants 3 messages Apr 12, 2011 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Zhai Edwin

author
#1 lore raw

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 +
 meta/recipes-sato/pimlico/dates_git.bb             |    2 +
 3 files changed, 73 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
new file mode 100644
index 0000000..c395b60
@@ -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
index d8535b2..e440759 100644
@@ -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"
meta/recipes-sato/pimlico/dates_git.bb +2 -0
index f0a12f8..2823594 100644
@@ -13,3 +13,5 @@ S = "${WORKDIR}/git"
 SRC_URI = "git://git.gnome.org/${BPN};protocol=git \
 	   file://make-382.patch \
 	   file://dso_linking_change_build_fix.patch"
+
+RDEPENDS_${PN} = "mesa-demos"
Signature · 1 line
1.7.1
#2 lore raw

Why are the mesa demo packages needed?

Op 11 apr. 2011 om 17:11 heeft Zhai Edwin <[email protected]> het volgende geschreven:

Quoted 121 lines

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 +
meta/recipes-sato/pimlico/dates_git.bb             |    2 +
3 files changed, 73 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
new file mode 100644
index 0000000..c395b60
@@ -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
index d8535b2..e440759 100644
@@ -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"

meta/recipes-sato/pimlico/dates_git.bb +2 -0
index f0a12f8..2823594 100644
@@ -13,3 +13,5 @@ S = "${WORKDIR}/git"
 SRC_URI = "git://git.gnome.org/${BPN};protocol=git \
      file://make-382.patch \
      file://dso_linking_change_build_fix.patch"
+
+RDEPENDS_${PN} = "mesa-demos"
Signature · 7 lines
1.7.1


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
#3 lore raw

Sorry,
My mistake.
I forget to remove this debug stuff:(

I'll sending new pull request.

Quoted 149 lines · Koen Kooi

Why are the mesa demo packages needed?

Op 11 apr. 2011 om 17:11 heeft Zhai Edwin <[email protected]> het volgende geschreven:

Quoted 3 lines

From: Zhai Edwin <[email protected]>

Some turn-on macro/variable are re-arranged, buffer pointer is

extended to

Quoted 7 lines

support 32/64b combination of target/host.

[YOCTO #688] fixed.

---
.../qemu/qemu-0.14.0/qemugl-fix.patch | 70

++++++++++++++++++++

Quoted 4 lines
meta/recipes-devtools/qemu/qemu_0.14.0.bb          |    1 +
meta/recipes-sato/pimlico/dates_git.bb             |    2 +
3 files changed, 73 insertions(+), 0 deletions(-)

create mode 100644

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

Review

Quoted 2 lines
(quoted diff) +0 -0

b/meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch line 3

Quoted 8 lines

new file mode 100644
index 0000000..c395b60

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +3 -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

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

Quoted 3 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +3 -0
+support 32/64b combination of target/host.
+
+This is not perfect fix, and we need consider other GL alternatives 

in future.

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

Quoted 5 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +5 -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

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch line 12

Quoted 1 line
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +1 -0
++++ qemu-0.14.0/target-i386/opengl_func.h    2011-04-08 

16:45:55.000000000 +0800

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
+@@ -26,8 +26,9 @@
+ #include "mesa_glext.h"
+
+ /* Argument list are internally of a type that can hold a target 

pointer

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

Quoted 3 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +3 -0
+- * 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
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +8 -0
++ * 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

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch line 28

Quoted 1 line
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +1 -0
++++ qemu-0.14.0/target-i386/translate.c    2011-04-08 

16:22:03.000000000 +0800

meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch

Quoted 11 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +11 -0
+@@ -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)

Review

Quoted 32 lines
meta/recipes-devtools/qemu/qemu-0.14.0/qemugl-fix.patch new file +31 -0
+ {
++#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 -0

b/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"

Review

Quoted 1 line
(quoted diff) +0 -0

b/meta/recipes-sato/pimlico/dates_git.bb

Quoted 13 lines

index f0a12f8..2823594 100644

meta/recipes-sato/pimlico/dates_git.bb +2 -1
@@ -13,3 +13,5 @@ S = "${WORKDIR}/git"
 SRC_URI = "git://git.gnome.org/${BPN};protocol=git \
      file://make-382.patch \
      file://dso_linking_change_build_fix.patch"
+
+RDEPENDS_${PN} = "mesa-demos"
--

1.7.1

Quoted 4 lines

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core