]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
qemu: Updated to 0.12.0
authorJeff Dike <jdike@addtoit.com>
Thu, 20 May 2010 17:02:39 +0000 (13:02 -0400)
committerJoshua Lock <josh@linux.intel.com>
Wed, 26 May 2010 13:14:48 +0000 (14:14 +0100)
Updated the metadata in the recipe, changed the git revision in
poky-default-revisions.inc, and pulled the qemu patches forward.

meta/conf/distro/include/poky-default-revisions.inc
meta/packages/qemu/qemu-git/2ca2078e287174522e3a6229618947d3d285b8c0.patch [deleted file]
meta/packages/qemu/qemu-git/fix-dirent.patch
meta/packages/qemu/qemu-git/fix-nogl.patch
meta/packages/qemu/qemu-git/no-strip.patch
meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch
meta/packages/qemu/qemu-git/qemugl-allow-glxcontext-release.patch
meta/packages/qemu/qemu-git/workaround_bad_futex_headers.patch
meta/packages/qemu/qemu-git/zlibsearch.patch [deleted file]
meta/packages/qemu/qemu_git.bb

index 7a3fc8bcc7a5949a6178c2f5b63f4487c94ed3ca..a30208fc7ee6cae8b1fbdfde28d974b5d3e54ba2 100644 (file)
@@ -105,7 +105,7 @@ SRCREV_pn-pkgconfig ??= "66d49f1375fec838bcd301bb4ca2ef76cee0e47c"
 SRCREV_pn-psplash ??= "422"
 SRCREV_pn-pseudo ??= "086e65c90420b3d38f30c3cd81a0f8573f6f69cf"
 SRCREV_pn-pseudo-native ??= "086e65c90420b3d38f30c3cd81a0f8573f6f69cf"
-QEMUSRCREV ??= "9eab386edbf8cf002a731f8204a156f243a47a57"
+QEMUSRCREV ??= "72bb3c7571226af13cfe9eec020a56add3d30a70"
 SRCREV_pn-qemu-native ??= "${QEMUSRCREV}"
 SRCREV_pn-qemu-nativesdk ??= "${QEMUSRCREV}"
 SRCREV_pn-qemu ??= "${QEMUSRCREV}"
