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:
parent
a1d913a7fc
commit
8ce85086f6
|
@ -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,
|
|
@ -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}"
|
||||
|
|
Loading…
Reference in New Issue