summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Dike <jdike@linux.intel.com>2010-06-23 17:29:54 +0100
committerJoshua Lock <josh@linux.intel.com>2010-06-23 17:32:47 +0100
commit6e4579b32be125cab74d4ad2014fda201d6531c1 (patch)
treec791f5722e86c44b3770c58f01175891a86f775a
parentbd11abb22c8428b7e619ea4de72d86069b9ecc55 (diff)
downloadpoky-6e4579b32be125cab74d4ad2014fda201d6531c1.tar.gz
qemu: Work around the crash seen on Ubuntu.
Due to different stack contents in sdl_display_init on Ubuntu vs other distros, an uninitialized structure is causing a crash. Zeroing the structure makes the behavior uniform across distros, avoiding the Ubuntu crash, but doesn't fix the underlying bugs, notably: the return value of SDL_GetWMInfo needs to be checked, as it's currently failing silently the underlying reason for the failure of SDL_GetWMInfo needs to be found - there is a GetWMINfo method in the internal SDL structure which is NULL, and the reason for this needs to be found. Signed-off-by: Jeff Dike <jdike@linux.intel.com>
-rw-r--r--meta/packages/qemu/qemu-0.12.4/init-info.patch16
-rw-r--r--meta/packages/qemu/qemu_0.12.4.bb1
2 files changed, 17 insertions, 0 deletions
diff --git a/meta/packages/qemu/qemu-0.12.4/init-info.patch b/meta/packages/qemu/qemu-0.12.4/init-info.patch
new file mode 100644
index 0000000000..8ba7d8ff4c
--- /dev/null
+++ b/meta/packages/qemu/qemu-0.12.4/init-info.patch
@@ -0,0 +1,16 @@
1# This is a workaround to the crashes seen on Ubuntu. Setting info to zero
2# makes info.info.x11.display zero and avoids the calls to
3# opengl_exec_set_parent_window, one of which is crashing.
4
5Index: qemu-0.12.4/sdl.c
6===================================================================
7--- qemu-0.12.4.orig/sdl.c
8+++ qemu-0.12.4/sdl.c
9@@ -871,6 +871,7 @@ void sdl_display_init(DisplayState *ds,
10 vi = SDL_GetVideoInfo();
11 host_format = *(vi->vfmt);
12
13+ bzero(&info, sizeof(info));
14 SDL_GetWMInfo(&info);
15 if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display)
16 opengl_exec_set_parent_window(info.info.x11.display,
diff --git a/meta/packages/qemu/qemu_0.12.4.bb b/meta/packages/qemu/qemu_0.12.4.bb
index 79b73d38ad..f1ecf3c067 100644
--- a/meta/packages/qemu/qemu_0.12.4.bb
+++ b/meta/packages/qemu/qemu_0.12.4.bb
@@ -14,5 +14,6 @@ SRC_URI = "\
14 file://fix-nogl.patch \ 14 file://fix-nogl.patch \
15 file://qemugl-allow-glxcontext-release.patch \ 15 file://qemugl-allow-glxcontext-release.patch \
16 file://linker-flags.patch" 16 file://linker-flags.patch"
17 file://init-info.patch;patch=1"
17 18
18S = "${WORKDIR}/qemu-${PV}" 19S = "${WORKDIR}/qemu-${PV}"