diff --git a/meta/packages/qemu/qemu-git/2ca2078e287174522e3a6229618947d3d285b8c0.patch b/meta/packages/qemu/qemu-git/2ca2078e287174522e3a6229618947d3d285b8c0.patch
deleted file mode 100644 (file)
index e2ebf67..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 2ca2078e287174522e3a6229618947d3d285b8c0 Mon Sep 17 00:00:00 2001
-From: François Revol <revol@free.fr>
-Date: Tue, 25 Aug 2009 09:14:10 +0000
-Subject: Fixed wacom emulation
-
-- for absolute mode, scale coordinates to the real device maximum values,
-since some drivers (on Haiku and Linux at least) need them as such,
-and the HID descriptor is boggus on some models anyway,
-- keep the coordinates even when no button is pressed, on real tablet
-the pen is sensed on the surface even without direct contact,
-and drivers expect this,
-- map left button to pressure according to what the Haiku driver wants,
-- map the right button to the pen button,
-- map the middle button to the eraser,
-- use asynchronous reporting as the hid code does, stops the Haiku driver
-(and probably others) from spending 50% cpu polling for changes.
-
-Signed-off-by: François Revol <revol@free.fr>
-Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
----
-Index: git/hw/usb-wacom.c
-===================================================================
---- git.orig/hw/usb-wacom.c    2009-11-24 14:10:15.000000000 +0000
-+++ git/hw/usb-wacom.c 2009-11-24 16:39:26.000000000 +0000
-@@ -50,6 +50,8 @@
-         WACOM_MODE_HID = 1,
-         WACOM_MODE_WACOM = 2,
-     } mode;
-+    uint8_t idle;
-+    int changed;
- } USBWacomState;
- static const uint8_t qemu_wacom_dev_descriptor[] = {
-@@ -125,6 +127,7 @@
-     s->dy += dy1;
-     s->dz += dz1;
-     s->buttons_state = buttons_state;
-+    s->changed = 1;
- }
- static void usb_wacom_event(void *opaque,
-@@ -132,10 +135,12 @@
- {
-     USBWacomState *s = opaque;
--    s->x = x;
--    s->y = y;
-+    /* scale to Penpartner resolution */
-+    s->x = (x * 5040 / 0x7FFF);
-+    s->y = (y * 3780 / 0x7FFF);
-     s->dz += dz;
-     s->buttons_state = buttons_state;
-+    s->changed = 1;
- }
- static inline int int_clamp(int val, int vmin, int vmax)
-@@ -199,26 +204,22 @@
-     if (s->buttons_state & MOUSE_EVENT_LBUTTON)
-         b |= 0x01;
-     if (s->buttons_state & MOUSE_EVENT_RBUTTON)
--        b |= 0x02;
-+        b |= 0x40;
-     if (s->buttons_state & MOUSE_EVENT_MBUTTON)
--        b |= 0x04;
-+        b |= 0x20; /* eraser */
-     if (len < 7)
-         return 0;
-     buf[0] = s->mode;
--    buf[5] = 0x00;
--    if (b) {
--        buf[1] = s->x & 0xff;
--        buf[2] = s->x >> 8;
--        buf[3] = s->y & 0xff;
--        buf[4] = s->y >> 8;
-+    buf[5] = 0x00 | (b & 0xf0);
-+    buf[1] = s->x & 0xff;
-+    buf[2] = s->x >> 8;
-+    buf[3] = s->y & 0xff;
-+    buf[4] = s->y >> 8;
-+    if (b & 0x3f) {
-         buf[6] = 0;
-     } else {
--        buf[1] = 0;
--        buf[2] = 0;
--        buf[3] = 0;
--        buf[4] = 0;
-         buf[6] = (unsigned char) -127;
-     }
-@@ -350,7 +351,12 @@
-         else if (s->mode == WACOM_MODE_WACOM)
-             ret = usb_wacom_poll(s, data, length);
-         break;
-+    case HID_GET_IDLE:
-+        ret = 1;
-+        data[0] = s->idle;
-+        break;
-     case HID_SET_IDLE:
-+        s->idle = (uint8_t) (value >> 8);
-         ret = 0;
-         break;
-     default:
-@@ -369,6 +375,9 @@
-     switch (p->pid) {
-     case USB_TOKEN_IN:
-         if (p->devep == 1) {
-+            if (!(s->changed || s->idle))
-+                return USB_RET_NAK;
-+            s->changed = 0;
-             if (s->mode == WACOM_MODE_HID)
-                 ret = usb_mouse_poll(s, p->data, p->len);
-             else if (s->mode == WACOM_MODE_WACOM)
-@@ -399,7 +408,6 @@
-     s = qemu_mallocz(sizeof(USBWacomState));
-     s->dev.speed = USB_SPEED_FULL;
-     s->dev.handle_packet = usb_generic_handle_packet;
--
-     s->dev.handle_reset = usb_wacom_handle_reset;
-     s->dev.handle_control = usb_wacom_handle_control;
-     s->dev.handle_data = usb_wacom_handle_data;
-@@ -407,6 +415,7 @@
-     pstrcpy(s->dev.devname, sizeof(s->dev.devname),
-             "QEMU PenPartner Tablet");
-+    s->changed = 1;
-     return (USBDevice *) s;
- }
index 575dbfa0c97c56238d3d3348a8de3df67150c2fc..8bbfa0e88ef7d786ecc898663653a4fb4f96de8f 100644 (file)
@@ -1,7 +1,7 @@
-Index: trunk/linux-user/syscall.c
+Index: qemu/linux-user/syscall.c
 ===================================================================
---- trunk.orig/linux-user/syscall.c    2009-01-05 12:51:52.000000000 +0000
-+++ trunk/linux-user/syscall.c 2009-01-05 12:51:52.000000000 +0000
+--- qemu.orig/linux-user/syscall.c     2010-05-11 13:16:22.421783949 -0400
++++ qemu/linux-user/syscall.c  2010-05-11 13:16:31.759805849 -0400
 @@ -26,6 +26,7 @@
  #include <errno.h>
  #include <unistd.h>
index 6cb812f00ca39d0a0f2e325915746113db128e49..68efab3a1fe133a43724f580cd9ac54f46c632bb 100644 (file)
@@ -1,20 +1,21 @@
-Index: git/Makefile.target
+Index: qemu/Makefile.target
 ===================================================================
---- git.orig/Makefile.target   2009-06-09 22:05:27.000000000 +0100
-+++ git/Makefile.target        2009-06-09 22:05:28.000000000 +0100
-@@ -155,6 +155,8 @@
+--- qemu.orig/Makefile.target  2010-05-11 16:53:34.545811866 -0400
++++ qemu/Makefile.target       2010-05-11 16:53:37.743809704 -0400
+@@ -47,6 +47,9 @@ libobj-$(CONFIG_NOSOFTFLOAT) += fpu/soft
+ libobj-y += op_helper.o helper.o
+ 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_ARM) += neon_helper.o iwmmxt_helper.o
+ libobj-$(TARGET_ALPHA) += alpha_palcode.o
  
- ifeq ($(TARGET_BASE_ARCH), i386)
- LIBOBJS+=helper_opengl.o opengl_exec.o
-+else
-+LIBOBJS+=dummygl.o
- endif
- ifeq ($(TARGET_BASE_ARCH), arm)
-Index: git/target-arm/dummygl.c
+Index: qemu/target-arm/dummygl.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-arm/dummygl.c   2009-06-09 22:15:55.000000000 +0100
++++ qemu/target-arm/dummygl.c  2010-05-11 16:53:37.743809704 -0400
 @@ -0,0 +1,22 @@
 +#include <string.h>
 +#include <stdlib.h>
@@ -38,10 +39,10 @@ Index: git/target-arm/dummygl.c
 +{
 +
 +}
-Index: git/target-mips/dummygl.c
+Index: qemu/target-mips/dummygl.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-mips/dummygl.c  2009-06-09 22:15:55.000000000 +0100
++++ qemu/target-mips/dummygl.c 2010-05-11 16:53:37.744811919 -0400
 @@ -0,0 +1,22 @@
 +#include <string.h>
 +#include <stdlib.h>
index fc69b37e16cbab7b4103f8d82cfc1df3975fad85..8a95a688b35aea647e903a9dc644b216e6743dcb 100644 (file)
@@ -1,22 +1,26 @@
---- qemu.orig/Makefile 2008-01-29 23:16:27.000000000 -0800
-+++ qemu-0.9.1/Makefile        2008-01-29 23:16:38.000000000 -0800
-@@ -174,7 +174,7 @@
+Index: qemu/Makefile
+===================================================================
+--- qemu.orig/Makefile 2010-05-11 17:17:06.416912704 -0400
++++ qemu/Makefile      2010-05-11 17:17:17.051812402 -0400
+@@ -300,7 +300,7 @@ endif
  install: all $(if $(BUILD_DOCS),install-doc)
-       mkdir -p "$(DESTDIR)$(bindir)"
+       $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
  ifneq ($(TOOLS),)
--      $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
-+      $(INSTALL) -m 755 $(TOOLS) "$(DESTDIR)$(bindir)"
+-      $(INSTALL_PROG) $(STRIP_OPT) $(TOOLS) "$(DESTDIR)$(bindir)"
++      $(INSTALL_PROG) $(TOOLS) "$(DESTDIR)$(bindir)"
  endif
-       mkdir -p "$(DESTDIR)$(datadir)"
-       for x in bios.bin vgabios.bin vgabios-cirrus.bin ppc_rom.bin \
---- qemu.orig/Makefile.target  2008-01-29 23:16:27.000000000 -0800
-+++ qemu-0.9.1/Makefile.target 2008-01-29 23:17:33.000000000 -0800
-@@ -632,7 +632,7 @@
+ ifneq ($(BLOBS),)
+       $(INSTALL_DIR) "$(DESTDIR)$(datadir)"
+Index: qemu/Makefile.target
+===================================================================
+--- qemu.orig/Makefile.target  2010-05-11 17:17:12.188784092 -0400
++++ qemu/Makefile.target       2010-05-11 17:17:17.052808122 -0400
+@@ -351,7 +351,7 @@ clean:
  
  install: all
  ifneq ($(PROGS),)
--      $(INSTALL) -m 755 -s $(PROGS) "$(DESTDIR)$(bindir)"
+-      $(INSTALL) -m 755 $(STRIP_OPT) $(PROGS) "$(DESTDIR)$(bindir)"
 +      $(INSTALL) -m 755 $(PROGS) "$(DESTDIR)$(bindir)"
  endif
  
- ifneq ($(wildcard .depend),)
+ # Include automatically generated dependency files
index 00d9ca7cc2a6a3833456ddde49de90392cafb5a0..7ec491daedb068e44db69818aa24b1afc8058714 100644 (file)
@@ -1,21 +1,18 @@
-Index: git/Makefile.target
+Index: qemu/Makefile.target
 ===================================================================
---- git.orig/Makefile.target   2009-12-02 13:13:56.000000000 +0000
-+++ git/Makefile.target        2010-01-14 16:34:58.000000000 +0000
-@@ -153,6 +153,10 @@
- CPPFLAGS+=-I$(SRC_PATH)/fpu
- LIBOBJS+= op_helper.o helper.o
+--- qemu.orig/Makefile.target  2010-05-11 18:05:22.955784896 -0400
++++ qemu/Makefile.target       2010-05-14 13:34:07.721301429 -0400
+@@ -46,6 +46,7 @@ libobj-$(CONFIG_SOFTFLOAT) += fpu/softfl
+ libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
+ libobj-y += op_helper.o helper.o
+ 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-$(TARGET_ALPHA) += alpha_palcode.o
  
-+ifeq ($(TARGET_BASE_ARCH), i386)
-+LIBOBJS+=helper_opengl.o opengl_exec.o
-+endif
-+
- ifeq ($(TARGET_BASE_ARCH), arm)
- LIBOBJS+= neon_helper.o iwmmxt_helper.o
- endif
-@@ -224,6 +228,21 @@
- cpu-exec.o: CFLAGS += $(HELPER_CFLAGS)
+@@ -82,6 +83,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 $@ $<
@@ -35,29 +32,31 @@ Index: git/Makefile.target
  #########################################################
  # Linux user emulator target
  
-@@ -584,7 +603,7 @@
- OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o
- OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o hpet.o
- OBJS += device-hotplug.o pci-hotplug.o
--CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
-+CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE -DTARGET_OPENGL_OK
- endif
- ifeq ($(TARGET_BASE_ARCH), ppc)
- CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE
-@@ -727,7 +746,7 @@
- $(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS)
+@@ -196,6 +212,10 @@ obj-i386-y += usb-uhci.o vmmouse.o vmpor
+ obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
+ obj-i386-y += ne2000-isa.o
++ifeq ($(TARGET_BASE_ARCH), i386)
++QEMU_CFLAGS += -DTARGET_OPENGL_OK
++endif
++
+ # shared objects
+ obj-ppc-y = ppc.o ide/core.o ide/qdev.o ide/isa.o ide/pci.o ide/macio.o
+ obj-ppc-y += ide/cmd646.o
+@@ -303,6 +323,8 @@ vl.o: qemu-options.h
  
- $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a
--      $(LINK)
-+      $(LINK) -lGL -lGLU
+ monitor.o: qemu-monitor.h
  
- endif # !CONFIG_USER_ONLY
++LIBS += -lGL -lGLU
++
+ ARLIBS=../libqemu_common.a libqemu.a $(HWLIB)
  
-Index: git/hw/pixel_ops.h
+ endif # CONFIG_SOFTMMU
+Index: qemu/hw/pixel_ops.h
 ===================================================================
---- git.orig/hw/pixel_ops.h    2009-12-02 13:13:56.000000000 +0000
-+++ git/hw/pixel_ops.h 2010-01-14 15:55:40.000000000 +0000
-@@ -4,6 +4,12 @@
+--- qemu.orig/hw/pixel_ops.h   2010-05-11 18:05:22.959804376 -0400
++++ qemu/hw/pixel_ops.h        2010-05-12 12:10:40.092908994 -0400
+@@ -4,6 +4,12 @@ static inline unsigned int rgb_to_pixel8
      return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6);
  }
  
