summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch (renamed from meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch)0
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/dummy-gl-config.patch31
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/fix-nogl.patch127
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/glflags.patch33
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch66
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch137
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/opengl-sdl-fix.patch43
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/qemu-git-qemugl-host.patch34368
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-allow-glxcontext-release.patch65
-rw-r--r--meta/recipes-devtools/qemu/qemu-0.15.1/qemugl-fix.patch74
-rw-r--r--meta/recipes-devtools/qemu/qemu.inc6
-rw-r--r--meta/recipes-devtools/qemu/qemu_0.15.1.bb21
12 files changed, 2 insertions, 34969 deletions
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch b/meta/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch
index c4c5424e16..c4c5424e16 100644
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch
+++ b/meta/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-vmware-vga-depth.patch
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/dummy-gl-config.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/dummy-gl-config.patch
deleted file mode 100644
index 8aa30aed03..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/dummy-gl-config.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Add a dummy option for GL acceleration to pass the configure when there is no
-GL acceleration patch. The parsing function will be filled by following
-opengl-disable-option.patch.
-
-Upstream-Status: Inappropriate [other] - depends on GL patch
-
-Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-
-Index: qemu-0.15.1/configure
-===================================================================
---- qemu-0.15.1.orig/configure 2012-05-14 21:23:34.000000000 +0800
-+++ qemu-0.15.1/configure 2012-05-14 21:23:36.000000000 +0800
-@@ -179,6 +179,7 @@
- smartcard_nss=""
- usb_redir=""
- opengl=""
-+gl_accel="yes"
- guest_agent="yes"
-
- # parse CC options first
-@@ -739,6 +740,10 @@
- ;;
- --enable-opengl) opengl="yes"
- ;;
-+ --disable-gl-accel) gl_accel="no"
-+ ;;
-+ --enable-gl-accel) gl_accel="yes"
-+ ;;
- --*dir)
- ;;
- --disable-rbd) rbd="no"
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/fix-nogl.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/fix-nogl.patch
deleted file mode 100644
index 83b2752589..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/fix-nogl.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: qemu-0.14.0/Makefile.target
-===================================================================
---- qemu-0.14.0.orig/Makefile.target
-+++ qemu-0.14.0/Makefile.target
-@@ -79,6 +79,12 @@ libobj-y += cpuid.o
- endif
- libobj-$(CONFIG_NEED_MMU) += mmu.o
- libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
-+libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
-+libobj-$(TARGET_ARM) += dummygl.o
-+libobj-$(TARGET_MIPS) += dummygl.o
-+libobj-$(TARGET_MIPS64) += dummygl.o
-+libobj-$(TARGET_PPC) += dummygl.o
-+libobj-$(TARGET_SH4) += dummygl.o
- libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
-
- libobj-y += disas.o
-Index: qemu-0.14.0/target-arm/dummygl.c
-===================================================================
---- /dev/null
-+++ qemu-0.14.0/target-arm/dummygl.c
-@@ -0,0 +1,22 @@
-+#include <string.h>
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <stdint.h>
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+
-+void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window)
-+{
-+
-+}
-+
-+void opengl_process_enable(void)
-+{
-+
-+}
-+
-+
-+void mem_opengl(uint64_t ptr)
-+{
-+
-+}
-Index: qemu-0.14.0/target-mips/dummygl.c
-===================================================================
---- /dev/null
-+++ qemu-0.14.0/target-mips/dummygl.c
-@@ -0,0 +1,22 @@
-+#include <string.h>
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <stdint.h>
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+
-+void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window)
-+{
-+
-+}
-+
-+void opengl_process_enable(void)
-+{
-+
-+}
-+
-+
-+void mem_opengl(uint64_t ptr)
-+{
-+
-+}
-Index: qemu-0.14.0/target-ppc/dummygl.c
-===================================================================
---- /dev/null
-+++ qemu-0.14.0/target-ppc/dummygl.c
-@@ -0,0 +1,22 @@
-+#include <string.h>
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <stdint.h>
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+
-+void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window)
-+{
-+
-+}
-+
-+void opengl_process_enable(void)
-+{
-+
-+}
-+
-+
-+void mem_opengl(uint64_t ptr)
-+{
-+
-+}
-Index: qemu-0.14.0/target-sh4/dummygl.c
-===================================================================
---- /dev/null
-+++ qemu-0.14.0/target-sh4/dummygl.c
-@@ -0,0 +1,22 @@
-+#include <string.h>
-+#include <stdlib.h>
-+#include <assert.h>
-+#include <stdint.h>
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+
-+void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window)
-+{
-+
-+}
-+
-+void opengl_process_enable(void)
-+{
-+
-+}
-+
-+
-+void mem_opengl(uint64_t ptr)
-+{
-+
-+}
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/glflags.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/glflags.patch
deleted file mode 100644
index 638d2622b6..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/glflags.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Considering relocation, qemu-nativesdk is independent of host library except
-libGL. Normal method like 'cat > $TMPC' doesn't work, so we check the library
-directly.
-
-Upstream-Status: Inappropriate [configuration]
-
-Index: qemu-0.15.1/configure
-===================================================================
---- qemu-0.15.1.orig/configure 2012-05-25 18:26:05.000000000 +0800
-+++ qemu-0.15.1/configure 2012-05-29 09:43:27.000000000 +0800
-@@ -2032,15 +2032,13 @@
- exit 1;
- fi
-
-- gl_accel_libs="-lGL -lGLU"
-- cat > $TMPC << EOF
--#include <X11/Xlib.h>
--#include <GL/gl.h>
--#include <GL/glx.h>
--#include <GL/glu.h>
--int main(void) { GL_VERSION; return 0; }
--EOF
-- if compile_prog "" "-lGL -lGLU" ; then
-+ gl_accel_libs="-lGL"
-+ libgl='no'
-+ test -e /usr/lib/libGL.so && libgl='yes'
-+ test -e /usr/lib64/libGL.so && libgl='yes'
-+ test -e /usr/lib/*-linux-gnu/libGL.so && libgl='yes'
-+
-+ if test "$libgl" = "yes" ; then
- gl_accel=yes
- libs_softmmu="$gl_accel_libs $libs_softmmu"
- else
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch
deleted file mode 100644
index ddf4e4a676..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-This patch fix GL application failure from 64b target on 32b host
-
-64b target produce 64b args buffer, but qemu parse it as 32b and get wrong
-data. To avoid this, the type of args buffer in qemu should be same as target,
-that is, target_phys_addr_t. The only potential issue is that we need copy
-the data in buffer one by one, or else data corruption when 32b/64b for
-target/host combination.
-
-Upstream-Status: Inappropriate [other] - depends on qemu gl patch
-
-Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-
-Index: qemu-0.15.1/target-i386/opengl_func.h
-===================================================================
---- qemu-0.15.1.orig/target-i386/opengl_func.h 2012-04-06 10:00:08.000000000 +0800
-+++ qemu-0.15.1/target-i386/opengl_func.h 2012-04-06 10:47:38.000000000 +0800
-@@ -25,10 +25,10 @@
- #include "mesa_gl.h"
- #include "mesa_glext.h"
-
--/* Argument list are internally of a type that can hold a target pointer
-- * or a host pointer. If 32b target runs on 64b host, it should be big enough
-- * to hold host pointer */
--typedef long unsigned int arg_t;
-+/* Argument list are internally of a type that point to a buffer passed from
-+ * target. It should have same type as target, so that we can support 32b
-+ * target on 64b host, and vice versa */
-+typedef target_phys_addr_t arg_t;
-
- enum {
- TYPE_NONE,
-Index: qemu-0.15.1/Makefile.target
-===================================================================
---- qemu-0.15.1.orig/Makefile.target 2012-04-06 10:00:08.000000000 +0800
-+++ qemu-0.15.1/Makefile.target 2012-04-06 10:00:08.000000000 +0800
-@@ -128,7 +128,7 @@
- gl_beginend.h: ../target-i386/beginend_funcs.sh
- $< > $@
- opengl_exec.o : opengl_exec.c server_stub.c gl_func.h opengl_func.h gl_beginend.h
-- $(CC) $(GL_CFLAGS) $(DEFINES) -c -o $@ $< -I. -I../target-i386
-+ $(CC) $(GL_CFLAGS) $(DEFINES) -c -o $@ $< -I.. -I. -I../fpu -I../target-i386 -DNEED_CPU_H
-
- #########################################################
- # Linux user emulator target
-Index: qemu-0.15.1/target-i386/opengl_exec.c
-===================================================================
---- qemu-0.15.1.orig/target-i386/opengl_exec.c 2012-04-06 10:00:08.000000000 +0800
-+++ qemu-0.15.1/target-i386/opengl_exec.c 2012-04-06 10:39:22.000000000 +0800
-@@ -37,16 +37,12 @@
- #include <mesa_gl.h>
- #include <mesa_glx.h>
-
--// TODO
--typedef long unsigned int target_phys_addr_t;
--
-+#include "exec.h"
- #include "opengl_func.h"
-
- #include "mesa_glu.h"
- #include "mesa_mipmap.c"
-
--#include "../qemu-common.h"
--
- //#define SYSTEMATIC_ERROR_CHECK
- #define BUFFER_BEGINEND
- #define glGetError() 0
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch
deleted file mode 100644
index 8dc272a926..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-disable-option.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-Add an option gl-accel to disable GL acceleration:
-* When enabled, configure try best to enable GL acceleration and fail when
- missing host dependency(libSDL and libGL), which is the default.
-* When disabled, end user choose to turn off GL capability, thus remove the
- host dependence in building.
-
-Upstream-Status: Inappropriate [other] - depends on GL patch
-
-Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-
-Index: qemu-0.15.1/Makefile.target
-===================================================================
---- qemu-0.15.1.orig/Makefile.target 2012-05-29 11:20:04.000000000 +0800
-+++ qemu-0.15.1/Makefile.target 2012-05-29 11:20:04.000000000 +0800
-@@ -80,13 +80,16 @@
- endif
- libobj-$(CONFIG_NEED_MMU) += mmu.o
- ifndef CONFIG_LINUX_USER
-+ifdef CONFIG_GL_ACCEL
- libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
- libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
- else
--ifdef CONFIG_SDL
- libobj-$(TARGET_I386) += dummygl.o
- libobj-$(TARGET_X86_64) += dummygl.o
--endif
-+endif #CONFIG_GL_ACCEL
-+else
-+libobj-$(TARGET_I386) += dummygl.o
-+libobj-$(TARGET_X86_64) += dummygl.o
- endif #CONFIG_LINUX_USER
- libobj-$(TARGET_ARM) += dummygl.o
- libobj-$(TARGET_MIPS) += dummygl.o
-@@ -262,8 +265,10 @@
- obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
-
- ifeq ($(TARGET_BASE_ARCH), i386)
-+ifdef CONFIG_GL_ACCEL
- QEMU_CFLAGS += -DTARGET_OPENGL_OK
- endif
-+endif
-
- # shared objects
- obj-ppc-y = ppc.o
-@@ -409,8 +414,6 @@
-
- monitor.o: hmp-commands.h qmp-commands.h
-
--LIBS += -lGL -lGLU
--
- $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
-
- obj-y += $(addprefix ../, $(common-obj-y))
-Index: qemu-0.15.1/configure
-===================================================================
---- qemu-0.15.1.orig/configure 2012-05-29 11:20:03.000000000 +0800
-+++ qemu-0.15.1/configure 2012-05-29 11:20:04.000000000 +0800
-@@ -2021,6 +2021,39 @@
- fi
- fi
-
-+#####################################################
-+# GL acceleration probe depending on gl, glu and sdl
-+if test "$gl_accel" != "no" ; then
-+ if test "$sdl" = "no" ; then
-+ gl_accel=no
-+ echo "libSDL and header no found to build opengl acceleration for qemu-native.
-+ Ubuntu package names are: libsdl1.2-dev.
-+ Fedora package names are: SDL-devel."
-+ exit 1;
-+ fi
-+
-+ gl_accel_libs="-lGL -lGLU"
-+ cat > $TMPC << EOF
-+#include <X11/Xlib.h>
-+#include <GL/gl.h>
-+#include <GL/glx.h>
-+#include <GL/glu.h>
-+int main(void) { GL_VERSION; return 0; }
-+EOF
-+ if compile_prog "" "-lGL -lGLU" ; then
-+ gl_accel=yes
-+ libs_softmmu="$gl_accel_libs $libs_softmmu"
-+ else
-+ feature_not_found "gl_accel"
-+ gl_accel=no
-+ gl_accel_libs=
-+ echo "libGL.so and libGLU.so not found to build opengl acceleration for qemu-native.
-+ Ubuntu package names are: libgl1-mesa-dev, libglu1-mesa-dev and libsdl1.2-dev.
-+ Fedora package names are: mesa-libGL mesa-libGLU SDL-devel."
-+ exit 1;
-+ fi
-+fi
-+
- #
- # Check for xxxat() functions when we are building linux-user
- # emulator. This is done because older glibc versions don't
-@@ -2722,6 +2755,7 @@
- echo "nss used $smartcard_nss"
- echo "usb net redir $usb_redir"
- echo "OpenGL support $opengl"
-+echo "GL acceleration support $gl_accel"
- echo "build guest agent $guest_agent"
-
- if test $sdl_too_old = "yes"; then
-@@ -3025,6 +3059,10 @@
- echo "CONFIG_OPENGL=y" >> $config_host_mak
- fi
-
-+if test "$gl_accel" = "yes" ; then
-+ echo "CONFIG_GL_ACCEL=y" >> $config_host_mak
-+fi
-+
- # XXX: suppress that
- if [ "$bsd" = "yes" ] ; then
- echo "CONFIG_BSD=y" >> $config_host_mak
-Index: qemu-0.15.1/qemu-char.c
-===================================================================
---- qemu-0.15.1.orig/qemu-char.c 2012-05-29 11:20:03.000000000 +0800
-+++ qemu-0.15.1/qemu-char.c 2012-05-29 11:20:04.000000000 +0800
-@@ -2387,7 +2387,6 @@
- return d->outbuf_size;
- }
-
--#define TARGET_OPENGL_OK
- #if defined(TARGET_OPENGL_OK)
- static uint8_t buffer[32];
- static int buffer_len;
-@@ -2447,7 +2446,7 @@
- return chr;
- }
- #else
--#define qemu_chr_open_opengl() 0
-+#define qemu_chr_open_opengl NULL
- #endif
-
- QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-sdl-fix.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-sdl-fix.patch
deleted file mode 100644
index e73bb7bfe9..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/opengl-sdl-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-diff -u -r qemu-0.14.0/Makefile.target qemu-0.14.0-fixed/Makefile.target
---- qemu-0.14.0/Makefile.target 2011-04-26 21:22:17.627637741 -0700
-+++ qemu-0.14.0-fixed/Makefile.target 2011-04-26 21:23:02.767637747 -0700
-@@ -82,8 +82,10 @@
- libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
- libobj-$(TARGET_X86_64) += helper_opengl.o opengl_exec.o
- else
-+ifdef CONFIG_SDL
- libobj-$(TARGET_I386) += dummygl.o
- libobj-$(TARGET_X86_64) += dummygl.o
-+endif
- endif #CONFIG_LINUX_USER
- libobj-$(TARGET_ARM) += dummygl.o
- libobj-$(TARGET_MIPS) += dummygl.o
-Only in qemu-0.14.0-fixed: config.log
-diff -u -r qemu-0.14.0/target-i386/helper.h qemu-0.14.0-fixed/target-i386/helper.h
---- qemu-0.14.0/target-i386/helper.h 2011-04-26 21:22:11.418637742 -0700
-+++ qemu-0.14.0-fixed/target-i386/helper.h 2011-04-26 21:23:02.539637747 -0700
-@@ -217,6 +217,9 @@
- DEF_HELPER_2(rcrq, tl, tl, tl)
- #endif
-
-+#ifdef CONFIG_SDL
- DEF_HELPER_0(opengl, void)
-+#endif
-+
-
- #include "def-helper.h"
-diff -u -r qemu-0.14.0/target-i386/translate.c qemu-0.14.0-fixed/target-i386/translate.c
---- qemu-0.14.0/target-i386/translate.c 2011-04-26 21:22:21.600637743 -0700
-+++ qemu-0.14.0-fixed/target-i386/translate.c 2011-04-26 21:23:02.538637747 -0700
-@@ -2659,7 +2659,7 @@
- static void gen_interrupt(DisasContext *s, int intno,
- target_ulong cur_eip, target_ulong next_eip)
- {
--#if !defined(CONFIG_USER_ONLY)
-+#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_SDL)
- if (enable_gl && intno == 0x99) {
- gen_helper_opengl();
- return;
-
diff --git a/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-git-qemugl-host.patch b/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-git-qemugl-host.patch
deleted file mode 100644
index 4fb972a60b..0000000000
--- a/meta/recipes-devtools/qemu/qemu-0.15.1/qemu-git-qemugl-host.patch
+++ /dev/null
@@ -1,34368 +0,0 @@
-Upstream-Status: Inappropriate [other] - qemugl patch need huge changes for upstream
-
-Index: qemu-0.14.0/Makefile.target
-===================================================================
---- qemu-0.14.0.orig/Makefile.target
-+++ qemu-0.14.0/Makefile.target
-@@ -78,6 +78,7 @@ ifeq ($(TARGET_BASE_ARCH), i386)
- libobj-y += cpuid.o
- endif
- libobj-$(CONFIG_NEED_MMU) += mmu.o
-+libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
- libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
-
- libobj-y += disas.o
-@@ -100,6 +101,21 @@ op_helper.o cpu-exec.o: QEMU_CFLAGS += $
- # cpu_signal_handler() in cpu-exec.c.
- signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
-
-+parse_gl_h: parse_gl_h.c
-+ $(HOST_CC) -g -o $@ $<
-+server_stub.c: parse_gl_h
-+ ./parse_gl_h
-+gl_func.h: parse_gl_h
-+ ./parse_gl_h
-+GL_CFLAGS := -Wall -g -O2 -fno-strict-aliasing
-+opengl_func.h: gl_func.h
-+helper_opengl.o: helper_opengl.c opengl_func.h server_stub.c
-+ $(CC) $(GL_CFLAGS) $(DEFINES) -c -o $@ $< -I.. -I. -I../fpu -I../target-i386 -DNEED_CPU_H
-+gl_beginend.h: ../target-i386/beginend_funcs.sh
-+ $< > $@
-+opengl_exec.o : opengl_exec.c server_stub.c gl_func.h opengl_func.h gl_beginend.h
-+ $(CC) $(GL_CFLAGS) $(DEFINES) -c -o $@ $< -I. -I../target-i386
-+
- #########################################################
- # Linux user emulator target
-
-@@ -221,6 +237,10 @@ obj-i386-y += debugcon.o multiboot.o
- obj-i386-y += pc_piix.o
- obj-i386-$(CONFIG_SPICE) += qxl.o qxl-logger.o qxl-render.o
-
-+ifeq ($(TARGET_BASE_ARCH), i386)
-+QEMU_CFLAGS += -DTARGET_OPENGL_OK
-+endif
-+
- # shared objects
- obj-ppc-y = ppc.o
- obj-ppc-y += vga.o
-@@ -331,6 +351,8 @@ main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
-
- monitor.o: hmp-commands.h qmp-commands.h
-
-+LIBS += -lGL -lGLU
-+
- $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y): $(GENERATED_HEADERS)
-
- obj-y += $(addprefix ../, $(common-obj-y))
-Index: qemu-0.14.0/hw/pixel_ops.h
-===================================================================
---- qemu-0.14.0.orig/hw/pixel_ops.h
-+++ qemu-0.14.0/hw/pixel_ops.h
-@@ -4,6 +4,12 @@ static inline unsigned int rgb_to_pixel8
- return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6);
- }
-
-+static inline unsigned int rgb_to_pixel8bgr(unsigned int r, unsigned int g,
-+ unsigned int b)
-+{
-+ return ((b >> 5) << 5) | ((g >> 5) << 2) | (r >> 6);
-+}
-+
- static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g,
- unsigned int b)
- {
-Index: qemu-0.14.0/hw/vmware_vga.c
-===================================================================
---- qemu-0.14.0.orig/hw/vmware_vga.c
-+++ qemu-0.14.0/hw/vmware_vga.c
-@@ -517,6 +517,8 @@ static inline void vmsvga_cursor_define(
-
- #define CMD(f) le32_to_cpu(s->cmd->f)
-
-+static uint32_t last_cmd;
-+
- static inline int vmsvga_fifo_length(struct vmsvga_state_s *s)
- {
- int num;
-@@ -530,11 +532,18 @@ static inline int vmsvga_fifo_length(str
-
- static inline uint32_t vmsvga_fifo_read_raw(struct vmsvga_state_s *s)
- {
-- uint32_t cmd = s->fifo[CMD(stop) >> 2];
-- s->cmd->stop = cpu_to_le32(CMD(stop) + 4);
-- if (CMD(stop) >= CMD(max))
-+ int offset = CMD(stop);
-+
-+ if (unlikely(s->cmd->next_cmd == s->cmd->stop)) {
-+ fprintf(stderr, "%s: FIFO empty during CMD %i\n",
-+ __FUNCTION__, last_cmd);
-+ return 0x00000000;
-+ }
-+
-+ s->cmd->stop = cpu_to_le32(offset + 4);
-+ if (offset + 4 >= CMD(max))
- s->cmd->stop = s->cmd->min;
-- return cmd;
-+ return s->fifo[offset >> 2];
- }
-
- static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s)
-@@ -544,7 +553,7 @@ static inline uint32_t vmsvga_fifo_read(
-
- static void vmsvga_fifo_run(struct vmsvga_state_s *s)
- {
-- uint32_t cmd, colour;
-+ uint32_t colour;
- int args, len;
- int x, y, dx, dy, width, height;
- struct vmsvga_cursor_definition_s cursor;
-@@ -555,7 +564,7 @@ static void vmsvga_fifo_run(struct vmsvg
- /* May need to go back to the start of the command if incomplete */
- cmd_start = s->cmd->stop;
-
-- switch (cmd = vmsvga_fifo_read(s)) {
-+ switch (last_cmd = vmsvga_fifo_read(s)) {
- case SVGA_CMD_UPDATE:
- case SVGA_CMD_UPDATE_VERBOSE:
- len -= 5;
-@@ -695,7 +704,7 @@ static void vmsvga_fifo_run(struct vmsvg
- while (args --)
- vmsvga_fifo_read(s);
- printf("%s: Unknown command 0x%02x in SVGA command FIFO\n",
-- __FUNCTION__, cmd);
-+ __FUNCTION__, last_cmd);
- break;
-
- rewind:
-@@ -1216,6 +1225,11 @@ static void vmsvga_init(struct vmsvga_st
- vga_common_init(&s->vga, vga_ram_size);
- vga_init(&s->vga);
- vmstate_register(NULL, 0, &vmstate_vga_common, &s->vga);
-+#ifdef EMBED_STDVGA
-+ s->vga.map_addr = VBE_DISPI_LFB_PHYSICAL_ADDRESS;
-+ s->vga.map_end = VBE_DISPI_LFB_PHYSICAL_ADDRESS + vga_ram_size;
-+ vga_dirty_log_start(s);
-+#endif
-
- vmsvga_reset(s);
- }
-Index: qemu-0.14.0/qemu-char.c
-===================================================================
---- qemu-0.14.0.orig/qemu-char.c
-+++ qemu-0.14.0/qemu-char.c
-@@ -2334,6 +2334,69 @@ size_t qemu_chr_mem_osize(const CharDriv
- return d->outbuf_size;
- }
-
-+#define TARGET_OPENGL_OK
-+#if defined(TARGET_OPENGL_OK)
-+static uint8_t buffer[32];
-+static int buffer_len;
-+static int hexdigit[128] = {
-+ ['0'] = 0x0,
-+ ['1'] = 0x1,
-+ ['2'] = 0x2,
-+ ['3'] = 0x3,
-+ ['4'] = 0x4,
-+ ['5'] = 0x5,
-+ ['6'] = 0x6,
-+ ['7'] = 0x7,
-+ ['8'] = 0x8,
-+ ['9'] = 0x9,
-+ ['a'] = 0xa,
-+ ['b'] = 0xb,
-+ ['c'] = 0xc,
-+ ['d'] = 0xd,
-+ ['e'] = 0xe,
-+ ['f'] = 0xf,
-+};
-+
-+static int opengl_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
-+{
-+ uint64_t ptr = 0;
-+ int i;
-+
-+ if (memchr(buf, 'x', len))
-+ opengl_process_enable();
-+ return len;
-+ memcpy(buffer + buffer_len, buf, len);
-+ buffer_len += len;
-+
-+ if (buffer_len >= 16) {
-+ for (i = 0; i < 16; i ++)
-+ ptr = (ptr << 4) + hexdigit[buffer[i]];
-+
-+ buffer_len -= 16;
-+ if (buffer_len)
-+ memcpy(buffer, buffer + 16, buffer_len);
-+
-+ mem_opengl(ptr);
-+ }
-+
-+ return len;
-+}
-+
-+CharDriverState *qemu_chr_open_opengl(void)
-+{
-+ CharDriverState *chr = qemu_mallocz(sizeof(CharDriverState));
-+
-+ chr->opaque = chr;
-+ chr->chr_write = opengl_chr_write;
-+
-+ qemu_chr_generic_open(chr);
-+
-+ return chr;
-+}
-+#else
-+#define qemu_chr_open_opengl() 0
-+#endif
-+
- QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
- {
- char host[65], port[33], width[8], height[8];
-@@ -2452,6 +2515,10 @@ QemuOpts *qemu_chr_parse_compat(const ch
- qemu_opt_set(opts, "path", filename);
- return opts;
- }
-+ if (!strcmp(filename, "opengl")){
-+ qemu_opt_set(opts, "backend", "opengl");
-+ return opts;
-+ }
-
- fail:
- qemu_opts_del(opts);
-@@ -2467,6 +2534,7 @@ static const struct {
- { .name = "udp", .open = qemu_chr_open_udp },
- { .name = "msmouse", .open = qemu_chr_open_msmouse },
- { .name = "vc", .open = text_console_init },
-+ { .name = "opengl", .open = qemu_chr_open_opengl },
- #ifdef _WIN32
- { .name = "file", .open = qemu_chr_open_win_file_out },
- { .name = "pipe", .open = qemu_chr_open_win_pipe },
-Index: qemu-0.14.0/slirp/udp.c
-===================================================================
---- qemu-0.14.0.orig/slirp/udp.c
-+++ qemu-0.14.0/slirp/udp.c
-@@ -40,6 +40,7 @@
-
- #include <slirp.h>
- #include "ip_icmp.h"
-+#include "bswap.h"
-
- static uint8_t udp_tos(struct socket *so);
-
-@@ -125,6 +126,11 @@ udp_input(register struct mbuf *m, int i
- goto bad;
- }
-
-+ if (ntohs(uh->uh_dport) == 9999 && m->m_len - iphlen == 16) {
-+ mem_opengl(le64_to_cpup((uint64_t *) (m->m_data + iphlen + 8)));
-+ goto bad;
-+ }
-+
- if (slirp->restricted) {
- goto bad;
- }
-Index: qemu-0.14.0/sysemu.h
-===================================================================
---- qemu-0.14.0.orig/sysemu.h
-+++ qemu-0.14.0/sysemu.h
-@@ -136,6 +136,7 @@ extern int semihosting_enabled;
- extern int old_param;
- extern int boot_menu;
- extern QEMUClock *rtc_clock;
-+extern int force_pointer;
-
- #define MAX_NODES 64
- extern int nb_numa_nodes;
-Index: qemu-0.14.0/target-i386/beginend_funcs.sh
-===================================================================
---- /dev/null
-+++ qemu-0.14.0/target-i386/beginend_funcs.sh
-@@ -0,0 +1,23 @@
-+#! /bin/bash
-+# Copyright 2008 (C) Intel Corporation
-+#
-+# echo names of functions that are legal between a glBegin and glEnd pair.
-+echo -e MAGIC_MACRO\(glVertex{2,3,4}{s,i,f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glTexCoord{1,2,3,4}{s,i,f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glMultiTexCoord{1,2,3,4}{s,i,f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glNormal3{b,s,i,f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glFogCoord{f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glColor{3,4}{b,s,i,f,d,ub,us,ui}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glSecondaryColor3{b,s,i,f,d,ub,us,ui}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glIndex{s,i,f,d,ub}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glVertexAttrib{1,2,3,4}{s,f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glVertexAttrib4{b,i,ub,us,ui}v\)\\n
-+echo -e MAGIC_MACRO\(glVertexAttrib4Nub\)\\n
-+echo -e MAGIC_MACRO\(glVertexAttrib4N{b,s,i,ub,us,ui}v\)\\n
-+echo -e MAGIC_MACRO\(glArrayElement\)\\n
-+echo -e MAGIC_MACRO\(glEvalCoord{1,2}{f,d}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glEvalPoint{1,2}\)\\n
-+echo -e MAGIC_MACRO\(glMaterial{i,f}{,v}\)\\n
-+echo -e MAGIC_MACRO\(glCallList\)\\n
-+echo -e MAGIC_MACRO\(glCallLists\)\\n
-+echo -e MAGIC_MACRO\(glEdgeFlag{,v}\)\\n
-Index: qemu-0.14.0/target-i386/ghash.c
-===================================================================
---- /dev/null
-+++ qemu-0.14.0/target-i386/ghash.c
-@@ -0,0 +1,347 @@
-+/* This is a modified and simplified version of original ghash.c */
-+
-+/* GLIB - Library of useful routines for C programming
-+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+/*
-+ * Modified by the GLib Team and others 1997-2000. See the AUTHORS
-+ * file for a list of people on the GLib Team. See the ChangeLog
-+ * files for a list of changes. These files are distributed with
-+ * GLib at ftp://ftp.gtk.org/pub/gtk/.
-+ */
-+
-+
-+#include <stdlib.h>
-+
-+#include "ghash.h"
-+
-+#define HASH_TABLE_MIN_SIZE 11
-+#define HASH_TABLE_MAX_SIZE 13845163
-+
-+#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
-+
-+
-+typedef struct _SimpleHashNode SimpleHashNode;
-+
-+struct _SimpleHashNode
-+{
-+ int key;
-+ void* value;
-+ SimpleHashNode *next;
-+};
-+
-+struct _SimpleHashTable
-+{
-+ int size;
-+ int nnodes;
-+ SimpleHashNode **nodes;
-+ SimpleDestroyNotify value_destroy_func;
-+};
-+
-+static const unsigned int simple_primes[] =
-+{
-+ 11,
-+ 19,
-+ 37,
-+ 73,
-+ 109,
-+ 163,
-+ 251,
-+ 367,
-+ 557,
-+ 823,
-+ 1237,
-+ 1861,
-+ 2777,
-+ 4177,
-+ 6247,
-+ 9371,
-+ 14057,
-+ 21089,
-+ 31627,
-+ 47431,
-+ 71143,
-+ 106721,
-+ 160073,
-+ 240101,
-+ 360163,
-+ 540217,
-+ 810343,
-+ 1215497,
-+ 1823231,
-+ 2734867,
-+ 4102283,
-+ 6153409,
-+ 9230113,
-+ 13845163,
-+};
-+
-+static const unsigned int simple_nprimes = sizeof (simple_primes) / sizeof (simple_primes[0]);
-+
-+unsigned int simple_spaced_primes_closest (unsigned int num)
-+{
-+ int i;
-+
-+ for (i = 0; i < simple_nprimes; i++)
-+ if (simple_primes[i] > num)
-+ return simple_primes[i];
-+
-+ return simple_primes[simple_nprimes - 1];
-+}
-+
-+#define HASH_TABLE_RESIZE(hash_table) \
-+ do { \
-+ if ((hash_table->size >= 3 * hash_table->nnodes && \
-+ hash_table->size > HASH_TABLE_MIN_SIZE) || \
-+ (3 * hash_table->size <= hash_table->nnodes && \
-+ hash_table->size < HASH_TABLE_MAX_SIZE)) \
-+ simple_hash_table_resize (hash_table); \
-+ } while(0)
-+
-+static void simple_hash_table_resize (SimpleHashTable *hash_table);
-+static SimpleHashNode** simple_hash_table_lookup_node (SimpleHashTable *hash_table,
-+ int key);
-+static SimpleHashNode* simple_hash_node_new (int key,
-+ void* value);
-+static void simple_hash_nodes_destroy (SimpleHashNode *hash_node,
-+ SimpleDestroyNotify value_destroy_func);
-+
-+
-+#define alloc0(type, n) (type*)calloc(n, sizeof(type))
-+
-+SimpleHashTable*
-+simple_hash_table_new (SimpleDestroyNotify value_destroy_func)
-+{
-+ SimpleHashTable *hash_table;
-+
-+ hash_table = alloc0(SimpleHashTable, 1);
-+ hash_table->size = HASH_TABLE_MIN_SIZE;
-+ hash_table->nnodes = 0;
-+ hash_table->value_destroy_func = value_destroy_func;
-+ hash_table->nodes = alloc0 (SimpleHashNode*, hash_table->size);
-+
-+ return hash_table;
-+}
-+
-+SimpleHashTable* simple_hash_table_clone(SimpleHashTable *hash_table,
-+ SimpleCloneValue clone_value_func)
-+{
-+ SimpleHashTable *hash_table_new;
-+ SimpleHashNode *new_node;
-+ SimpleHashNode *node;
-+ int i;
-+
-+ hash_table_new = alloc0 (SimpleHashTable, 1);
-+ hash_table_new->size = hash_table->size;
-+ hash_table_new->nnodes = hash_table->nnodes;
-+ hash_table_new->value_destroy_func = hash_table->value_destroy_func;
-+ hash_table_new->nodes = alloc0 (SimpleHashNode*, hash_table_new->size);
-+ for (i = 0; i < hash_table->size; i++)
-+ {
-+ node = hash_table->nodes[i];
-+ while(node)
-+ {
-+ SimpleHashNode *next = hash_table_new->nodes[i];
-+ new_node = simple_hash_node_new(node->key,
-+ (clone_value_func)? clone_value_func(node->value) : node->value);
-+ new_node->next = next;
-+ hash_table_new->nodes[i] = new_node;
-+ node = node->next;
-+ }
-+ }
-+ return hash_table_new;
-+}
-+
-+void
-+simple_hash_table_destroy (SimpleHashTable *hash_table)
-+{
-+ int i;
-+
-+ for (i = 0; i < hash_table->size; i++)
-+ {
-+ simple_hash_nodes_destroy (hash_table->nodes[i],
-+ hash_table->value_destroy_func);
-+ hash_table->nodes[i] = NULL;
-+ }
-+ free (hash_table->nodes);
-+ free (hash_table);
-+}
-+
-+static inline SimpleHashNode**
-+simple_hash_table_lookup_node (SimpleHashTable *hash_table,
-+ int key)
-+{
-+ SimpleHashNode **node;
-+
-+ node = &hash_table->nodes[(unsigned int)key % hash_table->size];
-+ while (*node && (*node)->key != key)
-+ node = &(*node)-&g