diff options
| author | Jeff Dike <jdike@linux.intel.com> | 2010-06-23 17:29:54 +0100 |
|---|---|---|
| committer | Joshua Lock <josh@linux.intel.com> | 2010-06-23 17:32:12 +0100 |
| commit | 8ce85086f697eb0b08076ee8939d3167cab4c549 (patch) | |
| tree | 8942999e1c06fe2cf4ef8400e17d1c59a57a989c /meta | |
| parent | a1d913a7fcb15dd75f457f5ba75f9ec3ed244918 (diff) | |
| download | poky-8ce85086f697eb0b08076ee8939d3167cab4c549.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>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/packages/qemu/qemu-0.12.4/init-info.patch | 16 | ||||
| -rw-r--r-- | meta/packages/qemu/qemu_0.12.4.bb | 1 |
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 | |||
| 5 | Index: 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 | ||
| 18 | S = "${WORKDIR}/qemu-${PV}" | 19 | S = "${WORKDIR}/qemu-${PV}" |