@@ -70,11 +69,11 @@ Index: git/hw/pixel_ops.h
  static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g,
                                            unsigned int b)
  {
-Index: git/hw/vmware_vga.c
+Index: qemu/hw/vmware_vga.c
 ===================================================================
---- git.orig/hw/vmware_vga.c   2009-12-02 13:13:56.000000000 +0000
-+++ git/hw/vmware_vga.c        2010-01-14 15:55:40.000000000 +0000
-@@ -484,6 +484,8 @@
+--- qemu.orig/hw/vmware_vga.c  2010-05-11 18:05:22.959804376 -0400
++++ qemu/hw/vmware_vga.c       2010-05-12 12:10:40.124785891 -0400
+@@ -489,6 +489,8 @@ static inline void vmsvga_cursor_define(
  
  #define CMD(f)        le32_to_cpu(s->cmd->f)
  
@@ -83,7 +82,7 @@ Index: git/hw/vmware_vga.c
  static inline int vmsvga_fifo_empty(struct vmsvga_state_s *s)
  {
      if (!s->config || !s->enable)
-@@ -493,11 +495,18 @@
+@@ -498,11 +500,18 @@ static inline int vmsvga_fifo_empty(stru
  
  static inline uint32_t vmsvga_fifo_read_raw(struct vmsvga_state_s *s)
  {
@@ -106,7 +105,7 @@ Index: git/hw/vmware_vga.c
  }
  
  static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s)
-@@ -507,12 +516,12 @@
+@@ -512,12 +521,12 @@ static inline uint32_t vmsvga_fifo_read(
  
  static void vmsvga_fifo_run(struct vmsvga_state_s *s)
  {
@@ -121,7 +120,7 @@ Index: git/hw/vmware_vga.c
          case SVGA_CMD_UPDATE:
          case SVGA_CMD_UPDATE_VERBOSE:
              x = vmsvga_fifo_read(s);
-@@ -612,7 +621,7 @@
+@@ -617,7 +626,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",
@@ -130,71 +129,24 @@ Index: git/hw/vmware_vga.c
              break;
          }
  
-@@ -914,8 +923,9 @@
-     s->width = -1;
-     s->height = -1;
-     s->svgaid = SVGA_ID;
--    s->depth = 24;
-+    s->depth = 32;
-     s->bypp = (s->depth + 7) >> 3;
-+    s->bypp = 4; /* XXX: until we can get host's actual depth */
-     s->cursor.on = 0;
-     s->redraw_fifo_first = 0;
-     s->redraw_fifo_last = 0;
-@@ -1140,6 +1150,12 @@
-     /* XXX: use optimized standard vga accesses */
-     cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,
-                                  vga_ram_size, vga_ram_offset);
-+
-+#ifdef EMBED_STDVGA
-+    s->map_addr = VBE_DISPI_LFB_PHYSICAL_ADDRESS;
-+    s->map_end = VBE_DISPI_LFB_PHYSICAL_ADDRESS + vga_ram_size;
-+    vga_dirty_log_start((VGAState *) s);
-+#endif
- #endif
- }
+@@ -1136,6 +1145,12 @@ static void vmsvga_init(struct vmsvga_st
  
-Index: git/kqemu.c
-===================================================================
---- git.orig/kqemu.c   2009-12-02 13:13:56.000000000 +0000
-+++ git/kqemu.c        2010-01-14 15:55:40.000000000 +0000
-@@ -93,6 +93,8 @@
- int qpi_io_memory;
- uint32_t kqemu_comm_base; /* physical address of the QPI communication page */
+     vga_init_vbe(&s->vga);
  
-+extern int enable_gl;
++#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
 +
- #define cpuid(index, eax, ebx, ecx, edx) \
-   asm volatile ("cpuid" \
-                 : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) \
-@@ -860,6 +862,22 @@
-     else
-         env->hflags &= ~HF_OSFXSR_MASK;
+     rom_add_vga(VGABIOS_FILENAME);
  
-+    /* OPENGL Stuff */
-+    if (enable_gl && ((env->hflags & HF_CPL_MASK) == 3)) {
-+        int index = (env->eip >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
-+        if (env->segs[R_CS].base != 0)
-+            fprintf(stderr, "env->segs[R_CS].base != 0 !\n");
-+        else if (__builtin_expect(env->tlb_table[1][index].addr_code !=
-+                           (env->eip & TARGET_PAGE_MASK), 0))
-+            ldub_code(env->eip);
-+
-+        if (env->tlb_table[1][index].addend) {
-+            unsigned char *ptr = env->eip + env->tlb_table[1][index].addend;
-+            if (ptr[0] == 0xcd && ptr[1] == 0x99)
-+                helper_opengl();
-+        }
-+    }
-+
-     LOG_INT("kqemu: kqemu_cpu_exec: ret=0x%x\n", ret);
-     if (ret == KQEMU_RET_SYSCALL) {
-         /* syscall instruction */
-Index: git/qemu-char.c
+     vmsvga_reset(s);
+Index: qemu/qemu-char.c
 ===================================================================
---- git.orig/qemu-char.c       2009-12-02 13:13:56.000000000 +0000
-+++ git/qemu-char.c    2010-01-14 15:55:40.000000000 +0000
-@@ -2112,6 +2112,69 @@
+--- qemu.orig/qemu-char.c      2010-05-11 18:05:22.955784896 -0400
++++ qemu/qemu-char.c   2010-05-12 17:20:54.280909040 -0400
+@@ -2232,6 +2232,69 @@ static CharDriverState *qemu_chr_open_so
      return NULL;
  }
  
@@ -253,7 +205,7 @@ Index: git/qemu-char.c
 +    chr->opaque = chr;
 +    chr->chr_write = opengl_chr_write;
 +
-+    qemu_chr_reset(chr);
++    qemu_chr_generic_open(chr);
 +
 +    return chr;
 +}
@@ -261,57 +213,66 @@ Index: git/qemu-char.c
 +#define qemu_chr_open_opengl() 0
 +#endif
 +
CharDriverState *qemu_chr_open(const char *label, const char *filename, void (*init)(struct CharDriverState *s))
QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
  {
-     const char *p;
-@@ -2192,6 +2255,9 @@
-         chr = chr_baum_init();
-     } else
- #endif
-+    if (!strcmp(filename, "opengl")) {
-+        chr = qemu_chr_open_opengl();
-+    } else
-     {
-         chr = NULL;
+     char host[65], port[33], width[8], height[8];
+@@ -2352,6 +2415,10 @@ QemuOpts *qemu_chr_parse_compat(const ch
+         qemu_opt_set(opts, "path", filename);
+         return opts;
      }
-Index: git/sdl.c
++    if (!strcmp(filename, "opengl")){
++        qemu_opt_set(opts, "backend", "opengl");
++        return opts;
++    }
+ fail:
+     fprintf(stderr, "%s: fail on \"%s\"\n", __FUNCTION__, filename);
+@@ -2368,6 +2435,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/sdl.c
 ===================================================================
---- git.orig/sdl.c     2009-12-02 13:13:56.000000000 +0000
-+++ git/sdl.c  2010-01-14 15:55:40.000000000 +0000
-@@ -54,6 +54,8 @@
- static int guest_x, guest_y;
- static SDL_Cursor *guest_sprite = 0;
+--- qemu.orig/sdl.c    2010-05-11 18:05:22.959804376 -0400
++++ qemu/sdl.c 2010-05-12 12:10:40.128783931 -0400
+@@ -58,6 +58,8 @@ static uint8_t allocator;
+ static SDL_PixelFormat host_format;
+ static int scaling_active = 0;
  
 +extern void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window);
 +
  static void sdl_update(DisplayState *ds, int x, int y, int w, int h)
  {
-     SDL_Rect rec;
-@@ -85,7 +87,9 @@
+     //    printf("updating x=%d y=%d w=%d h=%d\n", x, y, w, h);
+@@ -119,12 +121,22 @@ static void do_sdl_resize(int new_width,
  
  static void sdl_resize(DisplayState *ds)
  {
+-    if  (!allocator) {
 +    SDL_SysWMinfo info;
-     int flags;
 +    static Display *dpy;
-     //    printf("resizing to %d %d\n", w, h);
-@@ -104,6 +108,13 @@
-     }
-     sdl_setdata(ds);
 +
-+    SDL_GetWMInfo(&info);
-+    if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display &&
-+                    (!dpy || dpy == info.info.x11.display)) {
-+        dpy = info.info.x11.display;
-+        opengl_exec_set_parent_window(dpy, info.info.x11.window);
-+    }
- }
- /* generic keyboard conversion */
-@@ -323,7 +334,7 @@
++     if  (!allocator) {
+         if (!scaling_active)
+             do_sdl_resize(ds_get_width(ds), ds_get_height(ds), 0);
+         else if (real_screen->format->BitsPerPixel != ds_get_bits_per_pixel(ds))
+             do_sdl_resize(real_screen->w, real_screen->h, ds_get_bits_per_pixel(ds));
+         sdl_setdata(ds);
++
++        SDL_GetWMInfo(&info);
++        if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display &&
++            (!dpy || dpy == info.info.x11.display)) {
++                dpy = info.info.x11.display;
++                opengl_exec_set_parent_window(dpy, info.info.x11.window);
++        }
+     } else {
+         if (guest_screen != NULL) {
+             SDL_FreeSurface(guest_screen);
+@@ -453,7 +465,7 @@ static void sdl_show_cursor(void)
  
      if (!kbd_mouse_is_absolute()) {
          SDL_ShowCursor(1);
@@ -320,7 +281,7 @@ Index: git/sdl.c
                  (gui_grab || kbd_mouse_is_absolute() || absolute_enabled))
              SDL_SetCursor(guest_sprite);
          else
-@@ -334,7 +345,8 @@
+@@ -464,7 +476,8 @@ static void sdl_show_cursor(void)
  static void sdl_grab_start(void)
  {
      if (guest_cursor) {
@@ -330,7 +291,7 @@ Index: git/sdl.c
          if (!kbd_mouse_is_absolute() && !absolute_enabled)
              SDL_WarpMouse(guest_x, guest_y);
      } else
-@@ -375,8 +387,8 @@
+@@ -505,8 +518,8 @@ static void sdl_send_mouse_event(int dx,
            absolute_enabled = 1;
        }
  
@@ -341,7 +302,7 @@ Index: git/sdl.c
      } else if (absolute_enabled) {
        sdl_show_cursor();
        absolute_enabled = 0;
-@@ -606,7 +618,8 @@
+@@ -760,7 +773,8 @@ static void sdl_mouse_warp(int x, int y,
          if (!guest_cursor)
              sdl_show_cursor();
          if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) {
@@ -351,18 +312,7 @@ Index: git/sdl.c
              if (!kbd_mouse_is_absolute() && !absolute_enabled)
                  SDL_WarpMouse(x, y);
          }
-@@ -631,6 +644,10 @@
-         line = image;
-         for (x = 0; x < width; x ++, dst ++) {
-             switch (bpp) {
-+            case 32:
-+                src = *(line ++); src |= *(line ++);
-+                src = *(line ++); src |= *(line ++);
-+                break;
-             case 24:
-                 src = *(line ++); src |= *(line ++); src |= *(line ++);
-                 break;
-@@ -657,7 +674,7 @@
+@@ -814,7 +828,7 @@ static void sdl_mouse_define(int width, 
      }
      guest_sprite = SDL_CreateCursor(sprite, mask, width, height, hot_x, hot_y);
  
@@ -371,17 +321,17 @@ Index: git/sdl.c
              (gui_grab || kbd_mouse_is_absolute() || absolute_enabled))
          SDL_SetCursor(guest_sprite);
  }
-@@ -673,6 +690,7 @@
- {
+@@ -831,6 +845,7 @@ void sdl_display_init(DisplayState *ds, 
      int flags;
      uint8_t data = 0;
+     DisplayAllocator *da;
 +    SDL_SysWMinfo info;
+     const SDL_VideoInfo *vi;
  
  #if defined(__APPLE__)
-     /* always use generic keymaps */
-@@ -694,6 +712,12 @@
-         exit(1);
-     }
+@@ -855,6 +870,12 @@ void sdl_display_init(DisplayState *ds, 
+     vi = SDL_GetVideoInfo();
+     host_format = *(vi->vfmt);
  
 +    SDL_GetWMInfo(&info);
 +    if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display)
@@ -392,7 +342,7 @@ Index: git/sdl.c
      dcl = qemu_mallocz(sizeof(DisplayChangeListener));
      dcl->dpy_update = sdl_update;
      dcl->dpy_resize = sdl_resize;
-@@ -717,4 +741,9 @@
+@@ -890,4 +911,9 @@ void sdl_display_init(DisplayState *ds, 
          gui_fullscreen_initial_grab = 1;
          sdl_grab_start();
      }
@@ -402,31 +352,19 @@ Index: git/sdl.c
 +        opengl_exec_set_parent_window(info.info.x11.display,
 +                        info.info.x11.window);
  }
-Index: git/slirp/ctl.h
+Index: qemu/slirp/udp.c
 ===================================================================
---- git.orig/slirp/ctl.h       2009-12-02 13:13:56.000000000 +0000
-+++ git/slirp/ctl.h    2010-01-14 15:55:40.000000000 +0000
-@@ -2,6 +2,7 @@
- #define CTL_EXEC      1
- #define CTL_ALIAS     2
- #define CTL_DNS               3
-+#define CTL_OPENGL    6
- #define CTL_SPECIAL   "10.0.2.0"
- #define CTL_LOCAL     "10.0.2.15"
-Index: git/slirp/udp.c
-===================================================================
---- git.orig/slirp/udp.c       2009-12-02 13:13:56.000000000 +0000
-+++ git/slirp/udp.c    2010-01-14 15:55:40.000000000 +0000
+--- qemu.orig/slirp/udp.c      2010-05-11 18:05:22.955784896 -0400
++++ qemu/slirp/udp.c   2010-05-12 12:10:40.129784123 -0400
 @@ -40,6 +40,7 @@
  
  #include <slirp.h>
  #include "ip_icmp.h"
 +#include "bswap.h"
  
- #ifdef LOG_ENABLED
- struct udpstat udpstat;
-@@ -153,6 +154,11 @@
+ static u_int8_t udp_tos(struct socket *so);
+@@ -125,6 +126,11 @@ udp_input(register struct mbuf *m, int i
              goto bad;
          }
  
@@ -435,25 +373,25 @@ Index: git/slirp/udp.c
 +            goto bad;
 +        }
 +
-         if (slirp_restrict)
+         if (slirp->restricted) {
              goto bad;
-Index: git/sysemu.h
+         }
+Index: qemu/sysemu.h
 ===================================================================
---- git.orig/sysemu.h  2009-12-02 13:13:56.000000000 +0000
-+++ git/sysemu.h       2010-01-14 15:55:40.000000000 +0000
-@@ -96,6 +96,7 @@
- extern int no_quit;
- extern int semihosting_enabled;
+--- qemu.orig/sysemu.h 2010-05-11 18:05:22.959804376 -0400
++++ qemu/sysemu.h      2010-05-12 12:10:40.129784123 -0400
+@@ -141,6 +141,7 @@ extern int semihosting_enabled;
  extern int old_param;
+ extern int boot_menu;
+ extern QEMUClock *rtc_clock;
 +extern int force_pointer;
- extern const char *bootp_filename;
  
- #ifdef USE_KQEMU
-Index: git/target-i386/beginend_funcs.sh
+ #define MAX_NODES 64
+ extern int nb_numa_nodes;
+Index: qemu/target-i386/beginend_funcs.sh
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/beginend_funcs.sh  2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/beginend_funcs.sh 2010-05-12 12:10:40.129784123 -0400
 @@ -0,0 +1,23 @@
 +#! /bin/sh
 +# Copyright 2008 (C) Intel Corporation
@@ -478,10 +416,10 @@ Index: git/target-i386/beginend_funcs.sh
 +echo -e MAGIC_MACRO\(glCallList\)\\n
 +echo -e MAGIC_MACRO\(glCallLists\)\\n
 +echo -e MAGIC_MACRO\(glEdgeFlag{,v}\)\\n
-Index: git/target-i386/ghash.c
+Index: qemu/target-i386/ghash.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/ghash.c    2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/ghash.c   2010-05-12 12:10:40.130781590 -0400
 @@ -0,0 +1,347 @@
 +/* This is a modified and simplified version of original ghash.c */
 +
@@ -830,10 +768,10 @@ Index: git/target-i386/ghash.c
 +    hash_node = next;
 +  }
 +}
-Index: git/target-i386/ghash.h
+Index: qemu/target-i386/ghash.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/ghash.h    2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/ghash.h   2010-05-12 12:10:40.130781590 -0400
 @@ -0,0 +1,59 @@
 +/* This is a modified and simplified version of original ghash.h  */
 +
@@ -894,10 +832,10 @@ Index: git/target-i386/ghash.h
 +
 +#endif /* __SIMPLE_HASH_H__ */
 +
-Index: git/target-i386/gl_func_perso.h
+Index: qemu/target-i386/gl_func_perso.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/gl_func_perso.h    2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/gl_func_perso.h   2010-05-12 12:10:40.130781590 -0400
 @@ -0,0 +1,135 @@
 +/*
 + *  Hand-implemented GL/GLX API
@@ -1034,11 +972,11 @@ Index: git/target-i386/gl_func_perso.h
 +MAGIC_MACRO(_glGetSelectBuffer_fake),
 +MAGIC_MACRO(_glFeedbackBuffer_fake),
 +MAGIC_MACRO(_glGetFeedbackBuffer_fake),
-Index: git/target-i386/helper.c
+Index: qemu/target-i386/helper.c
 ===================================================================
---- git.orig/target-i386/helper.c      2009-12-02 13:13:56.000000000 +0000
-+++ git/target-i386/helper.c   2010-01-14 15:55:40.000000000 +0000
-@@ -1326,7 +1326,7 @@
+--- qemu.orig/target-i386/helper.c     2010-05-11 18:05:22.955784896 -0400
++++ qemu/target-i386/helper.c  2010-05-12 12:10:40.131781711 -0400
+@@ -1433,7 +1433,7 @@ target_phys_addr_t cpu_get_phys_page_deb
      }
  
      page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1);
@@ -1047,21 +985,21 @@ Index: git/target-i386/helper.c
      return paddr;
  }
  
-Index: git/target-i386/helper.h
+Index: qemu/target-i386/helper.h
 ===================================================================
---- git.orig/target-i386/helper.h      2009-12-02 13:13:56.000000000 +0000
-+++ git/target-i386/helper.h   2010-01-14 15:55:40.000000000 +0000
-@@ -214,4 +214,6 @@
+--- qemu.orig/target-i386/helper.h     2010-05-11 18:05:22.956804503 -0400
++++ qemu/target-i386/helper.h  2010-05-12 12:10:40.131781711 -0400
+@@ -217,4 +217,6 @@ DEF_HELPER_2(rclq, tl, tl, tl)
  DEF_HELPER_2(rcrq, tl, tl, tl)
  #endif
  
 +DEF_HELPER_0(opengl, void)
 +
  #include "def-helper.h"
-Index: git/target-i386/helper_opengl.c
+Index: qemu/target-i386/helper_opengl.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/helper_opengl.c    2010-01-14 16:36:59.000000000 +0000
++++ qemu/target-i386/helper_opengl.c   2010-05-12 12:10:40.132781622 -0400
 @@ -0,0 +1,1207 @@
 +/*
 + *  Host-side implementation of GL/GLX API
@@ -1148,16 +1086,16 @@ Index: git/target-i386/helper_opengl.c
 +                    cpu_x86_handle_mmu_fault((CPUState *) env, addr, 0, 1, 1));
 +            return NULL;
 +        } else {
-+            if (ret + TARGET_PAGE_SIZE <= phys_ram_size) {
-+                return phys_ram_base + ret +
-+                    (((target_ulong) addr) & (TARGET_PAGE_SIZE - 1));
++            if (ret + TARGET_PAGE_SIZE <= last_ram_offset) {
++                return qemu_get_ram_ptr(ret +
++                               (((target_ulong) addr) & (TARGET_PAGE_SIZE - 1)));
 +            } else {
 +                fprintf(stderr,
 +                        "cpu_get_phys_page_debug(env, " TARGET_FMT_lx ") == "
 +                        TARGET_FMT_lx "\n", addr, ret);
 +                fprintf(stderr,
-+                        "ret=" TARGET_FMT_lx " phys_ram_size= " TARGET_FMT_lx
-+                        "\n", ret, (target_ulong) phys_ram_size);
++                        "ret=" TARGET_FMT_lx " last_ram_offset= " TARGET_FMT_lx
++                        "\n", ret, (target_ulong) last_ram_offset);
 +                return NULL;
 +            }
 +        }
@@ -2270,11 +2208,11 @@ Index: git/target-i386/helper_opengl.c
 +    io_register();
 +}
 +#endif
-Index: git/target-i386/kvm.c
+Index: qemu/target-i386/kvm.c
 ===================================================================
---- git.orig/target-i386/kvm.c 2009-12-02 13:13:56.000000000 +0000
-+++ git/target-i386/kvm.c      2010-01-14 15:55:40.000000000 +0000
-@@ -480,7 +480,7 @@
+--- qemu.orig/target-i386/kvm.c        2010-05-11 18:05:22.956804503 -0400
++++ qemu/target-i386/kvm.c     2010-05-12 12:10:40.132781622 -0400
+@@ -528,7 +528,7 @@ static int kvm_get_fpu(CPUState *env)
      return 0;
  }
  
@@ -2283,10 +2221,10 @@ Index: git/target-i386/kvm.c
  {
      struct kvm_sregs sregs;
      uint32_t hflags;
-Index: git/target-i386/mesa_enums.c
+Index: qemu/target-i386/mesa_enums.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_enums.c       2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_enums.c      2010-05-12 12:10:40.163783695 -0400
 @@ -0,0 +1,4890 @@
 +/* DO NOT EDIT - This file generated automatically by gl_enums.py (from Mesa) script */
 +
@@ -7178,10 +7116,10 @@ Index: git/target-i386/mesa_enums.c
 +}
 +
 +
-Index: git/target-i386/mesa_get.c
+Index: qemu/target-i386/mesa_get.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_get.c 2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_get.c        2010-05-12 12:10:40.171781452 -0400
 @@ -0,0 +1,5563 @@
 +
 +/***
@@ -12746,10 +12684,10 @@ Index: git/target-i386/mesa_get.c
 +      params[i] = (GLdouble) values[i];
 +}
 +
-Index: git/target-i386/mesa_gl.h
+Index: qemu/target-i386/mesa_gl.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_gl.h  2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_gl.h 2010-05-12 12:10:40.173780926 -0400
 @@ -0,0 +1,2251 @@
 +/*
 + * Mesa 3-D graphics library
@@ -15002,10 +14940,10 @@ Index: git/target-i386/mesa_gl.h
 +#endif
 +
 +#endif /* __gl_h_ */
-Index: git/target-i386/mesa_glext.h
+Index: qemu/target-i386/mesa_glext.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_glext.h       2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_glext.h      2010-05-12 12:10:40.180780867 -0400
 @@ -0,0 +1,7279 @@
 +#ifndef __glext_h_
 +#define __glext_h_
@@ -22286,10 +22224,10 @@ Index: git/target-i386/mesa_glext.h
 +
 +/* ERO */
 +GLAPI void GLAPIENTRY fake_gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data);
-Index: git/target-i386/mesa_glu.h
+Index: qemu/target-i386/mesa_glu.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_glu.h 2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_glu.h        2010-05-12 12:10:40.181781686 -0400
 @@ -0,0 +1,354 @@
 +/*
 +** License Applicability. Except to the extent portions of this file are
@@ -22645,10 +22583,10 @@ Index: git/target-i386/mesa_glu.h
 +#endif
 +
 +#endif /* __glu_h__ */
-Index: git/target-i386/mesa_glx.h
+Index: qemu/target-i386/mesa_glx.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_glx.h 2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_glx.h        2010-05-12 12:10:40.181781686 -0400
 @@ -0,0 +1,510 @@
 +/*
 + * Mesa 3-D graphics library
@@ -23160,10 +23098,10 @@ Index: git/target-i386/mesa_glx.h
 +#endif
 +
 +#endif
-Index: git/target-i386/mesa_glxext.h
+Index: qemu/target-i386/mesa_glxext.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_glxext.h      2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_glxext.h     2010-05-12 12:10:40.182781668 -0400
 @@ -0,0 +1,785 @@
 +#ifndef __glxext_h_
 +#define __glxext_h_
@@ -23950,10 +23888,10 @@ Index: git/target-i386/mesa_glxext.h
 +#endif
 +
 +#endif
-Index: git/target-i386/mesa_mipmap.c
+Index: qemu/target-i386/mesa_mipmap.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/mesa_mipmap.c      2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/mesa_mipmap.c     2010-05-12 12:10:40.183781579 -0400
 @@ -0,0 +1,824 @@
 +
 +/*
@@ -24779,10 +24717,10 @@ Index: git/target-i386/mesa_mipmap.c
 +
 +   return retval;
 +}
-Index: git/target-i386/opengl_exec.c
+Index: qemu/target-i386/opengl_exec.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/opengl_exec.c      2010-01-14 16:34:53.000000000 +0000
++++ qemu/target-i386/opengl_exec.c     2010-05-14 13:34:05.506295624 -0400
 @@ -0,0 +1,3931 @@
 +/*
 + *  Host-side implementation of GL/GLX API
@@ -28715,10 +28653,10 @@ Index: git/target-i386/opengl_exec.c
 +
 +    return ret_int;
 +}
-Index: git/target-i386/opengl_func.h
+Index: qemu/target-i386/opengl_func.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/opengl_func.h      2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/opengl_func.h     2010-05-12 12:10:40.187781086 -0400
 @@ -0,0 +1,1108 @@
 +/*
 + *  Main header for both host and guest sides
@@ -29828,10 +29766,10 @@ Index: git/target-i386/opengl_func.h
 +#error Unsupported ABI
 +#endif
 +#endif
-Index: git/target-i386/opengl_player.c
+Index: qemu/target-i386/opengl_player.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/opengl_player.c    2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/opengl_player.c   2010-05-12 12:10:40.188781627 -0400
 @@ -0,0 +1,1461 @@
 +/*
 + *  Plays a sequence of OpenGL calls recorded either under qemu or with opengl_server
@@ -31294,10 +31232,10 @@ Index: git/target-i386/opengl_player.c
 +    }
 +    return 0;
 +}
-Index: git/target-i386/opengl_server.c
+Index: qemu/target-i386/opengl_server.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/opengl_server.c    2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/opengl_server.c   2010-05-12 12:10:40.188781627 -0400
 @@ -0,0 +1,826 @@
 +/*
 + *  TCP/IP OpenGL server
@@ -32125,10 +32063,10 @@ Index: git/target-i386/opengl_server.c
 +
 +  return 0;
 +}
-Index: git/target-i386/opengl_utils.h
+Index: qemu/target-i386/opengl_utils.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/opengl_utils.h     2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/opengl_utils.h    2010-05-12 12:10:40.189781608 -0400
 @@ -0,0 +1,453 @@
 +/*
 + *  Functions used by host & client sides
@@ -32583,10 +32521,10 @@ Index: git/target-i386/opengl_utils.h
 +}
 +
 +#endif
-Index: git/target-i386/parse_gl_h.c
+Index: qemu/target-i386/parse_gl_h.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/parse_gl_h.c       2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/parse_gl_h.c      2010-05-12 12:10:40.190781520 -0400
 @@ -0,0 +1,1496 @@
 +/*
 + *  Parse gl.h et glx.h to auto-generate source code
@@ -34084,10 +34022,10 @@ Index: git/target-i386/parse_gl_h.c
 +
 +  return 0;
 +}
-Index: git/target-i386/parse_mesa_get_c.c
+Index: qemu/target-i386/parse_mesa_get_c.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ git/target-i386/parse_mesa_get_c.c 2010-01-14 15:55:40.000000000 +0000
++++ qemu/target-i386/parse_mesa_get_c.c        2010-05-12 12:10:40.190781520 -0400
 @@ -0,0 +1,225 @@
 +/*
 + *  Parse the "get.c" from mesa source tree to generate "glgetv_cst.h"
@@ -34314,11 +34252,11 @@ Index: git/target-i386/parse_mesa_get_c.c
 +  fclose(outf);
 +  return 0;
 +}
-Index: git/target-i386/translate.c
+Index: qemu/target-i386/translate.c
 ===================================================================
---- git.orig/target-i386/translate.c   2009-12-02 13:13:56.000000000 +0000
-+++ git/target-i386/translate.c        2010-01-14 15:55:40.000000000 +0000
-@@ -741,6 +741,8 @@
+--- qemu.orig/target-i386/translate.c  2010-05-11 18:05:22.957804134 -0400
++++ qemu/target-i386/translate.c       2010-05-12 12:10:40.192781553 -0400
+@@ -743,6 +743,8 @@ static void gen_check_io(DisasContext *s
      int state_saved;
      target_ulong next_eip;
  
@@ -34327,7 +34265,7 @@ Index: git/target-i386/translate.c
      state_saved = 0;
      if (s->pe && (s->cpl > s->iopl || s->vm86)) {
          if (s->cc_op != CC_OP_DYNAMIC)
-@@ -2592,11 +2594,18 @@
+@@ -2676,11 +2678,18 @@ static void gen_exception(DisasContext *
      s->is_jmp = 3;
  }
  
@@ -34346,78 +34284,36 @@ Index: git/target-i386/translate.c
      if (s->cc_op != CC_OP_DYNAMIC)
          gen_op_set_cc_op(s->cc_op);
      gen_jmp_im(cur_eip);
-Index: git/vl.c
+Index: qemu/vl.c
 ===================================================================
---- git.orig/vl.c      2009-12-02 13:13:56.000000000 +0000
-+++ git/vl.c   2010-01-14 15:55:40.000000000 +0000
-@@ -245,6 +245,7 @@
+--- qemu.orig/vl.c     2010-05-11 18:05:22.959804376 -0400
++++ qemu/vl.c  2010-05-12 17:10:46.174909450 -0400
+@@ -238,6 +238,7 @@ int semihosting_enabled = 0;
  #ifdef TARGET_ARM
  int old_param = 0;
  #endif
 +int force_pointer = 0;
  const char *qemu_name;
  int alt_grab = 0;
- #if defined(TARGET_SPARC) || defined(TARGET_PPC)
-@@ -253,6 +254,7 @@
+ int ctrl_grab = 0;
+@@ -246,6 +247,7 @@ unsigned int nb_prom_envs = 0;
+ const char *prom_envs[MAX_PROM_ENVS];
  #endif
- int nb_drives_opt;
- struct drive_opt drives_opt[MAX_DRIVES];
+ int boot_menu;
 +extern int enable_gl;
  
- static CPUState *cur_cpu;
- static CPUState *next_cpu;
-@@ -4208,12 +4210,14 @@
-     QEMU_OPTION_clock,
-     QEMU_OPTION_localtime,
-     QEMU_OPTION_startdate,
-+    QEMU_OPTION_enable_gl,
-     QEMU_OPTION_icount,
-     QEMU_OPTION_echr,
-     QEMU_OPTION_virtiocon,
-     QEMU_OPTION_show_cursor,
-     QEMU_OPTION_semihosting,
-     QEMU_OPTION_old_param,
-+    QEMU_OPTION_force_pointer,
-     QEMU_OPTION_tb_size,
-     QEMU_OPTION_incoming,
-     QEMU_OPTION_chroot,
-@@ -4344,6 +4348,8 @@
- #if defined(TARGET_ARM)
-     { "old-param", 0, QEMU_OPTION_old_param },
- #endif
-+    { "force-pointer", 0, QEMU_OPTION_force_pointer },
-+    { "enable-gl", 0, QEMU_OPTION_enable_gl },
-     { "tb-size", HAS_ARG, QEMU_OPTION_tb_size },
-     { "incoming", HAS_ARG, QEMU_OPTION_incoming },
-     { "chroot", HAS_ARG, QEMU_OPTION_chroot },
-@@ -4496,22 +4502,17 @@
- {
-     const char *opts;
-+    std_vga_enabled = 0;
-+    cirrus_vga_enabled = 0;
-+    vmsvga_enabled = 0;
-+
-     if (strstart(p, "std", &opts)) {
-         std_vga_enabled = 1;
--        cirrus_vga_enabled = 0;
--        vmsvga_enabled = 0;
-     } else if (strstart(p, "cirrus", &opts)) {
-         cirrus_vga_enabled = 1;
--        std_vga_enabled = 0;
--        vmsvga_enabled = 0;
-     } else if (strstart(p, "vmware", &opts)) {
--        cirrus_vga_enabled = 0;
--        std_vga_enabled = 0;
-         vmsvga_enabled = 1;
-     } else if (strstart(p, "none", &opts)) {
--        cirrus_vga_enabled = 0;
--        std_vga_enabled = 0;
--        vmsvga_enabled = 0;
-     } else {
+ int nb_numa_nodes;
+ uint64_t node_mem[MAX_NODES];
+@@ -4418,6 +4420,8 @@ static void select_vgahw (const char *p)
+     } else if (strstart(p, "xenfb", &opts)) {
+         vga_interface_type = VGA_XENFB;
+     } else if (!strstart(p, "none", &opts)) {
++    }
++    else {
      invalid_vga:
          fprintf(stderr, "Unknown vga type: %s\n", p);
-@@ -5220,6 +5221,9 @@
+         exit(1);
+@@ -5540,6 +5544,9 @@ int main(int argc, char **argv, char **e
                  old_param = 1;
                  break;
  #endif
@@ -34427,20 +34323,21 @@ Index: git/vl.c
              case QEMU_OPTION_clock:
                  configure_alarms(optarg);
                  break;
-@@ -5261,6 +5265,11 @@
-                     }
+@@ -5554,6 +5561,12 @@ int main(int argc, char **argv, char **e
                  }
+                 configure_rtc(opts);
                  break;
 +#ifdef TARGET_OPENGL_OK
 +            case QEMU_OPTION_enable_gl:
++                fprintf(stderr, "Enabling opengl\n");
 +                enable_gl = 1;
 +                break;
 +#endif
              case QEMU_OPTION_tb_size:
                  tb_size = strtol(optarg, NULL, 0);
                  if (tb_size < 0)
-@@ -5545,6 +5554,17 @@
-             exit(1);
+@@ -5907,6 +5920,14 @@ int main(int argc, char **argv, char **e
+             }
          }
      }
 +#ifdef TARGET_OPENGL_OK
@@ -34448,12 +34345,32 @@ Index: git/vl.c
 +            /* Use second serial port */
 +            int opengl_serial = 1;
 +
-+            if (serial_devices[opengl_serial])
-+                fprintf(stderr, "overriding second serial "
-+                                "port for OpenGL use\n");
-+            serial_devices[opengl_serial] = "opengl";
++            add_device_config(DEV_SERIAL, "opengl");
 +        }
 +#endif
  
