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>
This commit is contained in:
Jeff Dike 2010-06-23 17:29:54 +01:00 committed by Joshua Lock
parent a1d913a7fc
commit 8ce85086f6
2 changed files with 17 additions and 0 deletions

View File

@ -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,

View File

@ -14,5 +14,6 @@ SRC_URI = "\
file://fix-nogl.patch \
file://qemugl-allow-glxcontext-release.patch \
file://linker-flags.patch"
file://init-info.patch;patch=1"
S = "${WORKDIR}/qemu-${PV}"