summaryrefslogtreecommitdiff
path: root/meta/packages/qemu/qemu-0.12.4
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:12 +0100
commit8ce85086f697eb0b08076ee8939d3167cab4c549 (patch)
tree8942999e1c06fe2cf4ef8400e17d1c59a57a989c /meta/packages/qemu/qemu-0.12.4
parenta1d913a7fcb15dd75f457f5ba75f9ec3ed244918 (diff)
downloadopenembedded-core-8ce85086f697eb0b08076ee8939d3167cab4c549.tar.gz
openembedded-core-8ce85086f697eb0b08076ee8939d3167cab4c549.tar.bz2
openembedded-core-8ce85086f697eb0b08076ee8939d3167cab4c549.zip
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>
Diffstat (limited to 'meta/packages/qemu/qemu-0.12.4')
-rw-r--r--meta/packages/qemu/qemu-0.12.4/init-info.patch16
1 files changed, 16 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 @@
+# This is a workaround to the crashes seen on Ubuntu. Setting info to zero
+# makes info.info.x11.display zero and avoids the calls to
+# opengl_exec_set_parent_window, one of which is crashing.
+
+Index: qemu-0.12.4/sdl.c
+===================================================================
+--- qemu-0.12.4.orig/sdl.c
++++ qemu-0.12.4/sdl.c
+@@ -871,6 +871,7 @@ void sdl_display_init(DisplayState *ds,
+ vi = SDL_GetVideoInfo();
+ host_format = *(vi->vfmt);
+
++ bzero(&info, sizeof(info));
+ SDL_GetWMInfo(&info);
+ if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display)
+ opengl_exec_set_parent_window(info.info.x11.display,