-     if (monitor_device) {
-         monitor_hd = qemu_chr_open("monitor", monitor_device, NULL);
+     if (foreach_device_config(DEV_SERIAL, serial_parse) < 0)
+         exit(1);
+Index: qemu/qemu-options.hx
+===================================================================
+--- qemu.orig/qemu-options.hx  2010-05-11 18:05:22.959804376 -0400
++++ qemu/qemu-options.hx       2010-05-12 17:18:10.420907903 -0400
+@@ -1783,6 +1783,18 @@ many timer interrupts were not processed
+ re-inject them.
+ ETEXI
++DEF("enable-gl", 0, QEMU_OPTION_enable_gl, \
++    "-enable-gl\n")
++STEXI
++@item -enable-gl
++ETEXI
++
++DEF("force-pointer", 0, QEMU_OPTION_force_pointer, \
++    "-force-pointer\n")
++STEXI
++@item -force-pointer
++ETEXI
++
+ DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
+     "-icount [N|auto]\n" \
+     "                enable virtual instruction counter with 2^N clock ticks per\n" \
index 979e8afc4c5ac1b5936ad49f7acab64d20f3fca4..43acc361a0afc7090374c807901b6dd32b7bb8c5 100644 (file)
@@ -10,11 +10,11 @@ committer Andrzej Zaborowski <andrew.zaborowski@intel.com> Tue, 16 Jun 2009 22:2
  target-i386/opengl_exec.c |   31 ++++++++++++++++---------------
  1 files changed, 16 insertions(+), 15 deletions(-)
 
-diff --git a/target-i386/opengl_exec.c b/target-i386/opengl_exec.c
-index 4a69b9b..3d6fb21 100644
---- a/target-i386/opengl_exec.c
-+++ b/target-i386/opengl_exec.c
-@@ -1600,10 +1600,9 @@ int do_function_call(int func_number, arg_t *args, char *ret_string)
+Index: qemu/target-i386/opengl_exec.c
+===================================================================
+--- qemu.orig/target-i386/opengl_exec.c        2010-05-10 18:46:43.175394992 -0400
++++ qemu/target-i386/opengl_exec.c     2010-05-10 18:46:43.218419933 -0400
+@@ -1600,10 +1600,9 @@ int do_function_call(int func_number, ar
                  fprintf(stderr, "client_drawable=%p fake_ctx=%d\n",
                          (void *) client_drawable, fake_ctxt);
  
@@ -27,7 +27,7 @@ index 4a69b9b..3d6fb21 100644
                                      get_association_fakepbuffer_pbuffer(
                                              process, client_drawable))) {
                  GLXContext ctxt = get_association_fakecontext_glxcontext(
-@@ -1651,19 +1650,21 @@ int do_function_call(int func_number, arg_t *args, char *ret_string)
+@@ -1651,19 +1650,21 @@ int do_function_call(int func_number, ar
              }
  
              if (ret_int) {
index b254b2410a24bd050012be29021b997a21623fd2..7727a39f3769b1f30c161f310a51fcf667bff82c 100644 (file)
@@ -2,11 +2,11 @@
  linux-user/syscall.c |   10 +++++++++-
  1 file changed, 9 insertions(+), 1 deletion(-)
 
-Index: trunk/linux-user/syscall.c
+Index: qemu/linux-user/syscall.c
 ===================================================================
---- trunk.orig/linux-user/syscall.c    2009-01-05 12:47:06.000000000 +0000
-+++ trunk/linux-user/syscall.c 2009-01-05 12:48:04.000000000 +0000
-@@ -87,6 +87,15 @@
+--- qemu.orig/linux-user/syscall.c     2010-05-11 16:52:16.929785275 -0400
++++ qemu/linux-user/syscall.c  2010-05-11 16:52:25.174783517 -0400
+@@ -94,6 +94,15 @@
  #define CLONE_NPTL_FLAGS2 0
  #endif
  
@@ -21,4 +21,4 @@ Index: trunk/linux-user/syscall.c
 +
  //#define DEBUG
  
- #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_SPARC) \
+ //#include <linux/msdos_fs.h>
diff --git a/meta/packages/qemu/qemu-git/zlibsearch.patch b/meta/packages/qemu/qemu-git/zlibsearch.patch
deleted file mode 100644 (file)
index 6d7cf03..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: git/configure
-===================================================================
---- git.orig/configure 2009-05-24 11:12:34.000000000 +0100
-+++ git/configure      2009-05-24 11:12:55.000000000 +0100
-@@ -749,7 +749,7 @@
- #include <zlib.h>
- int main(void) { zlibVersion(); return 0; }
- EOF
--if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz > /dev/null 2> /dev/null ; then
-+if $cc $CFLAGS $LDFLAGS $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz > /dev/null 2> /dev/null ; then
-     :
- else
-     echo
index e9129649a870ff4e52daf707d1e57b7870e0b4cd..0bba6000388103ab32344ca534f6b601f7e34da5 100644 (file)
@@ -1,7 +1,7 @@
 LICENSE = "GPL"
 DEPENDS = "zlib"
-PV = "0.10.6+git${SRCREV}"
-PR = "r3"
+PV = "0.12.0+git${SRCREV}"
+PR = "r4"
 
 FILESPATH = "${FILE_DIRNAME}/qemu-${PV}/:${FILE_DIRNAME}/qemu-git/"
 
@@ -12,13 +12,11 @@ SRC_URI = "\
     file://no-strip.patch;patch=1 \
     file://fix-dirent.patch;patch=1 \
     file://fix-nogl.patch;patch=1 \
-    file://zlibsearch.patch;patch=1 \
-    file://qemugl-allow-glxcontext-release.patch;patch=1 \
-    file://2ca2078e287174522e3a6229618947d3d285b8c0.patch;patch=1"
+    file://qemugl-allow-glxcontext-release.patch;patch=1"
 
 S = "${WORKDIR}/git"
 
-EXTRA_OECONF = "--target-list=arm-linux-user,arm-softmmu,i386-softmmu,x86_64-softmmu,mips-linux-user,mips-softmmu --disable-gfx-check"
+EXTRA_OECONF = "--target-list=arm-linux-user,arm-softmmu,i386-softmmu,x86_64-softmmu,mips-linux-user,mips-softmmu --disable-werror --disable-vnc-tls"
 #EXTRA_OECONF += "--disable-sdl"
 
 inherit autotools